Bonsoir,
je veux renvoyer un mot aléatoire au membre qui oublie son mot de passe.
Pour cela j'ai deux scripts que voici:
1/ script qui crée le mot de passe aléatoire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
    function Genere_Password($size)
    {
				// Initialisation des caractères utilisables
$characters = array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z");
        for($i=0;$i<$size;$i++)
		{
			//$password = NULL;
			$password .= ($i%2) ? strtoupper($characters[array_rand($characters)]) : $characters[array_rand($characters)];
		}
        return $password;
    }
 
 ?>
2/ script qui traite et envoie le mot de passe par mail
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
<?php
	session_start();
	$titre="Espace Communautaire  ..::.. Mot de passe Perdu ..::..";
	include("fonction_mp.php");
 
	echo '<h1>Recupération de mot de passe !</h1>';
 
	$email = $_POST['email'];	// Je déclare la variable ici
	$membre_mdp = Genere_Password(12); // nouveau mot de passe générer aléatoirement 
	if (!isset($_POST['email'])) //On est dans la page de traitement
	{
			//Vérification du mail
		$existe=$db->prepare('SELECT COUNT(*) AS nbr FROM forum_membres WHERE membre_email =:email');
		$existe->bindValue(':email',$email, PDO::PARAM_STR);
		$existe->execute();
		$email_free=($existe->fetchColumn()!=1)?1:0;
		$existe->CloseCursor();
		if(!$email_free)
		{
			echo 'Votre adresse email ne se trouve pas dans notre base de donnée !';
		}	
		else
		{
			$mp->fetch($existe);
			$bmp=$db->prepare("UPDATE membre_mdp FROM forum_membres WHERE email = '".$email."'");
			$smp->fetch($retour);
			$mp->CloseCursor();
		}		
	}
	$headers  = 'MIME-Version: 1.0' . "\r\n";
	$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
	$objet = 'votre mot de passe, est' .$membre_mdp .'merci de le noter.';
 
	if(!mail($mp['email'], $objet, $headers))
	echo 'probleme lors de l\'envoi du mail';
	else 
	echo 'Votre mot de passe vient de partir ' ;
?>
Merci de m'aider à corriger mes imperfections. particulièrement au niveau du code qui ecrase et renvoi le mot de passe.