Warning: mysqli_num_rows() expects parameter 1 to be mysqli_resu

Fermé
jakbauer222 Messages postés 15 Date d'inscription lundi 30 mars 2009 Statut Membre Dernière intervention 13 mars 2017 - Modifié par NHenry le 14/05/2016 à 14:48
NHenry Messages postés 15114 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 4 mai 2024 - 14 mai 2016 à 16:30
<?php
session_start(); // à mettre tout en haut du fichier .php, cette fonction propre à PHP servira à maintenir la $_SESSION
if(isset($_POST['enregistrer'])) { // si le bouton "Enregistrer" est appuyé
    // on vérifie que le champ "Pseudo" n'est pas vide
    // empty vérifie à la fois si le champ est vide et si le champ existe belle et bien (is set)
    if(empty($_POST['login'])) {
        echo "Le champ login ou Mot de passe est vide!";
    } else {
        // on vérifie maintenant si le champ "Mot de passe" n'est pas vide"
        if(empty($_POST['motdepasse'])) {
            echo "Le champ Mot de passe est vide!";
        } else {
            // les champs sont bien posté et pas vide, on sécurise les données entrées par le membre:
            $login = htmlentities($_POST['login'], ENT_QUOTES, "ISO-8859-1"); // le htmlentities() passera les guillemets en entités HTML, ce qui empêchera les injections SQL
            $motdepasse = htmlentities($_POST['motdepasse'], ENT_QUOTES, "ISO-8859-1");
            //on se connecte à la base de données:
            $mysqli = mysqli_connect("localhost", "root", "", "agence_transport");
            //on vérifie que la connexion s'effectue correctement:
            if(!$mysqli){
                echo "Erreur de connexion a la base de donnees!";
            } else {
                // on fait maintenant la requête dans la base de données pour rechercher si ces données existe et correspondent:
                $Requete = mysqli_query($mysqli,"SELECT * FROM identification WHERE login= '".$login."' AND motdepasse= '".$motdepasse."'");
                // si il y a un résultat, mysqli_num_rows() nous donnera alors 1
                // si mysqli_num_rows() retourne 0 c'est qu'il a trouvé aucun résultat
               
     if (mysqli_num_rows($Requete) == 0) {
      
     
       echo "Le login ou le mot de passe est incorrect!";
       
       $_SESSION['pseudo'] = $login; // la session peut être appelée différemment et son contenu aussi peut être autre chose que le pseudo
                    echo "Bienvenue!";
    
       
       
      }
            }
        }
    }
}
?>


EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.

2 réponses

Monsieur =]
14 mai 2016 à 02:53
Salut,
ceci est du code PHP à insérer dans une page HTML.
0
jakbauer222 Messages postés 15 Date d'inscription lundi 30 mars 2009 Statut Membre Dernière intervention 13 mars 2017
14 mai 2016 à 03:36
Je sais mais y'as une erreur dans le code !
0
NHenry Messages postés 15114 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 4 mai 2024 331
14 mai 2016 à 14:52
Tu as tout le temps (avec n'importe quelle entrée) cette erreur ou pas ?
As-tu essayé de voir le contenu de ta requête (réelle, avec un echo dans ton code) et de l'essayer sur PHPMyAdmin ?

Si ton but est juste de savoir si il y a une ligne ou plus, un simple
if($RowData=$Requete->fetch_assoc())
suffit.

Fait attention aux injections SQL, un ' au milieu d'un des textes peut détourner ta requête.

Pense aussi à hasher (SHA512 par exemple, évite le MD5, il n’est plus reconnu comme assez fiable) les mots de passe, avoir des mdp en clair, c'est très déconseillé.
0
jakbauer222 Messages postés 15 Date d'inscription lundi 30 mars 2009 Statut Membre Dernière intervention 13 mars 2017
14 mai 2016 à 16:13
Saluut j'ai editer mon code et il parais que l'erreur venais du fait que le nom de motdepasse n'etais pas le mm au niveau de ma base de donnes mais ca m'affiche rien :/

Quand je met dans le formulaire mon login et mot de passe et et j'appuie sur le bouton il m'affiche pas d'erreurs mais ca ne m'affiche pas de message de bienvenue svp de l;aide
0
NHenry Messages postés 15114 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 4 mai 2024 331
14 mai 2016 à 16:30
Regarde le contenu du fichier error.log
Sinon, vérifies le nombre de ( ) [ ] { } et l'oubli éventuel de ;
Contrôles aussi ta requête.
0