【问题标题】:Errors when typing the correct username and password输入正确的用户名和密码时出错
【发布时间】: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 括在引号中:WHERE user_id` = '$user_id'`
  • 感谢大家的回复,我现在正在仔细检查我的查询,稍后会更新您。
  • 你应该检查mysql_query()的返回值。如果是false,echo mysql_error()看失败原因。

标签: php mysql http-headers


【解决方案1】:

你可以echo你的sql语句,在phpmyadmin或者mysql控制台执行,看看结果有没有问题。

【讨论】:

  • 好的,我已经在 phpmyadmin 中输入了我的查询,这就是我写的内容。 SELECT $fields FROM users WHERE user_id = $user_id 这就是我得到的。 #1054 -“字段列表”中的未知列“$fields”
  • 你应该在你的 php 程序中回显这个:"SELECT $fields FROM users WHERE user_id = $user_id",然后你会在你的网络浏览器中得到一个句子,比如:"SELECT xxx FROM users WHERE user_id = 30" 并将这个放在你的 phpmyadmin 中执行。 [$field在你的php中是一个变量,在mysql中无法识别]
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-04
  • 1970-01-01
  • 2021-12-11
  • 1970-01-01
相关资源
最近更新 更多