facebook php sdk — 500 Внутренняя ошибка сервера при вызовах PHP

У меня есть эта проблема, когда я прошу php использование файла $.ajax он всегда возвращает мне 500 ошибок сервера, но только когда я загружаю файлы на свой сервер.
Я использую XAMPP на Windows 8.1 и в localhost работает отлично.

Я пытался получить доступ к URL php файл, а также дает мне ту же ошибку.

Ajax:

function get_blog(reload_list){
var $titulo, $texto, $response, $post, $post_list;
var parameters = window.location.search;
$.ajax({
method: 'get',
url: '/php/blog.php' + parameters,
success: function(data){
if(data == "404"){
$("#blog").html("404 El articulo que buscas no existe");
} else {
$response = data;
$post_list = $response.post_list;
$titulo = $response.post.titulo;
$texto =  $response.post.texto;
$("title#blog_title").html("IBR - " + $titulo);
$("h3#blog_title").html($titulo);
$("#blog_text").html($texto);

if(reload_list){
for(i=0; i<=$post_list.length; i++){
$("#post_list").append($post_list[i]);
}
}
}
}
});

PHP:

<?php
error_reporting(E_ALL);
ini_set('display_errors' 1);

$l =  mysql_connect ( "localhost" , "myserver" , "mypass" ) or die("Error connecting:<BR><BR>".mysql_error());

mysql_select_db( "mydb" ) or die("Error getting db:<BR><BR>".mysql_error());
if(!isset($_GET['post_id'])) {
$query = mysql_query("SELECT * FROM mytable ORDER BY id DESC LIMIT 1") or die(mysql_error());
$row = mysql_fetch_array($query);
$id = stripslashes($row['id']);
$titulo = stripslashes($row['titulo']);
$texto = stripslashes($row['texto']);

$post = [
'id' => $id,
'titulo' => $titulo,
'texto' => $texto
];

}else{
// echo $_GET['post_id'];
$post_id = $_GET['post_id'];
$query = mysql_query("SELECT * FROM mytable WHERE id=$post_id ORDER BY id DESC LIMIT 1") or die(mysql_error());
$row = mysql_fetch_array($query);
if(empty($row)){
die("404");
}
$id = stripslashes($row['id']);
$titulo = stripslashes($row['titulo']);
$texto = stripslashes($row['texto']);$post = [
'id' => $id,
'titulo' => $titulo,
'texto' => $texto
];
}$query = mysql_query("SELECT * FROM mytable ORDER BY id DESC") or die(mysql_error());
while ($row = mysql_fetch_array($query) )
{

$id = stripslashes($row['id']);
$titulo = stripslashes($row['titulo']);

$li = '<a class="text_decoration post_list_item" href="devocional.html?post_id='.$id.'"><li>'.$titulo.'</li></a>';

$post_list[]= $li;
}

$response = [
'post' => $post,
'post_list' => $post_list
];

$json_response = json_encode($response);
print_r($json_response);
?>

На самом деле у меня нет доступа к моей error_log, Также пытался увидеть ошибки через:

error_reporting(E_ALL);
ini_set('display_errors' 1);

Но браузер показывает только пустую страницу. У меня та же проблема при вызове API Facebook с использованием PHP SDK тоже. Я действительно не знаю, что делать. Спасибо за помощь заранее.

0

Решение

PHP не поддерживает сокращенные массивы, которые вы используете до версии 5.4. http://php.net/manual/en/migration54.new-features.php, http://php.net/manual/en/language.types.array.php

Вот ваш обновленный код, который должен работать и быть совместимым с 5.6.

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);

$l =  mysql_connect ( "localhost" , "myserver" , "mypass" ) or die("Error connecting:<BR><BR>".mysql_error());

mysql_select_db( "mydb" ) or die("Error getting db:<BR><BR>".mysql_error());
if(!isset($_GET['post_id'])) {
$query = mysql_query("SELECT * FROM mytable ORDER BY id DESC LIMIT 1") or die(mysql_error());
$row = mysql_fetch_array($query);
$id = stripslashes($row['id']);
$titulo = stripslashes($row['titulo']);
$texto = stripslashes($row['texto']);

$post = array(
'id' => $id,
'titulo' => $titulo,
'texto' => $texto
);

}else{
// echo $_GET['post_id'];
$post_id = $_GET['post_id'];
$query = mysql_query("SELECT * FROM mytable WHERE id=$post_id ORDER BY id DESC LIMIT 1") or die(mysql_error());
$row = mysql_fetch_array($query);
if(empty($row)){
die("404");
}
$id = stripslashes($row['id']);
$titulo = stripslashes($row['titulo']);
$texto = stripslashes($row['texto']);$post = array(
'id' => $id,
'titulo' => $titulo,
'texto' => $texto
);
}$query = mysql_query("SELECT * FROM mytable ORDER BY id DESC") or die(mysql_error());
while ($row = mysql_fetch_array($query) )
{

$id = stripslashes($row['id']);
$titulo = stripslashes($row['titulo']);

$li = '<a class="text_decoration post_list_item" href="devocional.html?post_id='.$id.'"><li>'.$titulo.'</li></a>';

$post_list[]= $li;
}

$response = array(
'post' => $post,
'post_list' => $post_list
);

$json_response = json_encode($response);
print_r($json_response);
?>

Также обязательные примечания здесь …

  1. Измените драйверы SQL с mysql_ на mysqli или PDO.
  2. Отделите ваш пользовательский ввод от ваших запросов или в
    меньше всего используйте mysql_real_escape_string (это имя функции может быть
    перевернутый в порядке). Ваш в настоящее время открыт для инъекций SQL.
0

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

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