【发布时间】:2014-03-12 04:21:37
【问题描述】:
我有一个 Javascript 脚本,它通过 POST 将 Ajax 请求发送到以下 PHP 脚本。 $db 是从上面传递的,但我知道那部分有效。我收到了 500 内部服务器错误。我无法查看服务器日志,因此无法获得比这更详细的信息。有谁知道我可以做些什么来解决它?
function register($db) {
$user = $_POST['username'];
$pass = $_POST['password'];
$query = "SELECT username FROM users WHERE username='$user'";
$result = mysqli_query($db, $query);
if (mysqli_fetch_array($result)[0] == $user) {
echo "taken";
}
else {
$query = "INSERT INTO users (username, password) VALUES ('$user', '$pass')";
if (mysqli_query($db, $query)) {
echo "success";
}
}
}
【问题讨论】:
-
可爱的SQL injection attack 漏洞。您是否使用最新的 PHP 版本,例如5.4+?您的
mysqli_fetch_array()[0]在早期 PHP 中是非法语法。 -
还有其他 PHP 脚本可以在这个服务器上运行吗?
-
请检查您服务器中的文件权限和.htaccess文件
-
检查你的 PHP 版本是否支持
()[]-> 从数组函数中获取元素。 -
@NinjaDevelopers:呃,我不是这么说的。您现在正在混合使用 mysql 和 mysqli 库。如果可以的话,我会 -1 你...