Ajax-запрос возвращает POST & lt; & lt; url & gt; & gt; 500 — внутренняя ошибка сервера)

Я делал этот модуль для веб-сайта, использующего сервер WAMP, и все работает, но когда я загружал его на сервер веб-сайта, он всегда возвращает ошибку 500.

Ошибка 500 1

Ошибка 500 2

Когда главная страница index.php загружается (используя функцию Javascript .ready), она отправляет запрос 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» получила значение «valor» и сделала запрос 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

Решение

Я помещаю это в ответ вместо комментария, потому что я чувствую, что им стало трудно следить, потому что есть несколько вещей, чтобы сказать.

Ошибка 500 означает, что в вашем PHP-скрипте что-то не так, и веб-сервер не может правильно обработать его. Обычно это что-то вроде необъявленной (или устаревшей) функции или проблема с путями или расширениями.

Первый шаг, который необходимо выполнить для изучения проблемы, — это либо найти файл 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(),

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector