【发布时间】:2013-10-14 01:07:40
【问题描述】:
我一直在查找这两个不同的错误,但我无法从之前的问题中找到解决方案。我有一个登录表单,每次输入正确的用户名和密码时都会抛出这两个错误...
警告:mysql_fetch_assoc():提供的参数不是第 96 行 /home4/jedicody/public_html/LR/core/functions/users.php 中的有效 MySQL 结果资源
$data = mysql_fetch_assoc(mysql_query("SELECT $fields FROM `users` WHERE `user_id` = $user_id"));
和
警告:无法修改标头信息 - 标头已由 /home4/jedicody/public_html/LR/core/init 中的(输出开始于 /home4/jedicody/public_html/LR/core/functions/users.php:96)发送.php 在第 17 行
header('Location: index.php');
这些是它不喜欢的代码行。我可以从我的代码中为您提供您需要的任何其他信息,但想知道是否有人可以让我了解我做错了什么。非常感谢各位看官。
【问题讨论】:
-
您没有从数据库中获得结果。您的查询错误,或者用户名和密码不匹配。它是如此简单。将正在运行的查询回显到屏幕上并将其复制并粘贴到 phpmyadmin 之类的东西中并测试它是否得到了你想要的。
-
也许如果你是通过用户名和密码来做的,你不想用 user_id 做 WHERE,而是用 WHERE username = 'etc';
-
您应该将
$user_id括在引号中:WHEREuser_id` = '$user_id'` -
感谢大家的回复,我现在正在仔细检查我的查询,稍后会更新您。
-
你应该检查
mysql_query()的返回值。如果是false,echo mysql_error()看失败原因。
标签: php mysql http-headers