2017-09-11 17 views
1

を返す私はWAMP Serverおよびすべての作品を使用してウェブサイトのため、このモジュールを行ってきたが、私はウェブサイトのサーバーにそれをupladedときは、常にエラー500AjaxリクエストがPOST> 500 <<url>(内部サーバーエラー)

を返します。

Error 500 1

Error 500 2

それはobtenermunicipio.php 'にAJAX要求を送信する(Javascriptの.ready関数を使用して)メインページのindex.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は、Webサーバーで正しく処理できなかったPHPスクリプトに問題があることを意味します。これは、通常、宣言されていない(または廃止予定の)関数や、パスや拡張機能に関する問題です。そこに、

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

は言った:

最初のステップは、問題を調査するために従うことのいずれかのWebサーバー上のerror_logファイルを見つけることですか、あなたのPHPスクリプトの先頭に次の2行を貼り付けますあなたのコードのもう一つの問題です! SQLインジェクション攻撃に対しては本当に脆弱であることに注意してください。なぜなら、あなたは直接クエリ文字列を作成しており、他の誰かがあなたのクエリを全く違うことをするかもしれないからです。

これを解決するには、PDOとMySQLi拡張のプリペアドステートメントを使用するか、クエリ文字列で使用するすべての変数をmysql_real_escape_string()まで渡す必要があります。

+0

以前の投稿と同様に、error_reporting()関数は機能しません。常に返されます:Uncaught ReferenceError :error_reportingは定義されていません at Object.error(index.php:28) i(jquery.min.js:2) at Object.fireWith [as rejectWith](jquery.min.js:2) at (jquery.min.js:4) at XMLHttpRequest (jquery.min.js:4)。サーバがMySQLiまたはPDOの拡張機能を処理できないので、私はmysql_real_escape_string()を考慮に入れます。 –

関連する問題