GET方法返回500内部服务器错误

时间:2014-04-14 08:08:49

标签: javascript php mysql

我是新来的,所以我有一些问题。我正在开发一个网站,但是有一些问题。 我有带标签的地图,onclick调用一个函数" getObject(this.alt)"。

function getObjects(object){
console.log(object);
$.get("/sites/map/objects.php?t="+object, function(data) {
  $('#answer').html(data);
});

它执行脚本object.php是t = area tags alt属性,objects.php连接到MySql并返回对象行,但是我得到了这种错误:

GET http://some-site.com/sites/map/objects.php?t=some_object 500 (Internal Server Error) jquery-latest.js:8706
你能帮帮我吗? :)

这是PHP代码。 对象是HTML文件中区域标记的alt属性。它得到这个alt,并从中返回带有此alt名称的DB行。

<?php
$object = $_GET['t'];
echo $object;
$con=mysqli_connect("server_adr","username","password","db_name");
// Check connection
if (mysqli_connect_errno())
{
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$con->set_charset("utf8");
if($object!='all'){
$result = mysqli_query($con,"SELECT * FROM map WHERE `city`='$object' ORDER BY tips");
}
else{
$result = mysqli_query($con,"SELECT * FROM map ORDER BY tips"); 
}
$old_tips = '';
$old_city = ''; 
while($row = mysqli_fetch_array($result))
  {
  $tips = $row['tips'];
  $city = $row['city'];
  if($old_tips!=$tips){
      echo '<strong>'.$tips.'</strong><br>';
  }
  if($old_city!=$city){
      echo $row['city'] . '<br>';
  }
  echo $row['title'] . ' - <a href="'.$row['web'].'">' . $row['web']. '</a>';
  echo "<br>";
  $old_tips = $row['tips'];
  $old_city = $row['city'];
  }
?>

WEB服务器信息:

  • Apache / 2.2.21(FreeBSD)mod_ssl / 2.2.21带有Suhosin-Patch SVN / 1.7.1的OpenSSL / 0.9.8q DAV / 2 PHP / 5.3.8
  • MySQL客户端版本:5.1.59
  • PHP扩展:mysql

3 个答案:

答案 0 :(得分:1)

如果未安装或启用mysqli模块,

mysqli_connect会抛出异常。您可以在php extions文件

中激活此模块

如果你的数据库是一个mysql数据库而不是mysqli, 尝试在php代码文件中将mysqli更改为mysql

答案 1 :(得分:0)

您的错误在php上。

将其添加到php脚本的顶部:

ini_set("log_errors", 1);
ini_set("error_log", "/tmp/php-error.log");

然后检查日志:

tail -f /tmp/php-error.log

答案 2 :(得分:0)

所以我解决了这样的问题。 Cheked PHP扩展,将mysqli_...更改为mysql_... Cheked SQL用户权限并将其更改为适合我的问题。 我写了数据库地址&#34; localhost&#34;因为它在其他服务器上运行,而不是在我的服务器上运行,但是当给予mysql_connect()地址时就像IP一样,那么连接建立正确。 而且它有效,感谢大家的帮助。 :)

现在它看起来像这样:

$connection = mysql_connect("db_addr","sql_user","password");
// Check connection
if (!$con)
{
    die ("Could not connect: " . mysql_error());
}
echo "Connection successfully <br>";

mysql_select_db("database_name");
mysql_set_charset('utf8' , $connection);