Salut
Quelqu'un peut me donner un code qui génére aléatoirement un code de dix caractere en php comme pour les cartes de crédit...
Salut
Quelqu'un peut me donner un code qui génére aléatoirement un code de dix caractere en php comme pour les cartes de crédit...
Non mais on peut s'en doute t'aider à en créer un.
Voir la fonction rand() , à associer avec des tableaux de caractères par exemple
comment utilise-t-on cette fonction ?
Bonjour,
en voici une :
Que tu peux appeller comme ceci :
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 // Créer les mots de passe ================================ function Make_Pass(){ $Lettre1 = "ABCDEFGHJKLMNPQRSTUVWXYZ"; $Lettre2 = "ABCDEFGHJKLMNPQRSTUVWXYZ"; $i = 0; $a = rand(0,strlen($Lettre1)); $ThePass = substr($Lettre1, $a, 1); while($i < 9){ $X = rand(0,strlen($Lettre2)); $Xarray = array(2,10,17,20); if(!in_array($X, $Xarray)){ $ThePass.= substr($Lettre2, $X, 1);} else{ $Y = rand(0,9); $ThePass.= $Y;} $i++; } return $ThePass; } //------------------------------------------------------------
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 echo Make_Pass();
N1bus
Modérateur Web / PHP / Oddo (ex OpenERP)
Aucune demande technique ne sera traitée par MP . Merci
Memento Technique OpenERP en français
Tutoriel OpenERP : Réalisation d'un module et modification du Point De Vente
PHP/e-Commerce : Installation d'une solution de paiement en ligne SIPS-ATOS
dans la même logique que N1bus,une autre fonction que j'ai amélioré à mon goût
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 <?php function make_password($len) { $consonants = 'bdghjlmnpqrstvwxzBDGHJLMNPQRSTVWXZ@#$%^0123456789'; $vowels = "aeiouyAEIOUY"; $alt = time() % 2; srand(time()); for ($i = 0; $i < $len; $i++) { if ($alt == 1) { $password .= $consonants[(rand() % strlen($consonants))]; $alt = 0; } else { $password .= $vowels[(rand() % strlen($vowels))]; $alt = 1; } } return $password; } //pour générer un mot de passe d'une longueur 8 echo '<h1>'.make_password(8).'</h1>'; ?>
Développeur | Zend Certified Engineer
Étapes Pour mieux se servir du forum:
1. Commencez par lire les cours et tutoriels ;
2. Faites une recherche;
3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles;
Nix>_Rien n'est plus pratique que la théorie
et moi je plante la plus simple
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 function generate_password($length = 6) { $password = ""; $possible = "0123456789bcdfghjkmnpqrstvwxyz"; $i = 0; while ($i<$length) { $char = substr($possible, mt_rand(0, strlen($possible)-1), 1); if (!strstr($password, $char)) { $password .= $char; $i++; } } return $password; }
@thes32 : sympa
finalement j'ai repris la tienne à ma sauce :
Pour éviter les erreurs de saisie : pas de zéro ou de O o, pas de i, I, l (L minuscule) => confusion avec le 1
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 <?php // Créer les mots de passe =================================== function Make_Pass($len){ $char1 = "AaBbCcDdEeFfGgHhJjKkLMmNnPpQqRrSsTtUuVvWwXxYyZz"; $char2 = "AaBbCcDd!EeFfGgHhJjKkLMm#NnPp$QqRrSsTtUuVv%WwXxYyZz"; //pour que le mot de passe commence impérativement par une lettre $ThePass.= $char1[(rand() % strlen($char1))]; //génère un tableau aléatoire $x_array = array(); for($i = 0; $i < 15; $i++){ $x_array[] = $char2[(rand() % strlen($char2))]; } for ($i = 0; $i < ($len - 1); $i++) { $X = $char2[(rand() % strlen($char2))]; if(!in_array($X, $x_array)){//si le caractère n'est pas dans le tableau, on l'ajoute $ThePass.= $X; } else{ $ThePass.= rand(1,9); // sinon on ajoute un chiffre } } return $ThePass; } //--------------------------------------------------------- echo Make_Pass(10); ?>
ça évite que les clients t'appellent : "ça marche pas !!!"
depuis PHP 4.2.0 : pas besoin d'initialiser avec srand()
N1bus
Modérateur Web / PHP / Oddo (ex OpenERP)
Aucune demande technique ne sera traitée par MP . Merci
Memento Technique OpenERP en français
Tutoriel OpenERP : Réalisation d'un module et modification du Point De Vente
PHP/e-Commerce : Installation d'une solution de paiement en ligne SIPS-ATOS
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager