Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
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/01/2011, 20h20   #1
Nouveau Membre du Club
 
Homme
Inscription : février 2009
Messages : 93
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2009
Messages : 93
Points : 31
Points : 31
Par défaut Votre avis sur mes codes

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 :
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 :
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.
herzak est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2011, 11h24   #2
Membre Expert
 
Inscription : août 2002
Messages : 1 036
Détails du profil
Informations forums :
Inscription : août 2002
Messages : 1 036
Points : 1 166
Points : 1 166
Bonjour,

Pour générer ton mot de passe, va voir cette fonction :
http://fr2.php.net/manual/fr/function.uniqid.php
jeca est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2011, 11h41   #3
Membre Expert
 
Avatar de gene69
 
Inscription : janvier 2006
Messages : 951
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : janvier 2006
Messages : 951
Points : 1 063
Points : 1 063
pas d'accord pour uniqid() seule, parce que son résultat et vraiment trop prévisible parce que ça ressemble vraiment à un compteur. Quel est l'interêt d'un mot de passe qu'on peut deviner?

Si tu veux faire un mot de passe sympa je te conseille plutot d'utiliser un mot de passe prononçable composé une ou plusieurs sequences "consonne voyelle consonne" avec de la ponctiation ou des chiffres en tête au milieu ou en fin.

même si ça réduit le nombre de mot de passe possible, tu simplifies la vie de ton utilisateur.
__________________
PHP fait nativement la validation d'adresse électronique Vous êtes perdu en PHP? rassurez-vous ici (en)
Utilisez le bouton résolu!
gene69 est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h36.


 
 
 
 
Partenaires

Hébergement Web