Problème lors de l'upload de mon site
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
Je suis actuellement entrain de réaliser un site web.
J'ai donc utilisé Xampp et Netbeans en local sur mon PC
Une fois que je suis arrivé a un résultat qui me convenait, j'ai décidé d'herberger ma base de donnée en locale, sur le serveur en question. Jusque là, pas de soucis, j'arrive même à me connecter à ma base de donnée hébergé depuis mon code php en local (tout ca pour vous expliquer que la connexion à ma base de donnée est bonne, et fonctionne bien)
Sauf que : probleme :(
Lorsque j'essaye de mettre en ligne mes fichiers PHP, le code s'arrête au niveau de la connexion à la base
Voici comment à quoi ressemble ma page source :
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<div class="topnav">
<a class="active">Table des risques</a>
<a href="Login.php">Connexion Administrateur</a>
<a href='EnglishVersion.php' style='float:right;'><img src=""http://avsosnwebapp01p.tts.thales/BEMeca/flag_en.png" target="_blank" rel="nofollow noopener noreferrer ugc">flag_en.png" width="17"/></a>
<a href='FrenchVersion.php' style='float:right;'><img src=""http://avsosnwebapp01p.tts.thales/BEMeca/flag_fr.png" target="_blank" rel="nofollow noopener noreferrer ugc">flag_fr.png" width="17"/></a>
</div>
<div class='container'>
<table>
<tr>
<td style='border: 1px solid #ffffff;color:#ffffff'>
.............................
</td>
<td style='border: 1px solid #ffffff;width:70%'>
<h2 align='center'>Table des risques</h2>
</td>
<td style='float:right;border: 1px solid #ffffff;'>
Bonjour1
Il faut savoir qu'après le "Bonjour1", il y a normalement dans mon fichier de code PHP la partie avec la requete de connexion à la base, et juste après viens "Bonjour2", mais comme vous pouvez le voir, "Bonjour2" ne s'affiche pas, ce qui signifie que c'est la requete qui bloque... Je comprends pas pourquoi ca marche en local, et pas quand c'est en ligne...
Des idées pour résoudre mon soucis ?
Merci d'avance
Windows / Edge 104.0.1293.47
- Problème lors de l'upload de mon site
- Site de telechargement - Accueil - Outils
- Site comme coco - Accueil - Réseaux sociaux
- Site de partage de photos - Guide
- Quel site remplace coco - Accueil - Réseaux sociaux
- Meilleur site de vente entre particulier - Guide
8 réponses
Bonjour,
Pour pouvoir t'aider .. il faudrait déjà nous montrer le code PHP utilisé.
(en utilisant l'icone dans la barre qui permet de poster du code correctement sur le forum... )
Bonjour Jordane,
<!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1"> </head> <body> <!--NavBar --> <div class="topnav"> <a class="active">Table des risques</a> <a href="Login.php">Connexion Administrateur</a> <a href='EnglishVersion.php' style='float:right;'><img src="" width="17"/></a> <a href='FrenchVersion.php' style='float:right;'><img src="" width="17"/></a> </div> <div class='container'> <table> <tr> <td style='border: 1px solid #ffffff;color:#ffffff'> ............................. </td> <td style='border: 1px solid #ffffff;width:70%'> <h2 align='center'>Table des risques</h2> </td> <td style='float:right;border: 1px solid #ffffff;'> <?php echo "Bonjour1"; $link = mysqli_connect("addresseip", "utilisateur", "mdp", "bdd", "port"); echo "Bonjour 2"; $NombreDeRisquesTotal = 'SELECT COUNT(*) FROM risque'; $ResultNbRisques = mysqli_query($link, $NombreDeRisquesTotal); if (mysqli_num_rows($ResultNbRisques) > 0) { while ($rowData = mysqli_fetch_array($ResultNbRisques)) { echo "<h3 align='center'>Risques enregistrés : " . $rowData[0] . "<h3>"; } } ?> </td> </tr> </table> </div> </body> </html>
Voila à quoi ressemble le bout de code qui te manque.
Pour ce qui est de la connexion, je suis sur à 100% que je rentre les bons parametre dedans, puisque quand je teste sur mon pc en local, avec ces parametre là, la page me ressort bien ce que je veux comme données. Je pense que le problème vient du serveur mais je m'y connais pas et ne sais donc pas quoi regarder... Soucis de version peut etre ? Mais quoi dans ce cas ?
Pour ce qui est de la connexion, je suis sur à 100% que je rentre les bons parametre dedans, puisque quand je teste sur mon pc en local, avec ces parametre là, la page me ressort bien ce que je veux comme données.
En local .. tu as certainement utilisé comme host : localhost, comme user : root et aucun password ( ou alors root aussi )
Mais.. les informations ne sont pas celles là sur ton hébergement.
Il faut voir avec ton hébergeur, quelles sont les informations à utiliser pour accéder à la bdd.
Pour voir les éventuelles erreurs à la connexion, tu devrais utiliser le code sous cette forme
$link = mysqli_connect("addresseip", "utilisateur", "mdp", "bdd", "port"); // Check connection if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); exit(); }
Je t'invite fortement également à activer l'affichage des erreurs PHP sur ton site et à suivre les recommandations fournies dans ce lien : https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
Re,
On ne s'est pas compris, lorsque je teste mon fichier de code en local sur mon PC, et que je lui demande de se connecter à la base de donnée en ligne (qui n'est pas "localhost", mais une adresse ip : 10.blablablabla.blablabla.ect, avec un utilisateur que je connais, un mdp que je connais, un nom de base que je connais, et le port que je connais), la page marche parfaitement, elle me ressort les données que je veux, sans rien chercher en local sur mon PC vu que je me connecte à la base qui est hébergée.
Le problème survient lorsque je prends ce même fichier de code, et que je le mets en ligne. Le code s'arrete à la connexion à la meme base (je n'ai rien changé), alors que ca devrait fonctionner.
Je ne sais pas si c'est plus clair pour toi, sinon n'hésite pas
Merci beaucoup de m'aider par ailleurs !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionJe viens de tester en ajoutant le bout de code avec la gestion d'erreur, aucune erreur n'est rapportée.
Voici ce que j'obtient sur mon lorsque le code PHP est sur mon PC, avec ton morceau de code :
Voici ce que j'obtient lorsque meme code PHP est upload sur le serveur et que tout le monde y a accès :
C'est comme si il n'essayait meme pas de faire la connexion à la base...
Je te remets le code au cas ou, mais c'est le meme avec juste ce que tu m'as dit d'ajouter en plus
<!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1"> </head> <body> <!--NavBar --> <div class="topnav"> <a class="active">Table des risques</a> <a href="Login.php">Connexion Administrateur</a> <a href='EnglishVersion.php' style='float:right;'><img src="" width="17"/></a> <a href='FrenchVersion.php' style='float:right;'><img src="" width="17"/></a> </div> <div class='container'> <table> <tr> <td style='border: 1px solid #ffffff;color:#ffffff'> ............................. </td> <td style='border: 1px solid #ffffff;width:70%'> <h2 align='center'>Table des risques</h2> </td> <td style='float:right;border: 1px solid #ffffff;'> <?php $link = mysqli_connect("10.219.XX.XX", "devXX", "#2sXXXX", "analyse_XXXXX", "42XX"); if(mysqli_connect_errno()){ echo mysqli_connect_error(); } $NombreDeRisquesTotal = 'SELECT COUNT(*) FROM risque'; $ResultNbRisques = mysqli_query($link, $NombreDeRisquesTotal); if (mysqli_num_rows($ResultNbRisques) > 0) { while ($rowData = mysqli_fetch_array($ResultNbRisques)) { echo "<h3 align='center'>Risques enregistrés : " . $rowData[0] . "<h3>"; } } ?> </td> </tr> </table> </div> </body> </html>
PS : Tu peux voir ici que je me connecte bien à une base en ligne, j'ai volontairement remplacé une partie des chiffres et des lettres par des "X", sinon c'est comme si je mettais les mdp en ligne :)
Je ne vois pas dans ton code, l'activation de l'affichage des erreurs PHP.
Je pense également que tu n'as pas regardé le lien que je t'avais donné expliquant qu'il est préférable de placer le maximum de code PHP en dehors du HTML, de préférence, au début du script.
Chez quel hébergeur as-tu mis ton site ?
As-tu essayé de remplacer l'adresse IP par localhost car si ton script PHP se trouve sur le même serveur que ta base de données c'est en général cette information là qu'on utilise.
Peux-tu également m'indiquer quel est le nom de ton fichier ? Plus particulièrement l'extension de celui-ci ?
Quand tu parles d'affichage des erreurs, ca correspond pas à la ligne 35 ? "echo mysqli_connect_error();" ?
Je vois pas trop comment je peux placer mon code PHP autre part que là ou il est, vu qu'il echo une valeur dans une case d'un tableau
J'ai pas hébergé le site moi meme, c'est un serveur interne d'une entreprise dans laquelle je travaille. Je vais essayer de remplacer par localhost et voir ce que ca donne mais ca m'étonnerais, le site et la base de donnée ont pas la meme adresse ip
Le fichier s'appelle FrenchVersion.php, que ce soit sur mon pc, ou quand il est hébergé il a le meme nom
Merci pour tout
Quand tu parles d'affichage des erreurs, ca correspond pas à la ligne 35 ? "echo mysqli_connect_error();" ?
Le fait que tu me poses la question prouve que tu n'as pas été lire le lien que je t'ai donné....
Je te le redonne donc : : https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
Je vais essayer de remplacer par localhost et voir ce que ca donne mais ca m'étonnerais, le site et la base de donnée ont pas la meme adresse ip
Là encore, tu n'as pas du lire ce que je t'ai écrit...
As-tu essayé de remplacer l'adresse IP par localhost car si ton script PHP se trouve sur le même serveur que ta base de données
Et pour :
Je vois pas trop comment je peux placer mon code PHP autre part que là ou il est, vu qu'il echo une valeur dans une case d'un tableau
Par exemple :
<?php //affichage des erreurs PHP error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); //connexion à la bdd $link = mysqli_connect("10.219.XX.XX", "devXX", "#2sXXXX", "analyse_XXXXX", "42XX"); if(mysqli_connect_errno()){ echo "Erreur de connexion : " . mysqli_connect_error(); exit; } //récucupération des risques $NombreDeRisquesTotal = 'SELECT COUNT(*) FROM risque'; $ResultNbRisques = mysqli_query($link,$NombreDeRisquesTotal); //on vérifie que la requête n'a pas retournée d'erreur if ( !empty(mysqli_error($link)) ){ echo("Erreur sql : " . mysqli_error($link)); exit; } ?> <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1"> </head> <body> <!--NavBar --> <div class="topnav"> <a class="active">Table des risques</a> <a href="Login.php">Connexion Administrateur</a> <a href='EnglishVersion.php' style='float:right;'><img src=""" width="17"/></a> <a href='FrenchVersion.php' style='float:right;'><img src=""" width="17"/></a> </div> <div class='container'> <table> <tr> <td style='border: 1px solid #ffffff;color:#ffffff'> ............................. </td> <td style='border: 1px solid #ffffff;width:70%'> <h2 align='center'>Table des risques</h2> </td> <td style='float:right;border: 1px solid #ffffff;'> <?php if (mysqli_num_rows($ResultNbRisques) > 0) { while ($rowData = mysqli_fetch_array($ResultNbRisques)) { echo "<h3 align='center'>Risques enregistrés : " . $rowData[0] . "<h3>"; } } ?> </td> </tr> </table> </div> </body> </html>
Salut Jordane,
Bon, plusieurs bonnes et mauvaises nouvelles :
La bonne, tu avais raison pour la gestion d'erreur, maintenant au moins ca m'affiche quelque chose : le voici
Fatal error: Uncaught Error: Call to undefined function mysqli_connect() in /var/www/html/BEMeca/test.php:164 Stack trace: #0 {main} thrown in /var/www/html/BEMeca/test.php on line 164
Mauvaise nouvelle : je comprends pas ce que ca veut dire... C'est comme si mysqli etait pas reconnu sur le serveur
Je croyais que mysli etait dispo d'origine depuis php 5.5, mais du coup si il me renvoie cette erreur ca veut dire que le mec qui a configuré le serveur a mis une version encore plus ancienne ?
Merci d'avance à tous, mais surtout merci à toi Jordane