2012-08-17 98 views
0

该代码有效一次,但不会再加载customer_login.php页面。当我尝试第二次时,它会提供HTTp 404 Not Found错误。在工作时间和得到错误之间,我没有改变任何东西。PHP页面一次工作

<?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

它是否重定向到一个不存在的页面? – Wiseguy 2012-08-17 15:34:43

+0

重定向网址应该是错误的。尝试在发送“位置”标题之前将其打印出来。 – Florent 2012-08-17 15:34:57

+0

顶部$ _SESSION [“manager”]块中$ websitelocation的值是多少?在页面底部的重定向(在登录检查之后),您将其设置为$ websitelocation = $ row [“Website_Location”];但是当页面重新加载时,这个值将会丢失 – Re0sless 2012-08-17 15:35:18

回答

0

当您已经登录后,您将重定向到./admin/website/$websitelocation/index.html。但变量$websitelocation从哪里来?如果您在登录脚本中设置了这个变量,这没有帮助!所以,你将被重定向到./admin/website//index.html,这给你404

BTW:请不要使用相对重定向,它是包含在Location头的主机名最佳做法,因为那样更广泛的支持。

+0

这会不会让customer_login.php出现?当我点击索引页面上的链接时,表示找不到页面。我查看了他们所有正确的文件路径。 – Jacob 2012-08-17 15:52:57

+0

重定向防止customer_login.php在用户登录时显示给用户,因为他将被重定向到其他地方。但是当你收到消息时,没有找到该页面,我坚信这是指重定向页面,而不是customer_login.php。只要看看你重定向到哪里,并找出这个文件是否真的存在。 – 2012-08-17 15:57:02

+0

感谢您的帮助,现在就开始工作。 – Jacob 2012-08-17 16:12:37

0

我的猜测是,你的页面加载第二次,$_SESSION["manager"]设置和URL它,然后重定向到是错误的,因此给出了一个404

我的第二个猜测是,当您尝试执行重定向时,$websitelocation未定义。如果您希望它持续长达manager会话变量,请将其存储在$_SESSION['websitelocation']或类似文件中。