Message d'erreur "deprecated:mysql_pconnect()"

Bonjour Chers tous,
Je tenter d'ouvrir un fichier php sur mon navigateur web, et j'ai le message d'erreur qui s'affiche sur la capture que j'ai joint à ce message.

Par ailleurs, ci-dessous, se trouve lien permettant de télécharger le fichier php qui pose problème.

https://www.cjoint.com/c/LFBrO47XW3P

Merci pour votre support.

Cordialement /-

6 réponses

  1. Modérateur
    Bonjour,

    L'extension mysql_* est OBSOLETE
    Désormais, il faut utiliser l'extension mysqli ou pdo .

    Il te faut donc réécrire ton code en utilisant une de ces deux extensions.. (perso je préfère pdo)
    1. Modérateur
      Bonjour ..
      Le message d'erreur est bien explicite en signifiant que la commande utilisée (mysql_connect) n'est plus applicable et doit être remplacée par une autre commande mysqli_connect() ..
      Il faut donc modifier le fichier php.

      1. Modérateur
        hello
        il peut aussi passer par du PDO ... ou du mysqli objet ...

        Quoi qu'il en soit, il n'y aura pas que cette instruction à changer .. mais tout le code qui sert à faire des requêtes SQL ...
    2. J'ai modifié le code du fichier de connexion à la base de données mySQL. Le lien de ce fichier est ci-dessous :

      https://cjoint.com/c/LFCmE2QwJo7

      Ci-dessous, le lien du fichier php qui affiche les erreurs après la modification du code :

      https://cjoint.com/c/LFCmGgmY6w7

      Ci-dessous, un aperçu du nouveau message d'erreur après la modification du code :



      Merci pour le support /-
      1. Modérateur
        Comme je le disais .. il ne suffit pas de modifier la connexion ... il faut aussi refaire TOUTES les instructions qui servent à manipuler la bdd....

        Tu ne dois plus avoir dans ton code, une seule ligne de code contenant mysql_*

        Pour PDO, voici un exemple d'écriture propre de code pour la connexion et l'exécution d'une requête
        https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs

        PS: A l'avenir, merci de coller le code DIRECTEMENT dans le forum ( en utilisant les balises de code), plutôt que de nous mettre des fichiers à télécharger....

        => explications balises de code : https://forums.commentcamarche.net/forum/affich-37598670-mise-en-forme-du-forum-et-des-fiches-pratiques-ccm#les-codes-sources
      2. Modérateur
        @jordane45en gros
        <?php
        //démarrage des sessions
        session_start();
        
        //----------------------------------//
        // Connexion à la bdd
        //----------------------------------//
        require_once "tonfichierdeconnexionatabdd.php";
        
        
        //----------------------------------//
        // récupération PROPRE des variables AVANT de les utiliser
        //----------------------------------//
        
        $email = !empty($_POST['email']) ? trim($_POST['email']) : NULL;
        $pass = !empty($_POST['Pass']) ? trim($_POST['Pass']) : NULL;
        
        
        //----------------------------------//
        // Traitement du formulaire de connexion
        //----------------------------------//
        
        if ($email && $pass) {
        
        // on prépare la requête et ses variables :  
          $sql = "SELECT * FROM `admin` WHERE email =:email ";
          $datas = [':email' => $email];
        //Execution de la requete
          try {
            $requete = $db->prepare($sql);
            $requete->execute($datas);
          } catch (Exception $e) {
            // en cas d'erreur :
            echo " Erreur ! " . $e->getMessage();
            echo " Les datas : ";
            print_r($datas);
          }
        
          $result = $requete->fetchAll(); // on stocke le résultat dans un array
          $totalRows_rsSelectAdmin = count($result);
        
        //si on a bien qu'un seul user avec cet email 
          if ($totalRows_rsSelectAdmin == 1) {
            
            //On ne stocke pas le password en CLAIR dans la bdd.
            // il faut, lors de son insertion en bdd, le hasher.
            // pour ça, il faut utiliser : https://www.php.net/manual/fr/function.password-hash.php
            
            
            //par conséquent, il faut ensuite utiliser la fonction password_verify  pour vérifier qu'il est conforme
            // https://www.php.net/manual/fr/function.password-verify.php
            
            $password_bdd = $result[0]['pass']; // mot de passe du user dans la bdd
            
            if(password_verify($pass, $password_bdd)){
              // les mots de passe sont identiques
              // ...
              $_SESSION['USER'] = $result[0]; // on stocke le user en SESSION ..
              //... etc..
            }
            
          }
        }
        ?>
        
        <!doctype html>
        <html>
          <head>
            <meta charset="utf-8">
            <title>Connexion admin</title>
          </head>
        
          <body>
            <div style="background:repeat-y; width:2048; height:auto; margin-let:auto;margin-right:auto;margin-top:10px;">
        
              <div style="background:none; padding-top:32px">
                <div style="font-style:normal; font-family:Arial black; border-bottom:solid 1px #666666; color:black; height:200px;font-size:24px; margin-top:5px;text-align:center"><img src="../../Design/logo OARHx.png" width="189" height="180"></div>
                <form name="form1" method="POST" action="">
                  <table width="381" align="center"> 
                    <tr>
                      <td width="181" height=32px align="center">
                        <span style="font-style:normal; font-family:Arial black; color:black; height:50px;font-size:24px; margin-top:20px;text-align:center">CONNEXION</span>
                      </td>
                    </tr>
                    <tr>
                      <td align="center">
                        <label for="email"></label>
                        <input name="email" type="text" id="email" placeholder="Email" value="" size="32px" style="font-family:arial; height:32px; font-size:16px">
                      </td>
                    </tr>
                    <tr>
                      <td style:border-bottom:solid 1px white></td>
                    </tr>
                    <tr>
                      <td></td>
                    </tr>
                    <tr>
                      <td align="center"><label for="Pass"></label>
                        <input name="Pass" type="password" id="Pass" placeholder="Mot de passe" size="32px" style="font-family:arial; height:32px; font-size:16px">
                      </td>
                    </tr>
                    <tr>
                      <td></td>
                    </tr>
                    <tr>
                      <td></td>
                    </tr>
                    <tr>
                      <td height="32px"></td>
                    </tr>
                  </table>
                  <table width="400px" align="center">
                    <tr>
                      <td align="center"><input src="../../Design/Bouton3.png" type="image"/></td>
                    </tr>
                    <tr>
                      <td></td>
                    </tr>
                    <tr>
                      <td></td>
                    </tr>
                  </table>
                </form>
              </div>
            </div>
          </body>
        </html>
        
        
    3. Merci beau Jordane45,

      Mais je ne comprends pas pourquoi il y a une erreur à la ligne 27.

      <?php
      //démarrage des sessions
      session_start();

      //----------------------------------//
      // Connexion à la bdd
      //----------------------------------//
      require_once "connexion_oarh.php";

      //----------------------------------//
      // récupération PROPRE des variables AVANT de les utiliser
      //----------------------------------//

      $email = !empty($_POST['email']) ? trim($_POST['email']) : NULL;
      $pass = !empty($_POST['Pass']) ? trim($_POST['Pass']) : NULL;

      //----------------------------------//
      // Traitement du formulaire de connexion
      //----------------------------------//

      if ($email && $pass) {

      // on prépare la requête et ses variables :
      $sql = "SELECT * FROM `admin` WHERE email =:email ";
      $datas = [':email' => $email];
      //Execution de la requete
      try {
      $requete = $db->prepare($sql);
      $requete->execute($datas);
      } catch (Exception $e) {
      // en cas d'erreur :
      echo " Erreur ! " . $e->getMessage();
      echo " Les datas : ";
      print_r($datas);
      }

      $result = $requete->fetchAll(); // on stocke le résultat dans un array
      $totalRows_rsSelectAdmin = count($result);

      //si on a bien qu'un seul user avec cet email
      if ($totalRows_rsSelectAdmin == 1) {

      //On ne stocke pas le password en CLAIR dans la bdd.
      // il faut, lors de son insertion en bdd, le hasher.
      // pour ça, il faut utiliser : https://www.php.net/manual/fr/function.password-hash.php

      //par conséquent, il faut ensuite utiliser la fonction password_verify pour vérifier qu'il est conforme
      // https://www.php.net/manual/fr/function.password-verify.php

      $password_bdd = $result[0]['pass']; // mot de passe du user dans la bdd

      if(password_verify($pass, $password_bdd)){
      // les mots de passe sont identiques
      // ...
      $_SESSION['USER'] = $result[0]; // on stocke le user en SESSION ..
      //... etc..
      }

      }
      }
      ?>

      <!doctype html>
      <html>
      <head>
      <meta charset="utf-8">
      <title>Connexion admin</title>
      </head>

      <body>
      <div style="background:repeat-y; width:2048; height:auto; margin-let:auto;margin-right:auto;margin-top:10px;">

      <div style="background:none; padding-top:32px">
      <div style="font-style:normal; font-family:Arial black; border-bottom:solid 1px #666666; color:black; height:200px;font-size:24px; margin-top:5px;text-align:center"><img src="../../Design/logo OARHx.png" width="189" height="180"></div>
      <form name="form1" method="POST" action="">
      <table width="381" align="center">
      <tr>
      <td width="181" height=32px align="center">
      <span style="font-style:normal; font-family:Arial black; color:black; height:50px;font-size:24px; margin-top:20px;text-align:center">CONNEXION</span>
      </td>
      </tr>
      <tr>
      <td align="center">
      <label for="email"></label>
      <input name="email" type="text" id="email" placeholder="Email" value="" size="32px" style="font-family:arial; height:32px; font-size:16px">
      </td>
      </tr>
      <tr>
      <td style:border-bottom:solid 1px white></td>
      </tr>
      <tr>
      <td></td>
      </tr>
      <tr>
      <td align="center"><label for="Pass"></label>
      <input name="Pass" type="password" id="Pass" placeholder="Mot de passe" size="32px" style="font-family:arial; height:32px; font-size:16px">
      </td>
      </tr>
      <tr>
      <td></td>
      </tr>
      <tr>
      <td></td>
      </tr>
      <tr>
      <td height="32px"></td>
      </tr>
      </table>
      <table width="400px" align="center">
      <tr>
      <td align="center"><input src="../../Design/Bouton3.png" type="image"/></td>
      </tr>
      <tr>
      <td></td>
      </tr>
      <tr>
      <td></td>
      </tr>
      </table>
      </form>
      </div>
      </div>
      </body>
      </html>
      1. Modérateur
        Vu que tu n'as pas posté ton code correctement ( en indiquant le langage dans les balises de code) ... alors que je t'ai donné un lien explicatif sur leur fonctionnement... ( ce qui fait que je n'ai ni la coloration syntaxique.. ni la numérotation des lignes...)

        et vu que... tu ne nous donnes pas le message d'erreur en question .....

        Comment penses-tu que je puisse te répondre ???
    4. La ligne 27 c'est celle-ci :

      $datas = [':email' => $email];
      1. Modérateur
        Il n'y a pas d'anomalie dans ce code....

        Si tu donnais le message d'erreur exact ça permettrait très certainement de pouvoir identifier le souci....
    5. <?php
      //démarrage des sessions
      session_start();
      
      //----------------------------------//
      // Connexion à la bdd
      //----------------------------------//
      require_once "connexion_oarh.php";
      
      
      //----------------------------------//
      // récupération PROPRE des variables AVANT de les utiliser
      //----------------------------------//
      
      $email = !empty($_POST['email']) ? trim($_POST['email']) : NULL;
      $pass = !empty($_POST['Pass']) ? trim($_POST['Pass']) : NULL;
      
      
      //----------------------------------//
      // Traitement du formulaire de connexion
      //----------------------------------//
      
      if ($email && $pass) {
      
      // on prépare la requête et ses variables :  
        $sql = "SELECT * FROM `admin` WHERE email =:email ";
        $datas = [':email' => $email];
      //Execution de la requete
        try {
          $requete = $db->prepare($sql);
          $requete->execute($datas);
        } catch (Exception $e) {
          // en cas d'erreur :
          echo " Erreur ! " . $e->getMessage();
          echo " Les datas : ";
          print_r($datas);
        }
      
        $result = $requete->fetchAll(); // on stocke le résultat dans un array
        $totalRows_rsSelectAdmin = count($result);
      
      //si on a bien qu'un seul user avec cet email 
        if ($totalRows_rsSelectAdmin == 1) {
          
          //On ne stocke pas le password en CLAIR dans la bdd.
          // il faut, lors de son insertion en bdd, le hasher.
          // pour ça, il faut utiliser : https://www.php.net/manual/fr/function.password-hash.php
          
          
          //par conséquent, il faut ensuite utiliser la fonction password_verify  pour vérifier qu'il est conforme
          // https://www.php.net/manual/fr/function.password-verify.php
          
          $password_bdd = $result[0]['pass']; // mot de passe du user dans la bdd
          
          if(password_verify($pass, $password_bdd)){
            // les mots de passe sont identiques
            // ...
            $_SESSION['USER'] = $result[0]; // on stocke le user en SESSION ..
            //... etc..
          }
          
        }
      }
      ?>
      
      <!doctype html>
      <html>
        <head>
          <meta charset="utf-8">
          <title>Connexion admin</title>
        </head>
      
        <body>
          <div style="background:repeat-y; width:2048; height:auto; margin-let:auto;margin-right:auto;margin-top:10px;">
      
            <div style="background:none; padding-top:32px">
              <div style="font-style:normal; font-family:Arial black; border-bottom:solid 1px #666666; color:black; height:200px;font-size:24px; margin-top:5px;text-align:center"><img src="../../Design/logo OARHx.png" width="189" height="180"></div>
              <form name="form1" method="POST" action="">
                <table width="381" align="center"> 
                  <tr>
                    <td width="181" height=32px align="center">
                      <span style="font-style:normal; font-family:Arial black; color:black; height:50px;font-size:24px; margin-top:20px;text-align:center">CONNEXION</span>
                    </td>
                  </tr>
                  <tr>
                    <td align="center">
                      <label for="email"></label>
                      <input name="email" type="text" id="email" placeholder="Email" value="" size="32px" style="font-family:arial; height:32px; font-size:16px">
                    </td>
                  </tr>
                  <tr>
                    <td style:border-bottom:solid 1px white></td>
                  </tr>
                  <tr>
                    <td></td>
                  </tr>
                  <tr>
                    <td align="center"><label for="Pass"></label>
                      <input name="Pass" type="password" id="Pass" placeholder="Mot de passe" size="32px" style="font-family:arial; height:32px; font-size:16px">
                    </td>
                  </tr>
                  <tr>
                    <td></td>
                  </tr>
                  <tr>
                    <td></td>
                  </tr>
                  <tr>
                    <td height="32px"></td>
                  </tr>
                </table>
                <table width="400px" align="center">
                  <tr>
                    <td align="center"><input src="../../Design/Bouton3.png" type="image"/></td>
                  </tr>
                  <tr>
                    <td></td>
                  </tr>
                  <tr>
                    <td></td>
                  </tr>
                </table>
              </form>
            </div>
          </div>
        </body>
      </html>