2017-02-09 214 views
0

即时通讯发布数据与ajax到PHP,此代码在本地服务器(即时通讯使用XAMPP)工作正常,但是当我上传到Web服务器它没有采取数据和表示我这个错误jQuery,Ajax,PHP后发生错误500(内部服务器错误)

POST http://my_server_IP/login.php 500 (Internal Server Error)

如果我从JSON改变数据类型为应用/ JSON并添加的contentType:“应用/ JSON;字符集= UTF-8' ,

则shwong另一个错误

POST http://my_server_IP/login.php 500 (Internal Server Error)

但在本地机器上它工作正常,我可以用相同的代码

登陆这里是我的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致命错误:在/var/www/html/login.php调用未定义功能password_verify()第11行,引用者:http://__my_IP__/login_page.php

但此功能工作正常在本地主机!!!

我该如何解决这个错误?

注: sanitize方法是检查存在的字符串中

+2

看看你的服务器错误日志,它会告诉你*为什么*它抛出了500错误。 – aynber

+1

检查服务器日志...并分享错误,以便我们可以帮助或建议更好。 – Naincy

+0

哇我可以找到错误日志,我在/ var/log/httpd中搜索它,我喜欢一个名为** error_log **的文件,但该日志只有旧数据 –

回答

1

phpinfo()对你的PHP代码顶级HTML实体,并直接在主机服务器上运行(不是通过AJAX)的功能。如果您在浏览器屏幕上看到的PHP版本低于5.5.0,请让您的主机进行升级或使用其他逻辑进行密码检查。

+0

谢谢先生,但我已经安装了新版本的PHP,它现在工作:) –

0

这个错误是因为我有一个旧版本的PHP(v5.4),我的PHP版本更新到5.6并且问题解决了!

password_verify()和更多功能后V5.5.0增加,

确保你的PHP版本是5.5以上,那么这些功能工作正常:)

相关问题