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 28/04/2011, 17h47   #1
Invité de passage
 
Homme
Étudiant
Inscription : avril 2011
Messages : 2
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2011
Messages : 2
Points : 0
Points : 0
Par défaut Modifier mot de passe

Bonjour à tous,
Je commence tout juste le PHP et un petit site d'administration antenne pour une radio. J'ai déja codé la plus grosse partie, je veux maintenant coder la partie modification des informations membres et je suis face à un problème: modifier le mot de passe.
Le mot de passe que je veux modifier est crypté en MD5 dans une table sql.

Voici le code de ma page ou je demande les infos à l'user :
Code :
1
2
3
4
5
6
7
8
9
10
11
<form action="modifinfos.php" method="post">
<br>
Mot de passe actuel&nbsp; : <br>
<input type="password" name="passactuel" />
<br>Nouveau mot de passe :<br>
<input type="password" name="newpass" /> 
<!-- <br>Confirmer nouveau mot de passe :<br>
<input type="password" name="newpassverif" />
<br> -->
<br>
<input name="submit" type="submit" class="Style2" value="Valider !" /></form>
Le champs newpassverif est volontairement mis de coté pour le moment.

Et voici le code de la page modifinfos.php :
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?php
session_start();
 
if($_SESSION['log'] != true) {
	echo '<h1>Accès Interdit</h1>';
	exit;
}
?>
<html xmlns="http://www.w3.org/1999/xhtml">
 
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Modifications</title>
</head>
 
<body>
<?php
 
$passactuel = $_POST['passactuel'] ; //MDP actuel saisi par user
$passactuel_crypt = md5($_POST['passactuel']); //MDP actuel saisi par user crypté
$newpass = $_POST['newpass'] ; //Nouveau MDP souhaité par user
 
			//CONF CONNEXION BDD
		define('SQL_SERVER','localhost');
		define('SQL_USER','xxxxxx');
		define('SQL_PASS','xxxxxxx');
		define('SQL_BDD','xxxxxx');
 
		$db_link = @mysql_connect(SQL_SERVER,SQL_USER,SQL_PASS);
		mysql_select_db(SQL_BDD);
		$login=$_SESSION['pseudo'];
		$sql = 'SELECT Membres.pass FROM Membres WHERE Membres.login="'.$login.'";';
		$rc = mysql_query($sql);
		$resultat = mysql_fetch_array($rc);
		$passrequete = $resultat[pass]; //$passrequete contient le mot de passe trouvé par requete dans la table crypté en MD5
		echo $passrequete;
 
		if ($passactuel==$passrequete){ //Comparaison entre les deux hash MD5
				$newpass_crypt = md5($newpass); //Nouveau MDP souhaité par user crypté
				$sql2 = 'UPDATE Membres SET pass="'.$newpass_crypt.'" WHERE Membres.login="'.$login.'";';
				mysql_query($sql2);
				echo "Felicitation " . "<font color='FF0000'>" . $_SESSION['pseudo'] . "</font>" . " vous avez changé de mot de passe.";
			}
?> 
 
</body>
 
</html>
J'ai testé, une fois cliqué sur validé, une page blanche apparait... Seul mon echo qui affiche mon mot de passe en md5 est inscrit sur la page.
Le mot de passe n'est pas changé... Sauriez vous m'aiguiller pour trouver mon/mes erreur(s)? Je ne sais pas si mon idée de comparer deux hash md5 est valable?

Je vous remercie par avance,
Milka69
milka69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/04/2011, 18h30   #2
Membre chevronné
 
Homme
Développeur Web
Inscription : mars 2011
Messages : 399
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : Finance

Informations forums :
Inscription : mars 2011
Messages : 399
Points : 662
Points : 662
Code :
if ($passactuel==$passrequete){ //Comparaison entre les deux hash MD5
Sauf que ton pass MD5, c'est pas $passactuel mais $passactuel_crypt

d'après :
Code :
1
2
$passactuel = $_POST['passactuel'] ; //MDP actuel saisi par user
$passactuel_crypt = md5($_POST['passactuel']); //MDP actuel saisi par user crypté
__________________
Membre de StackOverflow, je suis un fervant utilisateur de PHP et de jQuery.
Après des études de graphisme, j'ai décidé de mélanger développement web et web design. J'ai ainsi donc créé mon site web mais aussi plusieurs projets personnels.
Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, un raccourcisseur d'url, un bookmarklet pour envoyer l'url de la page actuelle vers votre email pour lire plus tard ou sauvegarder, mon générateur de template HTML5, etc...
Shikiryu est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 28/04/2011, 18h37   #3
Invité de passage
 
Homme
Étudiant
Inscription : avril 2011
Messages : 2
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2011
Messages : 2
Points : 0
Points : 0
Bonsoir Shikiryu,

Merci pour le coup d'oeil
J'ai honte d'avoir fait un topic pour cela... ça marche parfaitement maintenant

Je te remercie grandement, ça m'aura évité de chercher des heures une erreur compliquée qui est en faite toute simple !

Bonne soirée,
Milka69
milka69 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 08h40.


 
 
 
 
Partenaires

Hébergement Web