Problème lors de l'upload de mon site

Fermé
pbrgs - 25 août 2022 à 16:54
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 - 29 août 2022 à 09:35

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

A voir également:

8 réponses

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
25 août 2022 à 17:04

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... )


0

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 ?

0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
Modifié le 25 août 2022 à 17:56

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

0

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 !

0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
25 août 2022 à 18:10

Quoi qu'il en soit,  il serait bien d'utiliser le code que je t'ai donné ainsi que d'appliquer ce qu'il y a dans le lien.

ça devrait te permettre d'obtenir une explication sur le souci rencontré.

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question

Je 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 :)

0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
25 août 2022 à 18:25

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 ?

0

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

0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
25 août 2022 à 19:00

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>
0

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

0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
26 août 2022 à 10:37

Fais un phpinfo dans un fichier php et regarde ce que ça te dit au niveau de la version php

0
pbrgs > jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024
26 août 2022 à 10:44

Je viens de regarder, et je suis sur la version 7.2.24 de PHP, est ce que vous savez si mysqli doit etre téléchargé à part ?

0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650 > pbrgs
26 août 2022 à 10:59

Toujours dans le phpinfo, regarde si l'extension mysqli est installée et activée 

0

Salut à tous,

Je ne vois pas MySQLI dans le phpinfo, de plus lorsque je fais la commande "php -m", MySQLI n'apparait pas dans les modules listés
Je suppose que ca veut dire que MySQLI n'est pas installé sur le serveur ? Qu'est ce que je dois faire dans ce cas ?

Merci beaucoup !

0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
29 août 2022 à 09:35

Soit tu as la main pour installer l'extension manquante, soit tu passes par PDO

0