【发布时间】:2015-01-13 15:46:23
【问题描述】:
require('db.php');
$query = 'SELECT username,password FROM users';
$result = mysql_query($query, $db);
$text = mysql_fetch_assoc($risultato);
if($text['username'] == $_POST['user'] && $text['password'] == $_POST['pass']) {
echo $text['username'];;
}
else {
echo 'NO!';
}
我是一名年轻的意大利开发人员: 这个 mysql 选择结果只是表的第一行,我正在编写 login.php 页面的代码。 我应该使用 WHERE 吗?如何? 我还有一个 id 字段(BIG INT(20) NOT NULL AUTO INCREMENT)
【问题讨论】:
-
似乎您只获得了结果数组中的第一个条目。另外, $text 正在获取不同变量的关联? $testo 是什么?此外,您当前的代码存在严重的安全问题(mysql php 函数和纯文本密码,但可以学习)
-
开始一个(while)循环
-
您的代码存在很多安全问题。 mysql_* 已弃用。请改用 mysqli_* 或 PDF。据说,您需要使用 while ($text = mysql_fetch_array($result, MYSQL_NUM)) { // 完成您的工作 } 循环
$text -
您在
$text = mysql_fetch_assoc($risultato);中使用了错误的变量,它应该是$text = mysql_fetch_assoc($result);- 但是,在将行与用户名和密码。 -
实际上,您应该查看daveismyname.com/login-and-registration-system-with-php-bp - 它使用带有准备好的语句的 PDO 和
password_hash(),它们更安全。
标签: php mysql forms select login