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)
最佳答案
mysql_fetch_assoc
只要有结果集,就从结果集中获取下一行,如果结果集已用完,则为 false
- 这样您就可以遍历它:
while ($text = mysql_fetch_assoc($risultato)) {
if($text['username'] == $_POST['user'] && $testo['password'] == $_POST['pass']) {
echo $text['username'] . '<br/>';
}
}
- 您现在的密码是开放给SQL injection在使用已弃用的 MySQL 库时。
使用mysqli
prepared statements , 或 PDO with prepared statements .
关于密码存储
您似乎以纯文本形式存储密码。如果是这种情况,非常不鼓励。
推荐您使用CRYPT_BLOWFISH或 PHP 5.5 的 password_hash()
功能。
对于 PHP < 5.5,使用 password_hash() compatibility pack
.
关于php - 如何打印所有的mysql行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26960701/