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 :

requête SQL. [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2012
    Messages : 9
    Par défaut requête SQL.
    Bonjour à tous,

    J'ai un problème de requête SQL.

    Le code en lui-même est très simple à comprendre ...

    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
    <?php
    $sql = 'SELECT COUNT(*) FROM users WHERE username="'.$_POST['username'].'" AND password="'.md5($_POST['password']).'"';
    $req = mysql_query($sql);
     
    switch($req){
    	case 0:
    		$exception = '<span class="error">'.'Wrong login/password'.'</span><br /><br />';
    		return $exception;
    	break;
    	case 1:
    		$exception = '<span class="success">'.'Successful log in!'.'</span><br /><br />';
    		return $exception;
    	break;
    	default:
    		$exception = '<span class="error">'.'Database error'.'</span><br /><br />';
    		return $exception;
    	break;
    }
    Ma table users :



    Lors de l'essai sur la page, je rentre les bons identifiants, mais je tombe sur "Wrong login/password". Je fais un echo de $req + $_POST['username'] + $_POST['password'] + md5($_POST['password']), je tombe sur les bonnes données.

    J'essaye de le faire sur ma BDD même en requête (en remplaçant les variables par les données) et ça m'envoie bien 1...

    Pour compléter le tout : j'ai fait le même type requête quelques dizaines de lignes plus haut et elle fonctionne ...

    Que faire ?

    Merci d'avance,
    Dev-Funky.

    [AJOUT]
    Je vous propose de tester ici, pseudo : demo1234, mot de passe : 123456 . J'ai mis de quoi afficher toutes les variables nécessaires (username, password, md5 password). Mais ça ne fonctionne pas malgré les bonnes variables ...
    [/AJOUT]

  2. #2
    Membre extrêmement actif Avatar de ledisciple
    Homme Profil pro
    observateur de nuage niveau 2.3
    Inscrit en
    Août 2008
    Messages
    860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : observateur de nuage niveau 2.3

    Informations forums :
    Inscription : Août 2008
    Messages : 860
    Par défaut
    Citation Envoyé par Dev-Funky Voir le message
    Lors de l'essai sur la page, je rentre les bons identifiants, mais je tombe sur "Wrong login/password". Je fais un echo de $req + $_POST['username'] + $_POST['password'] + md5($_POST['password']), je tombe sur les bonnes données.
    Que te donne le echo de $req?


    Citation Envoyé par Dev-Funky Voir le message
    Pour compléter le tout : j'ai fait le même type requête quelques dizaines de lignes plus haut et elle fonctionne ...
    Même type? Si c'est la même j'espère que tu ne réécris pas deux fois la même requête!

    ps : essaye les requêtes préparées ..

  3. #3
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2012
    Messages : 9
    Par défaut
    Non, ce n'est pas exactement la même requête. Mais le même type (soit, aussi un SELECT COUNT(*) )

    Pour ce qui est du $req, je fais un echo de lui mais il est VIDE... Bizarre.

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Pour tester, tu peux afficher la requête complète et tenter de l'exécuter dans un logiciel indépendant (genre phpMyAdmin) et faire un var_dump de $req (pour avoir avoir plus de détails qu'un simple echo)
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  5. #5
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2012
    Messages : 9
    Par défaut
    Bonjour,

    Merci pour cette réponse.

    J'ai essayé sur PHPMyAdmin en remplaçant les variables par les données correctes et ça fonctionne.

    Sur le site même, toujours le même échec.

    Le var_dump ne change rien non plus, il est vide (comme l'echo)!

    Voici le code avec le var_dump :
    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
    $sql = 'SELECT COUNT(*) FROM users WHERE username="'.$_POST['username'].'" AND password="'.md5($_POST['password']).'"';
    $req = mysql_query($sql);
     
    switch($req){
    	case 0:
    		$exception = '<span class="error">'.'Wrong login/password'.'-->'.var_dump($req).'<--'.'</span><br /><br />';
    		return $exception;
    	break;
    	case 1:
    		$exception = '<span class="success">'.'Successful log in!'.'</span><br /><br />';
    		return $exception;
    	break;
    	default:
    		$exception = '<span class="error">'.'Database error'.'</span><br /><br />';
    		return $exception;
    	break;
    }
    J'ai vérifié les identifiants à la base de données (au cas ou ...) mais ça ne provient pas de là non plus.

    Que faire ? Je suis perdu ...

    Merci,
    Dev-Funky.

  6. #6
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Salut,

    la manière de récupérer le résultat de ta requête est incorrecte :
    tu dois ajouter ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $req = mysql_query($sql); // ici $req est une ressource et pas le résultat du count() de ton select
    $nb  = mysql_result($req, 0);
     
    switch ($nb) { ... }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Requête SQL
    Par Leludo dans le forum Langage SQL
    Réponses: 3
    Dernier message: 12/07/2024, 15h41
  2. [ DB2 ] [ AS400] requête sql
    Par zinaif dans le forum DB2
    Réponses: 6
    Dernier message: 23/08/2008, 19h42
  3. Utilisation de MAX dans une requête SQL
    Par Evil onE dans le forum Langage SQL
    Réponses: 7
    Dernier message: 15/06/2004, 18h38
  4. A propos d'une requête SQL sur plusieurs tables...
    Par ylebihan dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/09/2003, 16h26
  5. PB requète SQL avec Interbase
    Par missllyss dans le forum InterBase
    Réponses: 2
    Dernier message: 15/07/2003, 11h37

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