php - Log.php 从 MySQL 数据库返回 'Invalid User'

标签 php mysql authentication

我从本地计算机托管一个网站(在 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");
}

?>

我暂时删除了上面代码中的密码。

我想知道我可以采取哪些步骤来解决此问题,如果您能提供帮助,我将不胜感激。

谢谢

尼克

最佳答案

遇到这个问题时的一些常用技巧。

  1. 输出生成的 SQL 并手动测试 - echo $query;
  2. 查看运行查询后 mysql_error() 是否输出任何内容。
  3. 对数据对象使用 var_dump()print_r() 以确保它们符合预期。
  4. 注释掉您的重定向和 exit() 行,以便您可以确定脚本的中断位置。

使用上述确定的任何内容进行修复或评论。

关于php - Log.php 从 MySQL 数据库返回 'Invalid User',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5957438/

相关文章:

javascript - 获取 d3 以根据时间戳显示正确的日期

mysql - 创建列 'Date',默认值为当前日期时间 MYSQL

c# - 从本地主机上的 Web api 删除身份验证

angular - 在 Angular 中使用 SAP 登录结构

php - mysql中将两个查询合并为单个查询(一个查询的结果输入到另一个查询的表名)

php - 如何在Mysql中实现Join来获取以下记录

php - 尝试创建 Sprite 时,悬停图像仅显示原始图像而没有悬停图像。有任何想法吗?

mysql - 按字母顺序对查询结果进行排序,但在排序时排除 "the"?

mysql - 在sql中检索最新日期时间条目的复杂性?

asp.net-mvc - Windows 身份验证和 SQL 成员资格服务