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

Signaler
Messages postés
17
Date d'inscription
lundi 30 décembre 2019
Statut
Membre
Dernière intervention
10 janvier 2020
-
jordane45
Messages postés
27333
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 janvier 2020
-
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

Messages postés
60810
Date d'inscription
mardi 8 janvier 2008
Statut
Modérateur
Dernière intervention
24 janvier 2020
5 196
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 
}
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
jordane45
Messages postés
27333
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 janvier 2020
2 034 > 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
ScreamFR
Messages postés
17
Date d'inscription
lundi 30 décembre 2019
Statut
Membre
Dernière intervention
10 janvier 2020
3 > jordane45
Messages postés
27333
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 janvier 2020

Je suis vraiment désole je suis pas doué , je ne c'est pas si c'est ca ? mais une nouvelle erreur est survenu.

jordane45
Messages postés
27333
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 janvier 2020
2 034 > ScreamFR
Messages postés
17
Date d'inscription
lundi 30 décembre 2019
Statut
Membre
Dernière intervention
10 janvier 2020

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
Messages postés
27333
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 janvier 2020
2 034
Tu as oublié d'indiquer la variable $bdd...
$result->execute();


Cordialement,
Jordane
Messages postés
17
Date d'inscription
lundi 30 décembre 2019
Statut
Membre
Dernière intervention
10 janvier 2020
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>

Messages postés
27333
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 janvier 2020
2 034
Déjà,
Je t'invite à lire ceci : https://www.commentcamarche.net/faq/48399-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 !";
    }
}


?>
 



Cordialement,
Jordane
Messages postés
17
Date d'inscription
lundi 30 décembre 2019
Statut
Membre
Dernière intervention
10 janvier 2020
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
jordane45
Messages postés
27333
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 janvier 2020
2 034
j'ai édité mon code
il a une erreur de copier/coller...
il faut avoir
$result = mysqli_query($bdd,$sql);
Messages postés
17
Date d'inscription
lundi 30 décembre 2019
Statut
Membre
Dernière intervention
10 janvier 2020
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 ?
jordane45
Messages postés
27333
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 janvier 2020
2 034 > ScreamFR
Messages postés
17
Date d'inscription
lundi 30 décembre 2019
Statut
Membre
Dernière intervention
10 janvier 2020

Ok
Donc remplace le fetch par un mysqli_fetch_assoc
ScreamFR
Messages postés
17
Date d'inscription
lundi 30 décembre 2019
Statut
Membre
Dernière intervention
10 janvier 2020
3 > jordane45
Messages postés
27333
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 janvier 2020

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 !";
    }
}


?>

jordane45
Messages postés
27333
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 janvier 2020
2 034 > ScreamFR
Messages postés
17
Date d'inscription
lundi 30 décembre 2019
Statut
Membre
Dernière intervention
10 janvier 2020

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;
ScreamFR
Messages postés
17
Date d'inscription
lundi 30 décembre 2019
Statut
Membre
Dernière intervention
10 janvier 2020
3 > jordane45
Messages postés
27333
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 janvier 2020

Je te soûle surement mais maintenant le bon cote c'est que plus aucun erreur surgit , mais quand je mes les bon identifiants ça charge juste la page mais ca ne me ramène pas a la page membre ?
je ne sais pas pourquoi cette fois ci puisque que rien ce ce passe mis a part que la page s'actualise.
ScreamFR
Messages postés
17
Date d'inscription
lundi 30 décembre 2019
Statut
Membre
Dernière intervention
10 janvier 2020
3 > jordane45
Messages postés
27333
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 janvier 2020

Je vien de le faire la bonne chose c'est que il n'y a plus d'erreur qui d'affiche mais la mauvaise c'est que ca ne fait rien quand je mes les bon identifiants , la page s'actualise tous simplement mais qd je mais nimporte quoi le message d'erreur s'affiche "identifiants incorrect"
Messages postés
17
Date d'inscription
lundi 30 décembre 2019
Statut
Membre
Dernière intervention
10 janvier 2020
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
jordane45
Messages postés
27333
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 janvier 2020
2 034
Fais un print_r de ta variable $data
Messages postés
17
Date d'inscription
lundi 30 décembre 2019
Statut
Membre
Dernière intervention
10 janvier 2020
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 !";
    }
}


?>

jordane45
Messages postés
27333
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 janvier 2020
2 034
Faut retirer le print_r. Sinon ton instruction header ne marchera pas
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.
ScreamFR
Messages postés
17
Date d'inscription
lundi 30 décembre 2019
Statut
Membre
Dernière intervention
10 janvier 2020
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