0

コードは一度は機能しますが、その後はcustomer_login.phpページが再度読み込まれることはありません。2回目に試行すると、HTTp 404NotFoundエラーが発生します。動作してからエラーが発生するまでの間、何も変更しませんでした。

    <?php
session_start();
if(isset($_SESSION["manager"]))
    {
        header("location: ./admin/website/".$websitelocation."/index.html");
        exit();
    }
     ?>
     <?php
if(isset($_POST["username"])&&isset($_POST["password"]))
    {
        $manager = preg_replace('#[^A-Za-z0-9]#i', '', $_POST["username"]); 
        $password = preg_replace('#[^A-Za-z0-9]#i', '', $_POST["password"]); 

        include "./scripts/connect_to_mysql.php";
        $sql = mysql_query("SELECT UsersID, Active, Website_Location  FROM users WHERE       User_Name='$manager' AND Password='$password' LIMIT 1") or die(mysql_error());

        $existCount = mysql_num_rows($sql);
        echo $existCount;

        if ($existCount == 1) 
                {
                    while($row = mysql_fetch_array($sql))
                        { 
                            $id = $row["UsersID"];
                            $active = $row["Active"];
                            $websitelocation = $row["Website_Location"];                            
                        }
                    if($active == 'Yes')
                    {   
                        $_SESSION["id"] = $id;
                        $_SESSION["manager"] = $manager;
                        $_SESSION["password"] = $password;

                        header("location: ./admin/website/".$websitelocation."/index.html");

                        exit();
                    }
                    else
                    {
                        echo "<script type='text/javascript'>alert('You are not authorized to login!!!!');</script> ";

                        echo "click here to go back to <a href='admin_login.php'>login page</a>. <br><br>"; 
                        echo "click here to go to <a href='../customer_login.php'>customer login</a>. <br><br>";
                        echo "click here to go to <a href='../index.php'>JE Designs LLC main page</a>. <br><br>";                               

                        exit();
                    }
                } 
                else 
                {
                    echo "<script type='text/javascript'>alert('The information you have entered is not correct, please try again.');</script> ";

                    echo "<a href=\"javascript:history.go(-1)\">Go back to login page.</a>"; 


                    exit();
                }

    }
     ?>

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>User Login</title>
    </head>

    <body>
    <div align="center" id="mainWrapper">
    <?php include_once("template_header.php");?>
    <div id="pageContent"><br />
<div align="left" style="margin-left:24px;">
  <h2>Log in to view website.</h2>
  <form id="form1" name="form1" method="post" action="
  <?php 
    if(isset($_POST["username"])&&isset($_POST["password"]))
        {
            echo "./admin/website/".$websitelocation."/index.html"; 
        }
        else
        {
            echo "customer_login.php";
        }
  ?> " >
    User Name:<br />
      <input name="username" type="text" id="username" size="40" />
    <br /><br />
    Password:<br />
   <input name="password" type="password" id="password" size="40" />
   <br />
   <br />
   <br />

     <input type="submit" name="button" id="button" value="Log In" />

  </form>
  <p>&nbsp; </p>
</div>
<br />
<br />
<br />
</div>
<?php include_once("template_footer.php");?>
</div>
</body>
</html>    
4

3 に答える 3

0

私の推測では、2回目にページをロードするときに$_SESSION["manager"]設定され、次にリダイレクト先のURLが間違っているため、404が返されます。

私の2番目の推測は、$websitelocationリダイレクトを実行しようとしたときに定義されていないということです。セッション変数と同じ長さで存続させたい場合は、または同様のものmanagerに保存してください。$_SESSION['websitelocation']

于 2012-08-17T15:35:46.467 に答える
0

すでにログインしている場合は、にリダイレクトし./admin/website/$websitelocation/index.htmlます。しかし、変数$websitelocationはどこから来るのでしょうか?ログインスクリプトでこの変数を設定しても役に立ちません。したがって、にリダイレクトされ./admin/website//index.html、これにより404が得られます。

ところで:相対リダイレクトは使用しないでください。ホスト名をLocationヘッダーに含めることをお勧めします。これは、より広くサポートされているためです。

于 2012-08-17T15:38:03.470 に答える
0

ディレクトリの定数を使用してインクルードファイルを作成し、スクリプトにインクルードします。これにより、ディレクトリを常に適切に定義するという頭痛の種を減らすことができますhttp://php.net/manual/en/language.constants.predefined.php

于 2012-08-17T15:43:00.170 に答える