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

      0
      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 ...
        0
    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 /-
      0
      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
        0
      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>
        
        
        0
    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>
      0
      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 ???
        0
    4. La ligne 27 c'est celle-ci :

      $datas = [':email' => $email];
      0
      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....
        0
    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>
      0