【发布时间】:2017-06-27 20:01:43
【问题描述】:
我使用 ajax 将数据发布到 PHP,此代码在本地服务器中运行良好(我使用 XAMPP),但是当我将其上传到 Web 服务器时,它没有获取数据并向我显示此错误
POST http://my_server_IP/login.php 500(内部服务器错误)
如果我将 dataType 从 json 更改为 application/json 并添加 contentType: 'application/json; charset=utf-8',
那就是另一个错误
POST http://my_server_IP/login.php500(内部服务器错误)
但是在本地机器上它工作正常,我可以使用相同的代码登录
这是我的 JQuery、AJAX 代码
$.ajax({
dataType: "json",
type: "POST",
data: {user: sEmail, pass: sPass},
url: "login.php",
success:function(response){
var a = response;
if(a.res=='agree'){
var st = a.role+","+a.name;
$.cookie("imgup", st, { path: '/imgup', expires: 2 });
window.location.href = "logged.php";
}else if (a.res == 'error') {
errorDisplay(a.error);
}
}
});
这是 PHP
<?php
header('Content-Type: application/json');
require_once('inc/init.php');
require_once "helper/helper.php";
$email = sanitize($_POST['user']);
$pass = sanitize($_POST['pass']);
$sql_query = $db->query("SELECT * FROM `user_admin` WHERE `username`='$email'");
if(mysqli_num_rows($sql_query) > 0){
$sql = mysqli_fetch_assoc($sql_query);
if(password_verify($pass, $sql['password'])){
$role = explode(',',$sql['role']);
if(in_array("admin", $role)){
echo json_encode(array('res' => 'agree', 'role' => 'admin','name' => $sql['id']));
}elseif(in_array("editor", $role)){
echo json_encode(array('res' => 'agree', 'role' => 'editor','name' => $sql['id']));
}elseif(in_array("user", $role)){
echo json_encode(array('res' => 'agree', 'role' => 'user','name' => $sql['id']));
}
}else{
echo json_encode(array('res' => 'error', 'error' => 'user_pass'));
}
}else{
echo json_encode(array('res' => 'error', 'error' => 'user_not_exist'));
}
?>
错误日志是
PHP 致命错误:在第 11 行的 /var/www/html/login.php 中调用未定义函数 password_verify(),引用者:http://__my_IP__/login_page.php
但该功能在 localhost 中工作正常!!!
我该如何解决这个错误?
注意: sanitize 是检查字符串中存在的 html 实体的函数
【问题讨论】:
-
查看您的服务器错误日志,它会告诉您为什么它会抛出 500 错误。
-
检查服务器日志...并分享错误,以便我们提供更好的帮助或建议。
-
password_verify 函数在哪里定义...?由于 PHP 无法找到该函数定义
-
听起来您的网络服务器运行在 PHP 5.5 以下。
-
您的主机可能默认为 5.4。与他们交谈,或者看看是否可以使用
php55或php56软件包安装它。
标签: javascript php jquery json ajax