2017-02-09 3 views
0

このコードは、ローカル・サーバー(XAMPPを使用しています)で正常に動作していますが、Webサーバーにアップロードしたときデータと私はアプリケーション/ JSONJSONからデータ型を変更し、のcontentType追加する場合、私は、このエラーJQuery、Ajax、PHPのポスト・エラー500(内部サーバー・エラー)

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

を示す:「アプリケーション/ JSONを。文字セット= UTF-8'

が、それは

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

別のエラーをshwongされているが、ローカルマシンでそれが正常に動作している、私はここで同じコードで

にログインすることができ、私の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')); 
} 
?> 
ですリファラ、ライン11上の/var/www/html/login.phpで未定義の関数password_verify()を呼び出します: http://__my_IP__/login_page.php

が、その機能が正常に動作し

エラーログは

PHPの致命的なエラーがありますローカルホストで!

このエラーを修正するにはどうすればよいですか?

注:サニタイズは、ホスティングサーバ上でPHPコードの上にphpinfo()を入れて、(ではないAJAXを通じて)直接実行する文字列

+2

ルックに動作していることを確認しますログ、それはあなたになぜ* 500エラーを投げているかを伝えます。 – aynber

+1

サーバのログを確認し、エラーを共有してください。 – Naincy

+0

私はエラーログを見つけることができます、私は/ var/log/httpdでそれを探しました。** error_log **という名前のファイルを探しましたが、古いデータだけを持っているログ –

答えて

1

に存在するHTMLエンティティをチェックする機能です。ブラウザの画面に表示されるPHPのバージョンが5.5.0より低い場合は、ホスティング業者にアップグレードを依頼するか、パスワードチェックに別のロジックを使用してください。

+0

私はすでにPHPの新しいバージョンをインストールしてくれてありがとうございます。 –

0

PHPの古いバージョン(v5.4)を使用していたためにこのエラーが発生し、PHPバージョンが5.6にアップデートされ、問題が解決されました。

password_verify()といくつかのより多くの機能がV5.5.0後に追加され、

は、あなたのPHPのバージョンが5.5以降、これらの機能は、サーバーエラーで罰金:)

関連する問題