2017-02-09 236 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以上,那麼這些功能工作正常:)

相關問題