[Php] Script : modifier un mdp : zone membre

clement76240 -  
 Utilisateur anonyme -
Bonjour,
Cela fait quelque temps déjà que je cherche comment faire pour que les membre de mon site puisse changer le mot de passe dans la base de donnée . Quelqu'un aurrait un script ou un lien d'un script accomplissant cela ?
Merci d'avance !
Cordialement
Clement76240

16 réponses

  1. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    Salut. Avec quoi as-tu créé ton espace membre ?
    1
  2. clement76240
     
    Oui oui , je peut m'inscrire et me connecter mais cr que je coudrait savoir c'est si il y avait un moyen qu'après être connecter, le membre puisse changer sont mdp .

    Merci de ta réponse rapide ^^
    0
  3. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    Je t'ai demandé avec quoi tu as créé ton espace membre ...
    0
  4. clement76240
     
    Sorry ^^ !
    heu bah ma page est en php et j'utilise Phpmyadmin pour ma bdd
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    Ça ne m'avance pas ...
    Utilises-tu un CMS ? As-tu codé toi-même ? Ou utilises-tu un script trouvé (dans ce cas, indique où) ?
    0
  7. clement76240
     
    j'utilise un script tt simple mais sa fait longtemps ... je ne sais plus ou je l'ai trouver ....
    Mais il n"y a pas de requête sql pour ma demande ,
    juste histoire que sql se connecte et que le membre puisse modifier sont mdp ..
    Je peut t'envoyer le script par emai lsi tu veut ..
    0
  8. Utilisateur anonyme
     
    Salut,

    L'art de répondre à coté de la plaque :)
    C'est de toi le code ? Et oui faut utiliser des requêtes ...

    edit : ah ben apparemment non. Je te conseille de lire ça.
    La chance aide parfois, le travail toujours !
    0
  9. clement76240
     
    Je croit que je vais abandonner ! =)
    je ne suis que debutant et je n'y comprend que dal ^^ !
    0
    1. Utilisateur anonyme
       
      C'est pas compliqué et pas long mais faut nous donner de quoi t'aider, c'est tout ...
      0
  10. clement76240
     
    Expliquez moi exactement ce que vous voulez , mon script est divisée en 4pages :
    Index :
    <?php
    // on teste si le visiteur a soumis le formulaire de connexion
    if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') {
    	if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) {
    
    		$base = mysql_connect ('', '', '');
    		mysql_select_db ('', $base);
    
    		// on teste si une entrée de la base contient ce couple login / pass
    		$sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass_md5="'.mysql_escape_string(md5($_POST['pass'])).'"';
    		$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
    		$data = mysql_fetch_array($req);
    
    		mysql_free_result($req);
    		mysql_close();
    
    		// si on obtient une réponse, alors l'utilisateur est un membre
    		if ($data[0] == 1) {
    			session_start();
    			$_SESSION['login'] = $_POST['login'];
    			header('Location: membre.php');
    			exit();
    		}
    		// si on ne trouve aucune réponse, le visiteur s'est trompé soit dans son login, soit dans son mot de passe
    		elseif ($data[0] == 0) {
    			$erreur = 'Compte non reconnu.';
    		}
    		// sinon, alors la, il y a un gros problème :)
    		else {
    			$erreur = 'Probème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion.';
    		}
    	}
    	else {
    		$erreur = 'Au moins un des champs est vide.';
    	}
    }
    ?>
    <html>
    <head>
    <title>Accueil</title>
    </head>
    
    <body>
    Connexion à l'espace membre :<br />
    <form action="index.php" method="post">
    Login : <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"><br />
    Mot de passe : <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"><br />
    <input type="submit" name="connexion" value="Connexion">
    </form>
    <a href="inscription.php">Vous inscrire</a>
    <?php
    if (isset($erreur)) echo '<br /><br />',$erreur;
    ?>
    </body>
    </html>
    
    Inscription :
    <?php
    // on teste si le visiteur a soumis le formulaire
    if (isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription') {
    	// on teste l'existence de nos variables. On teste également si elles ne sont pas vides
    	if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass'])) && (isset($_POST['pass_confirm']) && !empty($_POST['pass_confirm']))) {
    		// on teste les deux mots de passe
    		if ($_POST['pass'] != $_POST['pass_confirm']) {
    			$erreur = 'Les 2 mots de passe sont différents.';
    		}
    		else {
    $base = mysql_connect ('', '', '');
    		mysql_select_db ('', $base);
    
    			// on recherche si ce login est déjà utilisé par un autre membre
    			$sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'"';
    			$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
    			$data = mysql_fetch_array($req);
    
    			if ($data[0] == 0) {
    				$sql = 'INSERT INTO membre VALUES("", "'.mysql_escape_string($_POST['login']).'", "'.mysql_escape_string(md5($_POST['pass'])).'")';
    				mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
    
    				session_start();
    				$_SESSION['login'] = $_POST['login'];
    				header('Location: membre.php');
    				exit();
    			}
    			else {
    				$erreur = 'Un membre possède déjà ce login.';
    			}
    		}
    	}
    	else {
    		$erreur = 'Au moins un des champs est vide.';
    	}
    }
    ?>
    <html>
    <head>
    <title>Inscription</title>
    </head>
    
    <body>
    Inscription à l'espace membre :<br />
    <form action="inscription.php" method="post">
    Login : <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"><br />
    Mot de passe : <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"><br />
    Confirmation du mot de passe : <input type="password" name="pass_confirm" value="<?php if (isset($_POST['pass_confirm'])) echo htmlentities(trim($_POST['pass_confirm'])); ?>"><br />
    Email:<
    <input type="submit" name="inscription" value="Inscription">
    </form>
    <?php
    
    Membre
    <?php
    session_start();
    if (!isset($_SESSION['login'])) {
    	header ('Location: index.php');
    	exit();
    }
    ?>
    
    <html>
    <head>
    <title>Espace membre</title>
    </head>
    
    <body>
    Bienvenue <?php echo htmlentities(trim($_SESSION['login'])); ?>!<br />
    <a href="deconnexion.php">Déconnexion</a>
    </body>
    </html>
    
    
    Deconnexion :
    
    <?php
    session_start();
    session_unset();
    session_destroy();
    header('Location: index.php');
    exit();
    ?>
    


    * Se sont des fichier php
    0
  11. Utilisateur anonyme
     
    Re,

    J'ai fais ça un peu vite, donc dis moi si ça marche pas :

    membre
    <?php
    session_start();
    if (!isset($_SESSION['login'])) 
    {
    	header ('Location: index.php');
    	exit();
    }
    $login = htmlentities(trim($_SESSION['login']));
    
    if (isset($_POST['old_pass']) && isset($_POST['new_pass2']) && isset($_POST['new_pass']))
    {
    	$old_pass = $_POST['old_pass'];
    	$new_pass2 = $_POST['new_pass2'];
    	$new_pass = $_POST['new_pass'];
    	
    	$base = mysql_connect ('', '', '');
    	mysql_select_db ('', $base);
    		
    	if($new_pass2 == $new_pass2)
    	{
    		$verif_pass = mysql_query("SELECT pass_md5 FROM membre WHERE login='".$_SESSION['login']."'");
    		$array_verif_pass = mysql_fetch_array($verif_pass);
    		
    		if($array_verif_pass['pass'] == $old_pass)
    		{
    			mysql_query("UPDATE membre SET pass_md5='".mysql_escape_string(md5($new_pass))."' WHERE login='".$_SESSION['login']."'");
    			mysql_close($base);
    		}
    	}
    }
    ?>
    
    <html>
    <head>
    <title>Espace membre</title>
    </head>
    
    <body>
    Bienvenue <?php echo $login; ?>!<br />
    <form method="post">
    <label for="old_pass">Ancien mot de passe :  </label><input type="text" id="old_pass" name="old_pass" /><br />
    <label for="new_pass">Nouveau mot de passe :  </label><input type="text" id="new_pass" name="new_pass" /><br />
    <label for="new_pass2">Confirmation mot de passe :  </label><input type="text" id="new_pass2" name="new_pass2" /><br />
    <input type="submit" /><input type="reset" />
    </form>
    <a href="deconnexion.php">Déconnexion</a>
    </body>
    </html>
    0
  12. clement76240
     
    Merci pour ta réponse très rapide mais ce ne marche pas ...
    J'ai configurer la connexion sql , je l'ai mis sur mon ftp , la page se lance et toute s'affiche bien , sans erreur sql .
    Je rentrer mon mot de passe puis les deux nouveaux , je valide puis les champ redeviennent vide, j'essai de me connecter avec mon nouveaux mdp mais sa marche pas alors que ça marche toujour avec l'ancien mdp ..
    Il y a t'il une autre manip a faire qui juste configuer :
    $base = mysql_connect ('', '', '');
    	mysql_select_db ('', $base);

    ??
    Faut-il toucher a quelque chose dans phpmyadmin !?
    Merci bcp pour vos réponse !
    0
    1. Utilisateur anonyme
       
      Regarde dans phpmyadmin et confirme moi que le mot de passe ne change pas.
      0
  13. Utilisateur anonyme
     
    Tiens c'est la même chose sauf qu'il devrait me dire où j'ai merdé :)

    <?php
    session_start();
    if (!isset($_SESSION['login'])) 
    {
    	header ('Location: index.php');
    	exit();
    }
    $login = htmlentities(trim($_SESSION['login']));
    
    if (isset($_POST['old_pass']) && isset($_POST['new_pass2']) && isset($_POST['new_pass']))
    {
    	$old_pass = $_POST['old_pass'];
    	$new_pass2 = $_POST['new_pass2'];
    	$new_pass = $_POST['new_pass'];
    	
    	$base = mysql_connect ('', '', '');
    	mysql_select_db ('', $base);
    		
    	if($new_pass == $new_pass2)
    	{
    		$verif_pass = mysql_query("SELECT pass_md5 FROM membre WHERE login='".$_SESSION['login']."'");
    		$array_verif_pass = mysql_fetch_array($verif_pass);
    		
    		if($array_verif_pass['pass'] == $old_pass)
    		{
    			mysql_query("UPDATE membre SET pass_md5='".mysql_escape_string(md5($new_pass))."' WHERE login='".$_SESSION['login']."'");
    			mysql_close($base);
    		}
    		echo 'mauvais mot de pass';
    	}
    	else
    	echo 'les mots de passe ne sont pas identique';
    }
    echo 'veuillez remplir correctement le formulaire';
    ?>
    
    <html>
    <head>
    <title>Espace membre</title>
    </head>
    
    <body>
    Bienvenue <?php echo $login; ?>!<br />
    <form method="post">
    <label for="old_pass">Ancien mot de passe :  </label><input type="text" id="old_pass" name="old_pass" /><br />
    <label for="new_pass">Nouveau mot de passe :  </label><input type="text" id="new_pass" name="new_pass" /><br />
    <label for="new_pass2">Confirmation mot de passe :  </label><input type="text" id="new_pass2" name="new_pass2" /><br />
    <input type="submit" /><input type="reset" />
    </form>
    <a href="deconnexion.php">Déconnexion</a>
    </body>
    </html>
    0
  14. clement76240
     
    Merci de ta reponse mais ..
    Je me connecte , la page charge , s'affiche et se me met directement sa :

    veuillez remplir correctement le formulaire Bienvenue admin!
    Ancien mot de passe :
    Nouveau mot de passe :
    Confirmation mot de passe :

    Donc j'essai quand même , je tape mon mdp puis les 2 nouveaux identique et :

    mauvais mot de passveuillez remplir correctement le formulaire Bienvenue admin!
    Ancien mot de passe :
    Nouveau mot de passe :
    Confirmation mot de passe :

    Mauvais mot de pass ? Je venait juste de me connecter avec le mot de pass en question et il marchait très bien ..
    Ps: J'ai vérifier et rien ne change dans Phpmyadmin
    0
  15. Utilisateur anonyme
     
    Re,

    Bon j'ai un peu le flemme donc ça te donnera les deux passes et ainsi je verrai l'erreur :)

    <?php
    session_start();
    if (!isset($_SESSION['login'])) 
    {
    	header ('Location: index.php');
    	exit();
    }
    $login = htmlentities(trim($_SESSION['login']));
    
    if (isset($_POST['old_pass']) && isset($_POST['new_pass2']) && isset($_POST['new_pass']))
    {
    	$old_pass = $_POST['old_pass'];
    	$new_pass2 = $_POST['new_pass2'];
    	$new_pass = $_POST['new_pass'];
    	
    	$base = mysql_connect ('', '', '');
    	mysql_select_db ('', $base);
    		
    	if($new_pass == $new_pass2)
    	{
    		$verif_pass = mysql_query("SELECT pass_md5 FROM membre WHERE login='".$_SESSION['login']."'");
    		$array_verif_pass = mysql_fetch_array($verif_pass);
    		$array_pass = $array_verif_pass['pass'];
    		
    		if($array_pass == $old_pass)
    		{
    			mysql_query("UPDATE membre SET pass_md5='".mysql_escape_string(md5($new_pass))."' WHERE login='".$_SESSION['login']."'");
    			mysql_close($base);
    		}
    		echo 'Mot de passe correct : '.$array_pass .', Mot de passe proposé : '.$old_pass;
    	}
    	else
    	echo 'les mots de passe ne sont pas identique';
    }
    else
    echo 'veuillez remplir correctement le formulaire';
    ?>
    
    <html>
    <head>
    <title>Espace membre</title>
    </head>
    
    <body>
    Bienvenue <?php echo $login; ?>!<br />
    <form method="post">
    <label for="old_pass">Ancien mot de passe :  </label><input type="text" id="old_pass" name="old_pass" /><br />
    <label for="new_pass">Nouveau mot de passe :  </label><input type="text" id="new_pass" name="new_pass" /><br />
    <label for="new_pass2">Confirmation mot de passe :  </label><input type="text" id="new_pass2" name="new_pass2" /><br />
    <input type="submit" /><input type="reset" />
    </form>
    <a href="deconnexion.php">Déconnexion</a>
    </body>
    </html>
    0
  16. clement76240
     
    Toujour pas ^^
    Page au debut :

    veuillez remplir correctement le formulaire Bienvenue admin!
    Ancien mot de passe :
    Nouveau mot de passe :
    Confirmation mot de passe :

    Après remplissage du formulaire :

    Mot de passe correct : , Mot de passe proposé : mon-mdp-actuelle Bienvenue admin!
    Ancien mot de passe :
    Nouveau mot de passe :
    Confirmation mot de passe :

    Et je peut toujours que me reconnecter avec l'ancien ...
    0
  17. Utilisateur anonyme
     
    Bouddiou !! :) Test ça je crois mettre trompé dans le nom d'un champ ;)

    <?php
    session_start();
    if (!isset($_SESSION['login'])) 
    {
    	header ('Location: index.php');
    	exit();
    }
    $login = htmlentities(trim($_SESSION['login']));
    
    if (isset($_POST['old_pass']) && isset($_POST['new_pass2']) && isset($_POST['new_pass']))
    {
    	$old_pass = $_POST['old_pass'];
    	$new_pass2 = $_POST['new_pass2'];
    	$new_pass = $_POST['new_pass'];
    	
    	$base = mysql_connect ('', '', '');
    	mysql_select_db ('', $base);
    		
    	if($new_pass == $new_pass2)
    	{
    		$verif_pass = mysql_query("SELECT pass_md5 FROM membre WHERE login='".$_SESSION['login']."'");
    		$array_verif_pass = mysql_fetch_array($verif_pass);
    		$array_pass = $array_verif_pass['pass_md5'];
    		
    		if($array_pass == $old_pass)
    		{
    			mysql_query("UPDATE membre SET pass_md5='".mysql_escape_string(md5($new_pass))."' WHERE login='".$_SESSION['login']."'");
    			mysql_close($base);
    		}
    		echo 'Mot de passe correct : '.$array_pass .', Mot de passe proposé : '.$old_pass;
    	}
    	else
    	echo 'les mots de passe ne sont pas identique';
    }
    else
    echo 'veuillez remplir correctement le formulaire';
    ?>
    
    <html>
    <head>
    <title>Espace membre</title>
    </head>
    
    <body>
    Bienvenue <?php echo $login; ?>!<br />
    <form method="post">
    <label for="old_pass">Ancien mot de passe :  </label><input type="text" id="old_pass" name="old_pass" /><br />
    <label for="new_pass">Nouveau mot de passe :  </label><input type="text" id="new_pass" name="new_pass" /><br />
    <label for="new_pass2">Confirmation mot de passe :  </label><input type="text" id="new_pass2" name="new_pass2" /><br />
    <input type="submit" /><input type="reset" />
    </form>
    <a href="deconnexion.php">Déconnexion</a>
    </body>
    </html>
    0