2017-09-11 71 views
1

我一直在使用WAMP服務器做這個模塊的網站和一切正常,但是當我upladed到網站服務器,它總是返回錯誤500Ajax請求返回POST <<url>> 500(內部服務器錯誤)

Error 500 1

Error 500 2

當主網頁的index.php負載(使用Javascript。就緒功能),它發送一個Ajax請求 'obtenermunicipio.php'。

<script type="text/javascript"> 
    $(document).ready(function() { 
     $.ajax({ 
      type: 'POST', 
      url: '../obtenermunicipio.php', 
      data : {'valor':'paz'}, 
      dataType: 'json', 
      success: function(data) { 
      if(data.length <= 0) { 
       return; 
      } 
      for(var i=0; i < data.length; i++) { 
       var opcion = document.createElement('option'); 
       opcion.innerHTML+=data[i]; 
       document.getElementById('unidadmedica').appendChild(opcion); 
      } 
      }, 
      error: function(e) { 
      console.log(e.message); 
      } 
     }); 
    }); 
</script> 

頁「obtenermunicipio.php」獲得的價值「勇敢」,並做出了MySQL查詢,以獲得陣列的數據,它的回報率。

<?php 
    include($_SERVER['DOCUMENT_ROOT'].'/Noticias/conexion.php'); 
    header('Content-Type: text/html; charset=ISO-8859-15'); 
    header("application/json"); 
    $conexion=conectar(); 
    $municipio = utf8_decode($_POST['valor']); 
    if($municipio != "loret") 
     $sql = "SELECT DISTINCT unidadmedica FROM `unidadesmedicas` WHERE municipio like '%".$municipio."%' AND localidad NOT LIKE '%loret%'"; 
    else 
     $sql = "SELECT DISTINCT unidadmedica FROM `unidadesmedicas` WHERE localidad like '%".$municipio."%'"; 
    $rs = mysql_query($sql) or die(mysql_error($conexion)); 
    $fila = mysql_fetch_all($rs); 
    print json_encode($fila); 
?> 

如何解決它的任何想法?它在Wamp上運行良好。

+1

可能是php錯誤,請檢查服務器上的錯誤日誌 – inarilo

+1

檢查您的服務器錯誤日誌 – Rienk

+0

這是一個Linux服務器,日誌文件的名稱是什麼? –

回答

1

我把這個放在答覆裏而不是評論裏,因爲我覺得他們很難跟蹤,因爲有很多事要說。

錯誤500意味着您的PHP腳本有些問題無法通過Web服務器正確處理。它通常類似於未聲明(或已棄用)的函數或者路徑或擴展的一些問題。

的第一步跟隨爲了調查這個問題要麼找到你的Web服務器上的error_log文件,或者在你的PHP腳本的頂部粘貼以下兩行:

<?php 
error_reporting(-1); // highest error reporting level 
ini_set("display_errors", true); // print errors directly as output 
/* all the rest here */ 

這就是說,有是你的代碼的另一個問題!請注意,由於您直接構建查詢字符串,並且其他人可能會讓您的查詢做一些完全不同的事情,所以它對於SQL注入攻擊非常脆弱。

要解決這個問題,您應該使用PDO和MySQLi擴展的預準備語句,或者通過mysql_real_escape_string()傳遞您要在查詢字符串中使用的所有變量。

+0

就像之前的文章,error_reporting()函數不起作用,它總是返回:Uncaught ReferenceError :在Object.fireWith [as rejectWith](jquery.min.js:2) at A(jquery.min.js:2) at Object.error(index.php:28) 未定義error_reporting (jquery.min.js:4) at XMLHttpRequest。 (jquery.min.js:4)。我將考慮到mysql_real_escape_string(),因爲服務器無法處理MySQLi或PDO擴展' –

相關問題