我从本地计算机托管网站(在Mac上使用MAMP Pro),并且需要将托管切换到另一台本地Mac。我已经复制了我的网站和MySQL表的所有文件,并检查了服务器和MySQL运行正常。一切似乎都没有问题,只是登录系统在我尝试登录时返回“无效用户”,即使我输入了正确的用户信息(我尝试了几个用户只是为了确定)。Log.php返回来自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");
}
?>
我暂时在上面的代码中删除密码。
我想知道我可以采取什么措施来解决这个问题,并将不胜感激任何帮助。
感谢,
尼克
这是不相关的,但绝对必须在$ name使用mysql_real_escape_string()之前在任何SQL查询中使用它!如果不这样做,通常会让黑客接管您的网站。有关更多信息,请参阅http://php.net/mysql_real_escape_string。 – 2011-05-10 23:34:29