我已经在网站上工作了很长时间,但这一切都是在localhost上完成的。在登录表单正常工作后,我决定将其上传到托管
问题是如果我使用方法,ajax的回调函数似乎不起作用:POST
如果我将POST
更改为GET
,它将有效...
Ajax代码:
$.ajax({
method: 'POST',
url: "php/login.php",
data: { username: val_username, password: val_password },
success: function(response) {
if (response == 0) {
location.reload();
} else {
alert("Wrong username or password. Error #"+response);
}
}
});
的login.php
<?php
session_start();
require "../php_includes/mysql.php";
// Create connection
$conn = new mysqli($db_server, $db_user, $db_pass, $db_name);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// escape your parameters to prevent sql injection
$username = mysqli_real_escape_string($conn, $_POST['username']);
$password = mysqli_real_escape_string($conn, $_POST['password']);
$sql = "SELECT * FROM korisnici WHERE username='$username'";
$sql_result = $conn->query($sql);
if ($sql_result->num_rows > 0) {
$row = $sql_result->fetch_assoc();
if (password_verify($password, $row["password"])) {
$_SESSION["loggedin"] = true;
$_SESSION["userid"] = $row["id"];
echo 0;
} else echo 2;
} else echo 1;
?>
我检查了所有文件位置,没有问题,因为如果我将方法更改为GET,一切正常。
我尝试在ajax中更改数据类型,尝试在php文件中添加一些标题,我已经找到了在stackoverflow中搜索,但没有任何帮助......
答案 0 :(得分:1)
确保您在托管服务器上拥有相同版本的PHP(至少PHP 5.5,因为您使用的是password_verify()
,用于&gt; = PHP 5.5)。