我一直在使用WAMP Server为一个网站做这个模块,一切正常,但是当我将它上传到网站服务器时,它总是返回错误500.
当主页index.php加载(使用Javascript .ready函数)时,它会向'obtenermunicipio.php'发送ajax请求。
<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上工作正常。
答案 0 :(得分: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扩展程序&#39;准备好的陈述或通过mysql_real_escape_string()
传递您将在查询字符串中使用的所有变量。