我从本地计算机托管一个网站(在 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");
}
?>
我暂时删除了上面代码中的密码。
我想知道我可以采取哪些步骤来解决此问题,如果您能提供帮助,我将不胜感激。
谢谢
尼克
最佳答案
遇到这个问题时的一些常用技巧。
- 输出生成的 SQL 并手动测试 -
echo $query
; - 查看运行查询后
mysql_error()
是否输出任何内容。 - 对数据对象使用
var_dump()
和print_r()
以确保它们符合预期。 - 注释掉您的重定向和
exit()
行,以便您可以确定脚本的中断位置。
使用上述确定的任何内容进行修复或评论。
关于php - Log.php 从 MySQL 数据库返回 'Invalid User',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5957438/