2014-04-14 74 views
0

我是新来的,所以我有一些问题。我正在开发一个网站,但有一些问题。 我有标签的地图,onclick调用一个函数“getObject(this.alt)”。GET方法返回500内部服务器错误

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

它执行脚本object.php为T =区域标签的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的OpenSSL/0.9.8q DAV/2 PHP/5.3.8用了Suhosin贴片SVN /1.7.1
  • MySQL客户端版本:59年5月1日
  • PHP扩展:mysql的
+6

“500(内部服务器** **错误)” - 问题是在PHP。检查你的PHP日志中的错误,然后修复它们。 –

+0

您的服务器端代码问题 –

+1

在此处发布您的php代码并或附上'object'详细信息 –

回答

1

mysqli_connect抛出异常,如果不安装或启用的mysqli模块。你会激活此模块中的php extions文件

,或者如果你的数据库是MySQL数据库,而不是mysqli的, 尝试从mysqli改变mysql在你的PHP代码文件

+0

PHP扩展名显示mysql,但是当我将mysqli更改为mysql时,没有任何更改。 – veiss

+0

不!你需要在你的PHP扩展文件中做什么是UNCOMMENT LINE where WHERE'mysqli'。或者如果你使用的是mysql数据库,那么在你的php文件中使用的函数是'mysql _...'而不是'mysqli _...' – Bellash

+0

对不起,这是我的理由。扩展名显示'mysql'和我在我的php文件中所做的更改。所以现在我做了一些事情,mysql_error()显示“在读取初始通信包时丢失了与MySQL服务器的连接”,系统错误:61'我认为比'Internal Server Error'好。我无法进入服务器配置,有没有解决这个问题的另一种方法? – veiss

0

你的错误是在PHP 。

添加到您的PHP脚本的顶部:

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

然后检查日志:

tail -f /tmp/php-error.log 
0

所以我解决的问题是这样的。 尝试PHP扩展,将mysqli_...更改为mysql_... 检查SQL用户特权并将其更改为适合我的问题。 而我有数据库地址写入“本地主机”,因为它运行在其他服务器上,而不是我的,但当给予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); 
相关问题