【发布时间】:2017-11-22 23:58:00
【问题描述】:
我最近将我的代码从使用 mysql 更改为 mysqli,并解决了 WAMP 本地服务器显示的所有错误。但是登录机制被破坏了。现在,无论密码正确与否,它都允许用户登录。我正在使用以下函数来完成这项工作,在切换到 mysqli 之前它工作得很好。这里有什么问题?
function login($registration_id, $password) {
include 'core/database/connect.php';
$registration_id = sanitize($registration_id);
$password = sanitize($password);
$query = mysqli_query($link, "SELECT COUNT(`sr`) FROM `main_table` WHERE `registration_id` = '$registration_id' AND `password` = '$password'");
return (mysqli_data_seek($query, 0) == 1) ? $registration_id : false;
mysqli_close($link);
}
【问题讨论】:
-
首先,你的代码是 vulnebra to sql injection。转义它们,或使用准备好的语句。其次,在您返回之前,mysqli_close 链接永远不会运行。 (脚本结束时php自动关闭连接(.
-
显然,mysqli_query 中的
COUNT(`sr`)有问题。我用简单的sr替换它,现在它正在工作。但我不知道为什么会这样。