veiss
veiss

Reputation: 79

GET method returns 500 Internal server error

I'm new here so I have some question. I'm developing a web site, but there is some problem. I have map with tags, that onclick invokes a function "getObject(this.alt)".

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

It executes script object.php were t= area tags alt attribute, the objects.php connects to MySql and returns objects row, but I get this kind of error:

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

Can you please help me? :)

This is the PHP code. Object is alt atribute from area tag in HTML file. It gets this alt and from that returns DB row with this alt name.

<?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'];
  }
?>

And the WEB server info:

Upvotes: 0

Views: 3103

Answers (3)

veiss
veiss

Reputation: 79

So I solved problem like this. Cheked the PHP extension, changed mysqli_... to mysql_... Cheked the SQL user privilegies and changed them to be suitable to my problem. And I had database address written "localhost" because it runs on other server, not mine but when given to mysql_connect() the address like in IP, then the connection established right. And whola it worked, thanks everybody for help. :)

Now it looks something like this:

$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);

Upvotes: 0

Bellash
Bellash

Reputation: 8184

mysqli_connect throws exception if mysqli module not installed or enabled. You'd activate this module in the php extions file

OR if your database is a mysql database and not mysqli, try to change from mysqli to mysql in your php code file

Upvotes: 1

Pedro Lobito
Pedro Lobito

Reputation: 98881

Your error is on the php.

Add this to the top of your php script:

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

Then check the log:

tail -f /tmp/php-error.log

Upvotes: 0

Related Questions