我正在尝试创建一个简单的登录凭据检查器(带有会话变量)。
这是我到目前为止所拥有的:
<?php
include("dbconnect.php");
$u_name = mysql_real_escape_string($_POST['uname']);
$p_word = mysql_real_escape_string($_POST['pword']);
# *** querying all records ***
$query = mysql_query("SELECT valid_username, valid_password FROM notes_users");
while($rst = mysql_fetch_array($query)) {
//echo $rst[valid_username] . ", ";
//echo $u_name . " || ";
//echo ($rst[valid_username] == $u_name) . " || ";
//echo $rst[valid_password] . ", ";
//echo $p_word . " || ";
//echo ($rst[valid_password] == $p_word) . " || ";
//echo (($rst[valid_username] == $u_name) AND ($rst[valid_password] == $p_word));
//echo "<br/>";
if (($rst[valid_username] == $u_name) AND ($rst[valid_password] == $p_word)) {
session_start();
$_SESSION['login'] = "1";
header('Location: main.php') ;
} else {
session_start();
$_SESSION['login'] = '';
header('Location: badlogin.php') ;
}
}
?>
这是问题所在:如果 MySQL 表的列表中有多个用户,则检查会中断。只有表中最后输入的用户才有权访问。最后输入的用户上方的任何人都会被撞到不正确的登录屏幕 - 即使凭据是正确的。为什么会这样?任何人都可以建议一个代码修复或更好的代码来实现这个登录检查吗?
编辑:评论代码测试以查看提供的凭据是否与记录的凭据匹配。脚本的那部分工作正常。
问题解决了!谢谢你们。对于将来看到此内容的任何人,请务必加密您的密码,我的密码是纯文本,因为这是一个本地测试应用程序,甚至不会看到上传到网络。