页面无效的密码验证

时间:2012-09-28 14:44:09

标签: php arrays validation passwords

login.php表单和password.php正在运行,但进入网站的验证不是

“passwords.php”的代码

<?php 
$USERS["username1"] = "password1"; 
$USERS["username2"] = "password2"; 
$USERS["username3"] = "password3"; 

function check_logged(){ 
     global $_SESSION, $USERS; 
     if (!array_key_exists($_SESSION["logged"],$USERS)) { 
          header("Location: login.php"); 
     }; 
}; 
?>

的login.php

<?php 
session_start(); 
include("passwords.php"); 
if ($_POST["ac"]=="log") { /// do after login form is submitted  
     if ($USERS[$_POST["username"]]==$_POST["password"]) { /// check if submitted 

          $_SESSION["logged"]=$_POST["username"]; 
     } else { 
          echo 'Incorrect username/password. Please, try again.'; 
     }; 
}; 
if (array_key_exists($_SESSION["logged"],$USERS)) { //// check if user is logged or not  
     echo "You are logged in."; //// if user is logged show a message  
} else { //// if not logged show login form 
     echo '<form action="login.php" method="post"><input type="hidden" name="ac" value="log"> '; 
     echo 'Username: <input type="text" name="username" />'; 
     echo 'Password: <input type="password" name="password" />'; 
     echo '<input type="submit" value="Login" />'; 
     echo '</form>'; 
}; 
?>

我不能让这部分工作

页面验证:

<?php 
session_start(); /// initialize session 
include("passwords.php"); 
check_logged(); /// function checks if visitor is logged. 
?> 

页面代码在这里

我在做错了什么?验证不会检查用户是否已登录。 它只是进入页面。

1 个答案:

答案 0 :(得分:4)

你应该添加退出;设置重定向标头后,不会处理页面的其余部分。

 if (!array_key_exists($_SESSION["logged"],$USERS)) { 
      header("Location: login.php"); 
      exit;
 }; 

另外,您是否尝试关闭浏览器以清除所有会话数据并查看您是否仍在登录?