Je viens de recevoir mon hébergement, j'ai téléchargé les fichiers de mon serveur localhost, exporté la base de données locale et l'ai téléchargée sur le service d'hébergement. J'ai ensuite créé un utilisateur avec toutes les autorisations autorisées.

Le problème est que lorsque j'entre sur le site Web, les fichiers PHP effectuant les requêtes génèrent une erreur de serveur interne (500).

J'ai vérifié la connexion à la base de données et la version du PHP avec le code suivant :

<?PHP
$db_servername = "www.website.com";
$db_username = "user";
$db_password = "password";
$db_database = "db";

phpinfo();

$db = mysqli_connect($db_servername, $db_username, $db_password,$db_database);
if (!$db) {
    die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error());
}

echo 'Connected... ' . mysqli_get_host_info($db) . "\n";
?>

Il en résulte que la connexion à la base de données est réussie et que la version PHP est à jour.

Voici le code du fichier php des requêtes :

<?php
include('db.php');
$sql = $db ->prepare('...');
$sql -> execute();
$result = $sql -> get_result();
$list = array();
while( $row = $result->fetch_assoc() ) {
    $list[] = $row;
}
$final_list = json_encode($list);
echo $final_list;
?>

La requête a été vérifiée sur le serveur et cela fonctionne très bien. J'ai commenté des sections du code ci-dessus pour vérifier quand cela donne une erreur, et l'erreur survient lorsque je fais écho à la $final_list. Tout le reste fonctionne.

Voici le code du script qui appelle la requête :

$.post("load_articles.php", function(result){
if(! (result == null)){
    /* Iterate through results to populate table */
    json = result;
    for(var i in json){
        if(i % 2 == 0 && i < 5){
            columnModulus = 0;
        }else if(i < 5){
            columnModulus = 1;
        }else if(i % 2 == 0 && i >= 5){
            columnModulus = 2;
        }else if(i >= 5){
            columnModulus = 3;
        }
        myData =
        '<a href="article.php?articleId=' + json[i].aId + '">' + 
            '<div class="home-article" id="' + json[i].aId + '">' + 
            '<img style="margin: auto; display: block;" data-modulus="'+columnModulus+'" src="'+json[i].imagePath+'">'+
            '<p class="article-theme">'+json[i].theme+'</p>'+
            '<p class="article-title">' + json[i].title + '</p>' +
            '</div>'+ 
            '</a>';
        appendTo = ".home-container div[data-modulus='"+columnModulus+"']";
        $(appendTo).append(myData);
    }
    

    }else{
        myData += "<div>No comments found</div>";
    }
}, "json"); 

Ce code fonctionne parfaitement dans le localhost, en modifiant bien sûr les détails de connexion à la base de données, mais il ne fonctionne pas sur le serveur en ligne. Des idées?

0
Miguel Cardona Polo 3 nov. 2020 à 16:00

1 réponse

Meilleure réponse

Ajouter au début du rapport d'erreurs de fichier, qui est généralement "Désactivé" sur les serveurs de production.

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

J'espère que cela vous aidera à diagnostiquer le problème. Sinon, consultez les fichiers journaux pour les erreurs.

0
Alex Khimich 3 nov. 2020 à 13:50