Je n'arrive pas a faire ma page de connexion en php

Résolu
ScreamFR Messages postés 73 Statut Membre -  
jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour , voila je vous explique , je souhaite faire une page de connexion pour un projet en , le petit problème c'est que quand j'ai crée mon programme en local sur le serveur WAMP ça marche , par contre quand j'ai essayer de le mettre sur 000webhost ( un hébergeur] ça ne marcher plus et m'afficher le problème
suivant :

Fatal error: Uncaught Error: Call to undefined function execute() in /storage/ssd3/413/12032413/public_html/darkweb/DarkAccueil/darkwebHHHHH.php:13 Stack trace: #0 {main} thrown in /storage/ssd3/413/12032413/public_html/darkweb/DarkAccueil/darkwebHHHHH.php on line 13

ne faite pas attention au nom du fichier c'est pour un projet !

10 réponses

  1. hypo
     
    Bonjour,

    Le code d'erreur te dis que la fonction execute() a la ligne 13 de darkwebHHHHH.php n'est pas définie. Tu n'as pas oublié d'inclure un fichier php dans lequel cette fonction apparait ? Sinon il te faudra la redéfinir.

    function execute () {
    //le code qu'elle est sensé exécuter 
    }
    
    1
    1. ScreamFR
       
      Re bonjour , desole mais je suis debutant , si j'ai bien compris je dois redefinir la fuction execute ,mais sur la mme ligne ? Tu pourrai si ca te derange pas de m'ecrire comment tu ferai avec mes valeur merci d'avance
      0
      1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831 > ScreamFR
         
        Regarde plutôt ma réponse...
        hypo n'a pas bien vu de quoi il s'agissait....
        Là tu essaies de faire appel à la méthode execute de ta connexion à la bdd.
        https://www.php.net/manual/fr/mysqli-stmt.execute.php
        0
      2. ScreamFR Messages postés 73 Statut Membre 3 > jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention  
         
        Je suis vraiment désole je suis pas doué , je ne c'est pas si c'est ca ? mais une nouvelle erreur est survenu.

        0
      3. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831 > ScreamFR Messages postés 73 Statut Membre
         
        Déjà... merci de poster ton code correctement sur le forum !
        pour ça il suffit d'utiliser les balises de code ( explications disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code )
        Cela nous permet de faire des copier/coller en cas de besoin....

        A savoir que la méthode rowCount n'existe pas en mysqli ...
        Pour compter le nombre de lignes retournées par une requête en mysqli il faut utiliser https://www.php.net/manual/fr/mysqli-result.num-rows.php

        J'ai l'impression que tu essaies de mélanger du code PDO et du MYSQLI .....

        Idem pour la méthode fetchAll qui existe en pdo ... mais en mysqli c'est fetch_all
        https://www.php.net/manual/fr/mysqli-result.fetch-all.php
        0
  2. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
     
    Tu as oublié d'indiquer la variable $bdd...
    $result->execute();
    


    1
  3. ScreamFR Messages postés 73 Statut Membre 3
     
    je suis totalement perdu , pourrai vous m’écrire le code que vous aurez fait s'il vous plais !
    ça fait 3 jours de je cherche
    
    <?php
    session_start();
    
    if (isset($_POST['BtConnect'])){
        
        $UsernameConnect = $_POST['UsernameConnect'];
        $PasswordConnect = $_POST['PasswordConnect'];
        
        $bdd = mysqli_connect("localhost","id12032413_screamfr","bdd_orlando","id12032413_orlando_bdd");
        
        $sql = "SELECT * FROM users WHERE username = '$UsernameConnect' ";
        $sql->execute();
        $sql->store_result();
    
        $rows = $sql->num_rows;
        
        if ($row){
            
            $data = $sql->mysqli_stmt_fetch ();
            if(password_verify($PasswordConnect, $data[0]['password'])){
                
                $_SESSION['username'] = $UsernameConnect;
                header('Location: ../Hub/Hub.php');
                
            }
        }
        else{
            echo "Identifiant incorrect !";
        }
    }
    
    
    ?>
     
    <html>
      
      <head>
        <meta charset="utf-8">
        <title>DarkWed</title>
        <link rel="stylesheet" href="css/style.css">
        <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.11.2/css/all.css">
      </head>
      
      <body>
          <img class="background" src="img/imgback5.jpg">
          <img class="logo" src="img/logo.png">
          <section>
          <div class="Interface">
              <p class="Title">DarkWeb</p>
              </div>
              <div class="MidInterface">
                  <form method="POST" action="">
                  <input name="UsernameConnect" class="TxtUsername" placeholder="Identifiants" type="text" required>
                  <span class="incompletU">Champs incomplet</span>
                  <input name="PasswordConnect" class="TxtPassword" placeholder="clé d'activation" type="password" required>
                  <span class="incompletP">Champs incomplet</span>
                  <div class="BtV">
                  <input class="Bt" type="submit" value="Connexion" name="BtConnect">
                  </div>
                  </form>
              </div>
          </section>
      </body>
    
    </html>
    
    
    1
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
     
    Déjà,
    Je t'invite à lire ceci : https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
    
    <?php
    session_start();
    
    //Affichage des erreurs PHP
    error_reporting(E_ALL);
    ini_set('display_errors', TRUE);
    ini_set('display_startup_errors', TRUE);
    
    //connexion à la bdd
    $bdd = mysqli_connect("localhost","id12032413_screamfr","bdd_orlando","id12032413_orlando_bdd");
    
    if (mysqli_connect_errno()) {
      echo "Souci de connexion à la bdd : " . mysqli_connect_error();
      exit();
    }
    
    if (isset($_POST['BtConnect'])){
        
        $UsernameConnect = !empty($_POST['UsernameConnect']) ? $_POST['UsernameConnect']: NULL;
        $PasswordConnect = !empty($_POST['PasswordConnect']) ? $_POST['PasswordConnect']: NULL;
        $sql = "SELECT * FROM users WHERE username = '$UsernameConnect' ";
        $result = mysqli_query($bdd,$sql);
    
        $rows=mysqli_num_rows($result);
            
        if ($rows==1){
            $data = mysqli_fetch_row($result);
            
            /* Fermeture de la connexion à la bdd */
            mysqli_close($bdd);
            
            if(password_verify($PasswordConnect, $data['password'])){
                $_SESSION['username'] = $UsernameConnect;
                
                //header('Location: ../Hub/Hub.php');  //le temps de faire tes tests pour voir les éventuelles erreurs on laisse cette ligne en commentaire.
                exit; //toujours mettre un exit après une redirection.
            }
        } else{
            echo "Identifiant incorrect !";
        }
    }
    
    
    ?>
     


    1
  6. ScreamFR Messages postés 73 Statut Membre 3
     
    Je vien de tester ton code mais ca ne marche toujours pas.
    Il y a 2 erreurs qui s'affiche :

    - Warning: mysqli_query() expects at least 2 parameters, 1 given in /storage/ssd3/413/12032413/public_html/darkweb/DarkAccueil/darkwebHHHHH.php on line 22

    et

    - Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, null given in /storage/ssd3/413/12032413/public_html/darkweb/DarkAccueil/darkwebHHHHH.php on line 24
    1
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
       
      j'ai édité mon code
      il a une erreur de copier/coller...
      il faut avoir
      $result = mysqli_query($bdd,$sql);
      
      0
  7. ScreamFR Messages postés 73 Statut Membre 3
     
    Je les fait ca ma afficher les mot de passe et les identifiants que j'ai entre dans ma base de donne , je peut savoir pourquoi vous m'avez demander de faire ca ?
    1
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
       
      Pour voir le format des données qui s'y trouvent.
      Et dans l'idéal...pour que tu nous montres ce que ça donne....
      0
    2. ScreamFR Messages postés 73 Statut Membre 3 > jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention  
       
      ah ok , mais ça ne règles pas le problème , et si tu veut savoir ca ma afficher ceci :

      Array ( [0] => 1 [1] => TEST [2] => 1234 )


      Certes le message d'erreur disparaît mais ca ne m’amène toujours pas dans la page espace membre ( et oui j'ai pense à enlever les 2 // devant header(location ...);

      username = TEST
      password = 1234
      0
    3. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831 > ScreamFR Messages postés 73 Statut Membre
       
      Ok
      Donc remplace le fetch par un mysqli_fetch_assoc
      0
    4. ScreamFR Messages postés 73 Statut Membre 3 > jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention  
       
      ca n'a rien changer mis a par que maintenant ca un truc qui c ajouter par rapport a la bdd le id et qql element en plus

      Array ( [id] => 1 [username] => TEST [password] => 1234 )


      si tu veut avoir tout sous les yeux tien le code complet

      
      <?php
      session_start();
      
      //Affichage des erreurs PHP
      error_reporting(E_ALL);
      ini_set('display_errors', TRUE);
      ini_set('display_startup_errors', TRUE);
      
      //connexion à la bdd
      $bdd = mysqli_connect("localhost","id12032413_screamfr","bdd_orlando","id12032413_orlando_bdd");
      
      if (mysqli_connect_errno()) {
        echo "Souci de connexion à la bdd : " . mysqli_connect_error();
        exit();
      }
      
      if (isset($_POST['BtConnect'])){
          
          $UsernameConnect = !empty($_POST['UsernameConnect']) ? $_POST['UsernameConnect']: NULL;
          $PasswordConnect = !empty($_POST['PasswordConnect']) ? $_POST['PasswordConnect']: NULL;
          $sql = "SELECT * FROM users WHERE username = '$UsernameConnect' ";
          $result = mysqli_query($bdd,$sql);
      
          $rows=mysqli_num_rows($result);
              
          if ($rows==1){
              $data = mysqli_fetch_assoc($result);
         
              
              /* Fermeture de la connexion à la bdd */
              mysqli_close($bdd);
              
              if(password_verify($PasswordConnect, Print_r($data)['password'])){
                  $_SESSION['username'] = $UsernameConnect;
                  header('Location: ../Hub/Hub.php');  //le temps de faire tes tests pour voir les éventuelles erreurs on laisse cette ligne en commentaire.
                  exit; //toujours mettre un exit après une redirection.
              }
          } else{
              echo "Identifiant incorrect !";
          }
      }
      
      
      ?>
      
      
      0
    5. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831 > ScreamFR Messages postés 73 Statut Membre
       
      Oulaaa....
      Donc... remplaces
      /* Fermeture de la connexion à la bdd */
              mysqli_close($bdd);
              
              if(password_verify($PasswordConnect, Print_r($data)['password'])){
                  $_SESSION['username'] = $UsernameConnect;
      

      par
      /* Fermeture de la connexion à la bdd */
              mysqli_close($bdd);
              print_r($data); //ici..ça sert à debuguer... tu pourras le retirer ensuite
              if(password_verify($PasswordConnect, $data['password'])){ //  $data['password'] permet de lire la valeur du password de ta variable $data
                  $_SESSION['username'] = $UsernameConnect;
      
      0
  8. ScreamFR Messages postés 73 Statut Membre 3
     
    J'ai fait modifier l'erreur et un nouveau problème surgit encore une fois :')

    
    <?php
    session_start();
    
    //Affichage des erreurs PHP
    error_reporting(E_ALL);
    ini_set('display_errors', TRUE);
    ini_set('display_startup_errors', TRUE);
    
    //connexion à la bdd
    $bdd = mysqli_connect("localhost","id12032413_screamfr","bdd_orlando","id12032413_orlando_bdd");
    
    if (mysqli_connect_errno()) {
      echo "Souci de connexion à la bdd : " . mysqli_connect_error();
      exit();
    }
    
    if (isset($_POST['BtConnect'])){
        
        $UsernameConnect = !empty($_POST['UsernameConnect']) ? $_POST['UsernameConnect']: NULL;
        $PasswordConnect = !empty($_POST['PasswordConnect']) ? $_POST['PasswordConnect']: NULL;
        $sql = "SELECT * FROM users WHERE username = '$UsernameConnect' ";
        $result = mysqli_query($bdd,$sql);
    
        $rows=mysqli_num_rows($result);
            
        if ($rows==1){
            $data = mysqli_fetch_row($result);
            
            /* Fermeture de la connexion à la bdd */
            mysqli_close($bdd);
            
            if(password_verify($PasswordConnect, $data['password'])){
                $_SESSION['username'] = $UsernameConnect;
                
                //header('Location: ../Hub/Hub.php');  //le temps de faire tes tests pour voir les éventuelles erreurs on laisse cette ligne en commentaire.
                exit; //toujours mettre un exit après une redirection.
            }
        } else{
            echo "Identifiant incorrect !";
        }
    }
    
    
    ?>
    
    


    et le probleme est :

    - Notice: Undefined index: password in /storage/ssd3/413/12032413/public_html/darkweb/DarkAccueil/darkwebHHHHH.php on line 32
    0
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
       
      Fais un print_r de ta variable $data
      0
  9. ScreamFR Messages postés 73 Statut Membre 3
     
    Jordane45 , j'ai fait ce que vous m'avez dis de faire mais ça ne change rien le bon cote c'est que il n'y a plus de message d'erreur mais par contre la mauvaise nouvelle c'est que il ne se passe rien mis a par que quand j'appui sur le bouton la page s'actualise quand les identifiants sont bon et fait apparaître le message identifiants incorrect quand les identifiants ne correspond pas
    
    <?php
    session_start();
    
    //Affichage des erreurs PHP
    error_reporting(E_ALL);
    ini_set('display_errors', TRUE);
    ini_set('display_startup_errors', TRUE);
    
    //connexion à la bdd
    $bdd = mysqli_connect("localhost","id12032413_screamfr","bdd_orlando","id12032413_orlando_bdd");
    
    if (mysqli_connect_errno()) {
      echo "Souci de connexion à la bdd : " . mysqli_connect_error();
      exit();
    }
    
    if (isset($_POST['BtConnect'])){
        
        $UsernameConnect = !empty($_POST['UsernameConnect']) ? $_POST['UsernameConnect']: NULL;
        $PasswordConnect = !empty($_POST['PasswordConnect']) ? $_POST['PasswordConnect']: NULL;
        $sql = "SELECT * FROM users WHERE username = '$UsernameConnect' ";
        $result = mysqli_query($bdd,$sql);
    
        $rows=mysqli_num_rows($result);
            
        if ($rows==1){
            $data = mysqli_fetch_assoc($result);
       
            
            /* Fermeture de la connexion à la bdd */
            mysqli_close($bdd);
            print_r($data); //ici..ça sert à debuguer... tu pourras le retirer ensuite
            
            if(password_verify($PasswordConnect, $data['password'])){ //  $data['password'] permet de lire la valeur du password de ta variable $data
                $_SESSION['username'] = $UsernameConnect;
                header('Location: ../Hub/Hub.php');  //le temps de faire tes tests pour voir les éventuelles erreurs on laisse cette ligne en commentaire.
                exit; //toujours mettre un exit après une redirection.
            }
        } else{
            echo "Identifiant incorrect !";
        }
    }
    
    
    ?>
    
    
    0
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
       
      Faut retirer le print_r. Sinon ton instruction header ne marchera pas
      0
  10. Tonnot
     
    Salut

    euh vous avez vu qu'il essaie de se connecter au localhost?

    $bdd = mysqli_connect("localhost","id12032413_screamfr","bdd_orlando","id12032413_orlando_bdd");


    Avec WAMP on est en local donc il sait ou trouver localhost, par défaut les identifiants et mots de passe sont nuls.

    Pour se connecter à la base de donnée distante il faut utiliser les identifiants de connexion: adresse du serveur de BDD, identifiant BDD, mot de passe BDD.

    Simplement utilisez la doc si vous ne savez pas:

    https://www.php.net/manual/fr/function.mysqli-connect.php

    Pour la fonction execute je ne sais pas mais ça ne pourra pas marcher si il n'y a pas de connexion à la base.
    -1
    1. ScreamFR Messages postés 73 Statut Membre 3
       
      Si il y a une connexion regard le code ya un if au depart qui prouve la connexion a bdd ,je ne suis pas sur le serveur WAMP , le site et héberger
      0