IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

problème en mysql_num_rows()


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé
    Femme Profil pro
    Architecte de système d'information
    Inscrit en
    Février 2012
    Messages
    404
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2012
    Messages : 404
    Par défaut problème en mysql_num_rows()
    bonjour;

    j'ai essayé de faire ce petit pour vérifier la session d'un utilisateur s'il existe ou pas , mais lorsque j'ai exécute le code toujours il affiche le problème la :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning: mysql_num_rows() expects parameter 1 to be resource,
    le code est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
     
    <?php
    //la securité de  ' ' pour login on ajoute la fonction addslashes()
    // la sécurité de " " pour password on ajoute la fonction du crypatge shal()
    include('../db.php');
     
    if(isset($_POST["login"]) && isset($_POST["password"]) ){
     
        $log=addslashes($_POST["login"]);
        $pass=sha1($_POST["password"]);
     
    $i="SELECT * FROM comptes WHERE login='$log' AND password='$pass'";
    $req=mysql_query($i) or die("requete invalide");
    $p=mysql_fetch_array($req);
    /*var_dump($_POST);
    exit();*/
    if(mysql_num_rows($p)==1){
        echo "<b>authentification réussite</b>";
    }else{
        echo "<b> mauvaise authentification </b>"; 
     
    }
    }
     
    mysql_close();
    ?>
    j'en sais pas comment résoudre ce problème

    Merci de m'aider

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 505
    Par défaut
    Bien déjà las fonctions mysql n'existe plus, il faut utiliser mysqli (il y a un i en plus).
    Ensuite il te dit qu'il manque un paramètre, c'est le paramètre de la connexion, il faut l'ajouter.

  3. #3
    Membre éclairé
    Femme Profil pro
    Architecte de système d'information
    Inscrit en
    Février 2012
    Messages
    404
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2012
    Messages : 404
    Par défaut
    Citation Envoyé par MaitrePylos Voir le message
    Bien déjà las fonctions mysql n'existe plus, il faut utiliser mysqli (il y a un i en plus).
    Ensuite il te dit qu'il manque un paramètre, c'est le paramètre de la connexion, il faut l'ajouter.
    j'ai utilisé le mysqli donc voila le nouveau code mais il reste le méme probléme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <?php
    //la securité de  ' ' pour login on ajoute la fonction addslashes()
    // la sécurité de " " pour password on ajoute la fonction du crypatge shal()
    include('../db.php');
     
    if(isset($_POST["login"]) && isset($_POST["password"]) ){
     
        $log=addslashes($_POST["login"]);
        $pass=sha1($_POST["password"]);
     
    /*$i="SELECT * FROM comptes WHERE login='$log' AND password='$pass'";
    echo "<h3><b>".$i."</b></h3>";*/
    $result = mysqli_query($connection,"SELECT * FROM comptes WHERE login='$log' AND password='$pass'") or die("erreur au requete");
    $p=mysqli_fetch_array($result);
    $num_rows = mysqli_num_rows($connection,$p);
     
    }
    mysqli_close($connection);
    ?>

  4. #4
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2014
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2014
    Messages : 352
    Par défaut
    Procèdes ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $num_rows = mysqli_num_rows($result );
    Et à partir du moment où tu inclus la connexion dans ta page,je pense que ce n'est pas une bonne pratique de la spécifier à chaque fois que tu fais une requête.

  5. #5
    Membre éclairé
    Femme Profil pro
    Architecte de système d'information
    Inscrit en
    Février 2012
    Messages
    404
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2012
    Messages : 404
    Par défaut
    Citation Envoyé par Kasko Voir le message
    Procèdes ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $num_rows = mysqli_num_rows($result );
    Et à partir du moment où tu inclus la connexion dans ta page,je pense que ce n'est pas une bonne pratique de la spécifier à chaque fois que tu fais une requête.


    le probléme mysqli_num_rows() est résolu ,lorsque j'affiche le nombre des ligne de la requête elle est toujours a 0 (donc il affiche le message mauvaise authentification) même si le compte existe dans la base

    est-ce-que l'utilisation de la fonction sha1() au niveau de la password peut changer la password d'un utilisateur

    comment je peux résolu ce probléme merci

  6. #6
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2014
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2014
    Messages : 352
    Par défaut
    Bien sûr que oui.
    sha1 prend en charge un fichier allant jusqu'à 2 exposant 64 bits. Pour mieux crypter un fichier, sha1 utilise une méthode de calcul qui change régulièrement.
    Un fichier ou texte hashé en SHA1 pourrait donner ceci : 123c14ae195c369bcdfc3b7811175ee9fd15eeb7
    Pour plus de précision voir ce lien https://www.tbs-certificats.com/FAQ/fr/sha256.html

Discussions similaires

  1. [MySQL] problème avec mysql_num_rows
    Par roy-mustang dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 05/07/2011, 11h52
  2. [MySQL] Problème mysql_num_rows(): suite à la mise en ligne de mon site
    Par yohan75 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 03/06/2009, 19h00
  3. Problème avec mysql_num_rows
    Par Donald08 dans le forum Requêtes
    Réponses: 9
    Dernier message: 04/06/2008, 13h33
  4. [MySQL] problème avec mysql_result et mysql_num_rows
    Par car00x dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 04/01/2008, 13h09
  5. [MySQL] Problème mysql_num_rows(): ?
    Par hoangeric dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 22/10/2007, 10h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo