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 :

récupération de cookie dans une requête [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 123
    Points : 56
    Points
    56
    Par défaut récupération de cookie dans une requête
    Bonjour,

    j'ai un soucis quand à ma tentative de login automatique:

    Voilà, j'ai un formulaire de connexion classique, avec un bouton se souvenir de moi. Lorsque l'utilisateur se connecte, j'ai mis une vérification en place pour le mot de passe et login. si c'est le cas l'utilisateur à accès à mon site et un cookie est crée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setcookie('login', $_POST['logger'], time()+...); etc..
    Ainsi lorsqu'un utilisateur se déconnecte, je souhaiterai qu'il n'ait pas à retaper son login et mot de passe (car il a mis "se souvenir de moi" la derniere fois).

    J'ai donc créer une vérification dans mon index:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php if(isset($_COOKIE['login']) && isset($_COOKIE['pass1'])){ $login=$_COOKIE['login'];
    $password=mysql_query("SELECT password FROM logins WHERE login=".$login.";");
    }else{
    $login="";
    $password="";
    }
    ce code ne fonctionne pas pr la simple et bonne raison que je fais une requête avec comme condition que le login soit égal au cookie (qui ne se situe pas ds la base de donnée..)
    Donc la logique serai: si il y a un cookie je veux récupérer ces données
    Mais celle ci son cryptée par la fonction md5, je ne peux donc pas récupérer mon mot de passe? (pour que l'utilisateur n'ai pas à le saisir de nouveau.)

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonsoir,

    Vire le ";" dans la requête et mets $login dans des simples quotes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $password=mysql_query("SELECT password FROM logins WHERE login='".$login."' ");
    A+.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 123
    Points : 56
    Points
    56
    Par défaut
    "Bonsoir" andry.aime (il est 14h! )

    en fait je ne pense pas que ça soit un problème de synthaxe mais plutôt de logique que j'ai car voici l'erreur qu'il m'affiche dans mon index.php(page login)

    Warning mysql_query()[function.mysql-query]: Access denied for user 'SYSTEM'@'localhost'(using password: NO) in C:\... on line 4
    qui correspond donc à cette ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $password=mysql_query("SELECT password FROM logins WHERE login='.$login.'");
    En fait dans ma base de donnée mon mot de passe n'est pas crypté en md5 mais lorsque je créer le cookie(lorsque l'utilisateur se connecte), celui-ci est crypté en md5. donc je veux le récupérer dans ma base de donnée, mais comment choisir le bon mot de passe associé au login?

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    tu fais pas de mysql_connect avec c'est pour ca
    et t'as requete n'est pas bonne :

    si le pseudo est égale a : toto
    t'as requête va être
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT password FROM logins WHERE login='.toto.'
    les . sont de trop

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 123
    Points : 56
    Points
    56
    Par défaut
    Bonjour stealth35,

    J'ai suivis tes conseils, cependant maintenant j'ai une page blanche à la place de mon formulaire de connexion, je te laisse mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    		if(isset($_COOKIE['login']) && isset($_COOKIE['pass1'])){
    			$login=$_COOKIE['login'];
    			include("connexion.php");
    			$password=mysql_query("SELECT password FROM logins WHERE login='$login'");
    			exit();
    			mysql_close();
    		}else{
    			$login="";
    			$password="";
    		}
               ?>
    Je précise que j'ai inseré ce code tout en haut, avant tout code html (avant même le <!DOCTYPE html PUBLIC...) est ce correct?

  6. #6
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Re,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $result=mysql_query("SELECT password FROM logins WHERE login='$login'");
    while($row=mysql_fetch_array($result)){
      $password=$row["password"];
    }
    vire le exit(), ça va arrêter l'exécution du reste du script (enfin laisse le si c'est ton besoin ).

    A+.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 123
    Points : 56
    Points
    56
    Par défaut
    Re andry.aime,

    merci de te pencher sur mon problème, c'est cool de ta part

    Alors j'ai testé ta méthode (dont je ne comprend pas la totalité), à quoi correspond cette ligne d'ailleur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $password=$row["password"]
    tu créés la variable $password, dans laquel tu inserres la valeur $row, mais pourquoi tu y as ajouter $row["password"], car $row récupère déjà la requête $result non?

    Donc je disais, j'ai testé ta méthode et il me met ce message:
    Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\... on line 6
    Ligne qui correspond à la boucle While.

  8. #8
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    active le mysql.trace_mode au debut de ton code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ini_set('mysql.trace_mode', true);

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 123
    Points : 56
    Points
    56
    Par défaut
    C'est parfait tout fonctionne!
    Je vous remercie andry.aime et stealth35 pour votre aide si précieuse et appliquée à chaque fois

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

Discussions similaires

  1. Récupération de l'extension d'un fichier dans une requête
    Par stefsas dans le forum Développement
    Réponses: 3
    Dernier message: 08/07/2010, 15h36
  2. [MySQL] Récupération d'une valeur d'un formulaire pour la mettre dans une requête
    Par lala24 dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 30/04/2010, 18h42
  3. Récupération du resultat d'une requête dans une page JSP
    Par painouch21 dans le forum Struts 2
    Réponses: 7
    Dernier message: 06/05/2009, 18h12
  4. [MySQL] Création de variables dans une boucle et récupération de données avec une requête
    Par lavande4 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 15/09/2008, 12h10
  5. Récupération du nom de colonne dans une requête
    Par Devlop++ dans le forum Access
    Réponses: 4
    Dernier message: 27/07/2007, 17h48

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