Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/02/2011, 18h18   #1
Invité de passage
 
Inscription : février 2007
Messages : 20
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 20
Points : 4
Points : 4
Par défaut problème de MD5

bonjour

voila je suis confronter à un soucis avec mon code qui suis
Code :
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
<?php
$mdp = md5($_POST['password']);
 
         if(isset($_POST['connexion']) && !empty($_POST['login']) && !empty($_POST['password']))
         {
             $link=mysql_connect("localhost","root","xxxxxxxxx")or die("Connexion impossible".mysql_error());
             mysql_select_db("lanbox")or die("Selection de la base impossible");
 
 
             $query = "SELECT * FROM admin WHERE username='". mysql_real_escape_string($_POST['login']) ."' AND password='". mysql_real_escape_string($mdp) ."' ;";
             $result = mysql_query($query) or die ('Erreur lors de la requête '.mysql_error());
             if(mysql_num_rows($result))
             {
                $donnees = mysql_fetch_array($result);
 
				$_SESSION['username'] = $donnees['username'];
				$_SESSION['password'] = $donnees['password'];
			 }
         }
 
		 if(isset($_SESSION['username']) && isset($_SESSION['password']))
		 {
		 	echo "<p> Bonjour ".$_SESSION['username']."</p>";
		 }
?>
si une personne pouvait m'éclairai sur la lecture du code md5
snooppy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2011, 18h40   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 465
Points : 8 465
et quel est le probleme ?

pour partager du code c'est la balise code pas citation.
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2011, 19h14   #3
Invité de passage
 
Inscription : février 2007
Messages : 20
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 20
Points : 4
Points : 4
Ben le problème ces que sa ne fonctionne pas , sinon je n'aurais pas postez.
snooppy est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 27/02/2011, 19h20   #4
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 465
Points : 8 465
Citation:
Envoyé par snooppy Voir le message
Ben le problème ces que sa ne fonctionne pas , sinon je n'aurais pas postez.
oui mais plus précisément...
un message d'erreur ?
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2011, 19h28   #5
Invité de passage
 
Inscription : février 2007
Messages : 20
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 20
Points : 4
Points : 4
aucun code erreur j'ai une page blanche
snooppy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2011, 19h29   #6
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 465
Points : 8 465
à chaque if associe un else avec un message d'erreur
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2011, 19h57   #7
Membre chevronné
 
Avatar de micetf
 
Homme Fred
Professeur des Ecoles
Inscription : mai 2009
Messages : 503
Détails du profil
Informations personnelles :
Nom : Homme Fred
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Professeur des Ecoles
Secteur : Enseignement

Informations forums :
Inscription : mai 2009
Messages : 503
Points : 701
Points : 701
Bonjour,

Je placerais un
juste après l'affectation de cette variable, histoire de voir à quoi ressemble la requête SQL.

Fred
micetf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2011, 20h02   #8
Membre Expert
 
Inscription : septembre 2010
Messages : 1 239
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 1 239
Points : 1 561
Points : 1 561
Dans un premier temps suis les conseils de stealth35.

Ensuite vérifies que get_magic_quotes gpc est désactivé sur ton serveur sinon aurait des problèmes avec des mots de passe contenant des guillemets simples, guillemets doubles, ou antislash.


EDIT : j'avais pas vu la réponse de micetf qui est aussi un bon conseil (notamment un ; dans la requête semble suspect)
__________________
- Réalisations
- Interface graphique : génération en javascript d'objets défilants, texte et/ou images, mode horizontal ou vertical.
ABCIWEB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2011, 20h11   #9
Candidat au titre de Membre du Club
 
Homme
Développeur informatique
Inscription : avril 2009
Messages : 9
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 24

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : avril 2009
Messages : 9
Points : 13
Points : 13
Envoyer un message via MSN à vaan3713
Bonsoir,
je crois que tu devrais changer cette ligne
Code :
if(mysql_num_rows($result))
par ça:
Code :
if(mysql_num_rows($result)>0)
vaan3713 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2011, 22h16   #10
Membre Expert
 
Inscription : septembre 2010
Messages : 1 239
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 1 239
Points : 1 561
Points : 1 561
Citation:
Envoyé par vaan3713 Voir le message
Bonsoir,
je crois que tu devrais changer cette ligne
Code :
if(mysql_num_rows($result))
par ça:
Code :
if(mysql_num_rows($result)>0)
Ce n'est pas l'origine du pb car pour toute valeur numérique supérieure à 0,
la condition va retourner vrai. Donc dans cet exemple les deux codes sont équivalents (même si le tiens est plus lisible)
__________________
- Réalisations
- Interface graphique : génération en javascript d'objets défilants, texte et/ou images, mode horizontal ou vertical.
ABCIWEB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2011, 22h40   #11
Candidat au titre de Membre du Club
 
Homme
Développeur informatique
Inscription : avril 2009
Messages : 9
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 24

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : avril 2009
Messages : 9
Points : 13
Points : 13
Envoyer un message via MSN à vaan3713
Citation:
Envoyé par ABCIWEB Voir le message
Ce n'est pas l'origine du pb car pour toute valeur numérique supérieure à 0,
la condition va retourner vrai. Donc dans cet exemple les deux codes sont équivalents (même si le tiens est plus lisible)
Hum... oui c'est vrai que si la condition retourne un nombre supérieur à 0 ça sera pris pour un TRUE (merci ^^)
au fait je pense qu'il a oublier de faire un au début
vaan3713 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2011, 23h35   #12
Membre Expert
 
Inscription : septembre 2010
Messages : 1 239
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 1 239
Points : 1 561
Points : 1 561
Citation:
Envoyé par vaan3713 Voir le message
au fait je pense qu'il a oublier de faire un au début
Vrai, mais ce n'est pas non plus l'origine du pb actuel, car si tu fais
Code :
1
2
$_SESSION['username'] = 'toto';
echo $_SESSION['username'];
tu auras bien 'toto' afficher même s'il n'y a pas "session_start" déclaré auparavant.

Donc dans la logique de son code, pour l'instant - et tant qu'il ne cherche pas à récupérer cette valeur dans d'autres pages - ça ne provoquera pas d'erreur.

Par contre il ne pourrait pas récupérer $_SESSION['username'] dans ses autres pages. Il faut déclarer session_start avant toute définition d'une variable de session, sinon php la considère comme une variable locale. Si ta remarque n'est pas utile pour la résolution de son problème actuel, elle est donc effectivement indispensable pour la suite
__________________
- Réalisations
- Interface graphique : génération en javascript d'objets défilants, texte et/ou images, mode horizontal ou vertical.
ABCIWEB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2011, 13h28   #13
Invité de passage
 
Inscription : février 2007
Messages : 20
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 20
Points : 4
Points : 4
Bonjour ,

de retour , je vous remercie par avance de certains conseil et autre au sujet de mon soucis voici la totalité du code que j'ai rajouter hier .

Avec l'utilisation du code pour lire le password en claire la page fonctionne nickel ! mais pas avec la solution que j'ai modifier ci dessus.

Code :
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
28
29
30
31
32
33
<?php session_start(); ?>
<?php
 
         if(isset($_POST['connexion']) && !empty($_POST['login']) && !empty($_POST['password']))
         {
             $link=mysql_connect("localhost","root","p5snS4KqKUHFFN67")or die("Connexion impossible".mysql_error());
             mysql_select_db("lanbox")or die("Selection de la base impossible");
 
 
             $query = "SELECT * FROM admin WHERE username='".mysql_real_escape_string($_POST['login'])."' AND password='".mysql_real_escape_string($_POST['password'])."' ;";
             $result = mysql_query($query) or die ('Erreur lors de la requête '.mysql_error());
             if(mysql_num_rows($result))
             {
                $donnees = mysql_fetch_array($result);
 
				$_SESSION['username'] = $donnees['username'];
				$_SESSION['password'] = $donnees['password'];
			 }
         }
 
		 if(isset($_SESSION['username']) && isset($_SESSION['password']))
		 {
		 	echo "<p> Bonjour ".$_SESSION['username']."</p>";
 
?>
<?php
		 }
         else
         {
            include("formulaire_connexion.html");
         }
 
?>
donc es ce du à ma page html ?
snooppy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2011, 13h46   #14
Membre chevronné
 
Avatar de micetf
 
Homme Fred
Professeur des Ecoles
Inscription : mai 2009
Messages : 503
Détails du profil
Informations personnelles :
Nom : Homme Fred
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Professeur des Ecoles
Secteur : Enseignement

Informations forums :
Inscription : mai 2009
Messages : 503
Points : 701
Points : 701
A priori, cela signifie que dans ta BD
ce ne sont pas les MD5 des mots de passe qui sont stockés,
mais les mots de passe en clair.

Dans ce cas,
une requête
qui cherche un enregistrement
dont le champ mot de passe est égal au md5 du mot de passe saisi
ne trouve rien, c'est normal.


Fred
micetf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2011, 13h59   #15
Invité de passage
 
Inscription : février 2007
Messages : 20
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 20
Points : 4
Points : 4
non , le passe est bien crypter : 7c4a8d09ca3762af61e59520943dc26494f8941b

cependant j'ai testez des convertisseur sur internet mais sa ne correspond pas au passe qui est classique : 123456

donc comment voir en quoi il est crypter ?
snooppy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2011, 14h16   #16
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 465
Points : 8 465
Citation:
Envoyé par snooppy Voir le message
non , le passe est bien crypter : 7c4a8d09ca3762af61e59520943dc26494f8941b

cependant j'ai testez des convertisseur sur internet mais sa ne correspond pas au passe qui est classique : 123456

donc comment voir en quoi il est crypter ?
c'est du sha1
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 28/02/2011, 14h26   #17
Invité de passage
 
Inscription : février 2007
Messages : 20
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 20
Points : 4
Points : 4
Ah ok merci pour l'info , connais pas.
snooppy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2011, 15h49   #18
Membre Expert
 
Inscription : septembre 2010
Messages : 1 239
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 1 239
Points : 1 561
Points : 1 561
Donc ta requête sera

Code :
 $query = "SELECT * FROM admin WHERE username='".mysql_real_escape_string($_POST['login'])."' AND password='".mysql_real_escape_string(sha1($_POST['password']))."'";
la doc c'est ici

Le sha1 est plus performant que le md5 et doit normalement être privilégié par rapport au md5 qu'on ne devrait plus employé maintenant dans les nouveaux projets.

Pour info mysql_real_escape_string ne sert à rien sur du sha1 car il n'y aura aucun caractère à échappé. Cela dit, ça ne gène pas et comme c'est une bonne habitude à prendre que d'utiliser systématiquement mysql_real_escape_string...
__________________
- Réalisations
- Interface graphique : génération en javascript d'objets défilants, texte et/ou images, mode horizontal ou vertical.
ABCIWEB est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 28/02/2011, 16h09   #19
Invité de passage
 
Inscription : février 2007
Messages : 20
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 20
Points : 4
Points : 4
Merci à vous 2 , sa à fonctionner enfin ...... effectivement avec la bonne ligne de commande sa fonctionne mieux ces placer en résolu merci ABCIWEB pour le code
snooppy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2011, 16h33   #20
Invité de passage
 
Inscription : février 2007
Messages : 20
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 20
Points : 4
Points : 4
Ok merci pour les info , je vais m'y mettre pour la suite .
snooppy est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h22.


 
 
 
 
Partenaires

Hébergement Web