> Tous les forumsForum des Webmasters

 Ouvrir une session avec un mot de passe cryptéSujet résolu
Statut du sujet : RESOLU Imprimer
 nico3009
  Posté le 09/10/2007 @ 12:43  
 Petit astucien

114 Messages

Bonjour,

j'ai un formulaire d'ouverture de session qui renvoie à un fichier verifLogin.php

Mon problème est que chaque fois que je veux me connecter, j'ai le message "pseudo ou mot de passe incorrect".

Les mots de passe dans ma base sql sont cryptés en md5 et je pense que le problème vient de là.

Que dois-je rajouter dans mon script svp?

<?php

$hostname = "sql.free.fr";
$user = "";
$password = "";
$nom_base_donnees = "";

$result = mysql_connect($hostname, $user, $password);
if(!$result) die("Connexion à la base de données impossible");
$result = mysql_select_db($nom_base_donnees);
if(!$result) die("Echec de la sélection de la base");

if (isset($_POST) && (!empty($_POST['pseudo'])) && (!empty($_POST['mdp'])) )
extract($_POST);
{
$query_result = mysql_query("SELECT nom, prenom, pseudo, email, mdp FROM utilisateurs WHERE pseudo LIKE '$pseudo' and mdp LIKE '$mdp'");

if(!$query_result) die("Echec de la requête SQL");

$result = mysql_fetch_row($query_result);

if(!$result) die("Pseudo ou mot de passe incorrect");

session_start();

session_register("pseudo");
session_register("nom");
session_register("prenom");
session_register("email");

$pseudo = $result[ 0 ];
$nom = $result[ 1 ];
$prenom = $result[ 2 ];
$email = $result[ 3 ];

header("Location: ******");
}
?>

 Afficher le profil de nico3009Envoyer un message privé à nico3009
 
 
Publicité
 no-log  Posté le 09/10/2007 à 14:38  
Petit astucien


303 Messages

le mot de passe que l'utilisateur rentre est crypté, donc pour avoir le bon va dans ta table des login mot de passe releve le bon mot de passe et identifies toi avec!

Afficher le profil de no-logEnvoyer un message privé à no-log
 Revenir en haut de la page
 nico3009  Posté le 09/10/2007 à 15:15  
Petit astucien

114 Messages

Je ne sais pas en fait si j'ai compris la réponse ou si on ne parle pas de la même chose

Ce que je veux dire en fait, c'est qu'un utilisateur inscrit ne peut pas s'identifier. Lors de son inscription, il renseigne un mot de passe et celui-ci arrive crypté dans ma table.

Le problème qui se pose est que le mot de passe de l'utilisateur quand il ouvre une session et celui enregistré dans la table est différent vu qu'il est crypté.

Afficher le profil de nico3009Envoyer un message privé à nico3009
 Revenir en haut de la page
 cekica  Posté le 09/10/2007 à 16:43  
Petit astucien

492 Messages

Heu... tu a cette requete :

$query_result = mysql_query("SELECT nom, prenom, pseudo, email, mdp FROM utilisateurs WHERE pseudo LIKE '$pseudo' and mdp LIKE '$mdp'");

pourquoi mettre des likes ? moi je l'aurais faite ainsi :

$query_result = mysql_query("SELECT * FROM nom,prenom,pseudo,mail,mdp FROM utilisateurs WHERE pseudo = $pseudo && mdp=$mdp");

En ce qui concerne le cryptage :

Tu peut gatder ton cryptage en md5 , mais alors il faut que tu rajoute dans ta requete :

md5($mdp);

ce ui donne :

$query_result = mysql_query("SELECT nom, prenom, pseudo, email, mdp FROM utilisateurs WHERE pseudo LIKE '$pseudo' and mdp LIKE 'md5($mdp)'");

C'est aussi con que ca



Modifié par cekica le 09/10/2007 16:44
Afficher le profil de cekicaEnvoyer un message privé à cekica
  Revenir en haut de la page
 nico3009  Posté le 09/10/2007 à 17:03  
Petit astucien

114 Messages

J'ai changé la ligne :

$query_result = mysql_query("SELECT nom, prenom, pseudo, email, mdp FROM utilisateurs WHERE pseudo LIKE '$pseudo' and mdp LIKE '$mdp'");

par :

$query_result = mysql_query("SELECT nom, prenom, pseudo, email, mdp FROM utilisateurs WHERE pseudo = $pseudo && mdp=md5($mdp)");

Mais maintenant j'ai la réponse :"Echec de la requête SQL"

Où ca peut coincer?

Afficher le profil de nico3009Envoyer un message privé à nico3009
 Revenir en haut de la page
 cekica  Posté le 09/10/2007 à 18:12  
Petit astucien

492 Messages
nico3009 a écrit :

J'ai changé la ligne :

$query_result = mysql_query("SELECT nom, prenom, pseudo, email, mdp FROM utilisateurs WHERE pseudo LIKE '$pseudo' and mdp LIKE '$mdp'");

par :

$query_result = mysql_query("SELECT nom, prenom, pseudo, email, mdp FROM utilisateurs WHERE pseudo = $pseudo && mdp=md5($mdp)");

Mais maintenant j'ai la réponse :"Echec de la requête SQL"

Où ca peut coincer?


erreur au niveau de la structure , il faut mettre des guillemets simlpe et double :

$query_result = mysql_query("SELECT nom, prenom, pseudo, email, mdp FROM utilisateurs WHERE pseudo = '".$pseudo."' && mdp='".md5($mdp)."'");

j'ai juste ajouté des giullmets

Afficher le profil de cekicaEnvoyer un message privé à cekica
  Revenir en haut de la page
 nico3009  Posté le 09/10/2007 à 21:52  
Petit astucien

114 Messages

Yeeeeeessssss!!!!!

Après une bone semaine de glaère, cekica a réussi à me débloquer!!! Merci beaucoup

Afficher le profil de nico3009Envoyer un message privé à nico3009
 Revenir en haut de la page
Haut de la page 
Inscrivez-vous !
- Posez vos questions

- Résolvez vos problèmes

- Aidez les autres

- Participez et créez vos discussions

- Dialoguez en privé avec d'autres membres

- Suivez vos sujets préférés

- Affichez les signatures des membres

TOUT EST GRATUIT !

Je crée mon compte



Vous avez besoin d'aide ?
Des centaines d'experts sont à votre disposition sur les forums PC Astuces pour vous aider gratuitement, 24h/24, 7j/7.

Les derniers sujets résolus !
 

 > Tous les forumsForum des Webmasters

 
Forum PC Astuces© 1997-2008 WebastucesAller en haut de la page