我正在从本地计算机托管一个网站(在Mac上使用MAMP Pro),并且需要将托管切换到另一台本地Mac。我已经复制了我的网站和MySQL表的所有文件,并检查了服务器和MySQL运行正常。一切似乎都很好,除了当我尝试登录时登录系统返回“无效用户”,即使我输入了正确的用户信息(我已经尝试了一些用户以确定)。
处理登录的log.php如下所示:
<?
session_name("MyLogin");
session_start();
if($_GET['action'] == "login") {
$conn = mysql_connect("localhost","root","password"); // your MySQL connection data
$db = mysql_select_db("nick"); //put your database name in here
$name = $_POST['user'];
$q_user = mysql_query("SELECT * FROM USERS WHERE login='$name'");
if(mysql_num_rows($q_user) == 1) {
$query = mysql_query("SELECT * FROM USERS WHERE login='$name'");
$data = mysql_fetch_array($query);
if($_POST['pwd'] == $data['password']) {
$_SESSION["name"] = $name;
header("Location: http://monthlymixup.com/may.php"); // success page. put the URL you want
exit;
} else {
header("Location: login.php?login=failed&cause=".urlencode('Wrong Password'));
exit;
}
} else {
header("Location: login.php?login=failed&cause=".urlencode('Invalid User'));
exit;
}
}
// if the session is not registered
if(session_is_registered("name") == false) {
header("Location: login.php");
}
?>
我已暂时删除了上述代码中的密码。
我想知道我可以采取哪些措施来解决这个问题,并感谢您的帮助。
谢谢,
尼克
答案 0 :(得分:1)
遇到此问题时的一些常用技巧。
echo $query
; mysql_error()
是否输出任何内容。var_dump()
和print_r()
,以确保它们符合预期。exit()
行,以便您可以确定脚本的中断位置。使用上述内容确定的任何内容进行修复或评论。
答案 1 :(得分:0)
您的代码执行查询以查找具有给定用户名的用户,然后检查具有该用户名的行数是否正好为1。
您可以看到“无效用户”错误的唯一方法是,如果有0个用户使用该用户名,或者超过1个用户使用该用户名。
查看表的内容并检查其中的哪一个(我建议http://sequelpro.com用于查看Mac上的数据库内容)。您还可以使用续集专业版来测试您的查询。