Générer des pass type alpha "XXXX" dans une base mysql.

Générer des pass type alpha "XXXX" dans une base mysql. - PHP - Programmation

Marsh Posté le 25-09-2002 à 18:01:01    

J'ai un listing en mysql et je souhaiterai attribuer à chaque entrée un mot de passe basique, genre 4 lettres, est ce possible ?

Reply

Marsh Posté le 25-09-2002 à 18:01:01   

Reply

Marsh Posté le 25-09-2002 à 18:21:58    

tu fais un tableau contenant les 26 lettres de l'alphabet (ou les caractères que tu veux)
 
tu pioche 4 valeurs au hasard avec array_rand() que tu concatènes pour générer ton code.
 
tu mets à jour la table


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 25-09-2002 à 18:28:10    

Code :
  1. /* Cette fonction recois en arguments 1 entier qui est egal a la taille du code a generer  
  2.    Et renvois le password generé */
  3. function gen_password($taille_pwd)
  4. {
  5. $tab_char="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
  6. while($i<$taille_pwd)
  7.  {
  8.  $nombre_aleatoire .= $tab_char[rand(0,strlen($tab_char))];
  9.  $i++;
  10.  }
  11. return $nombre_aleatoire;
  12. }


 
edit: avant d'utilisé cette fonction il faut faire ceci avant :  
 
srand(microtime());
gen_password($nombre);
 


Message édité par Schtroumpheur le 25-09-2002 à 18:29:25

---------------
J'ai une pierre à la place du coeur, et au milieu de cette pierre il y a un coeur.
Reply

Marsh Posté le 25-09-2002 à 18:28:53    


         $chaine = "abBDEFcdefghijkmnPQRSTUVWXYpqrst23456789"; //caractères possibles
         srand((double)microtime()*1000000);
         for($i=0; $i<4; $i++)  //mot de passe de 4 caractères
              $pass .= $chaine[rand()%strlen($chaine)];

Reply

Marsh Posté le 25-09-2002 à 18:35:29    

merci mais je suis une merde au point pas savoir ce que je fais de ça, pour ajouter un pass automatiquement à chaque entrée déjà créée

Reply

Marsh Posté le 25-09-2002 à 19:15:59    

Le bout de code que je t'ai mis c'est une fonction tu fou ca au debut de ton script
 
puis par exemple si tu veux afficher un password aleatoire de 10 caracteres tu fais ca :

Code :
  1. <?
  2. /* Cette fonction recois en arguments 1 entier qui est egal a la taille du code a generer   
  3.   Et renvois le password generé */
  4. function gen_password($taille_pwd)
  5. $tab_char="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"; 
  6. while($i<$taille_pwd)
  7. {
  8. $nombre_aleatoire .= $tab_char[rand(0,strlen($tab_char))];
  9. $i++;
  10. }
  11. return $nombre_aleatoire;
  12. }
  13. srand(microtime());
  14. echo gen_password(10);
  15. ?>


---------------
J'ai une pierre à la place du coeur, et au milieu de cette pierre il y a un coeur.
Reply

Marsh Posté le 25-09-2002 à 20:17:36    

oui mais en fait, j ai déjà toutes les entrées, je dois rajouter une colonne et générer des pass pour les entrées existantes

Reply

Marsh Posté le 25-09-2002 à 22:20:16    

Ben ecoute, ma fonction te genere et te retoune un password aleatoire, a partir de la tu en fais ce que tu veux !


---------------
J'ai une pierre à la place du coeur, et au milieu de cette pierre il y a un coeur.
Reply

Marsh Posté le 25-09-2002 à 22:30:50    

Toutes tes entrees sont dans une DB MySQL C ca?
 
si oui tu fais ca :
 

<?
 
 
$host = "hostname";
$user = "usernamedb";
$pass = "passworddb";
$base = "nomdeladb";
 
$mysql_link = mysql_pconnect($host, $user, $pass);
mysql_select_db($base) or die( "Connexion impossible à la base de donnée !!! " );
 
function gen_password($taille_pwd)
{
  $tab_char="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
 while($i<$taille_pwd)
 {
  $nombre_aleatoire .= $tab_char[rand(0,strlen($tab_char))];
  $i++;
 }
 return $nombre_aleatoire;
}
 
$req="SELECT * FROM ta_table";
$res=mysql_query($req);
 
srand(microtime());
while($result=mysql_fetch_array($res))
{
   
  $gen_pwd=gen_password(10);
 
  $cleprim=$result["ClePrimaireDeTaTable"];
  mysql_query("UPDATE ta_table SET champ_password='$gen_pwd' WHERE ClePrimaireDeTaTable='$cleprim'" );
}
 
?>


Message édité par Schtroumpheur le 25-09-2002 à 22:31:45

---------------
J'ai une pierre à la place du coeur, et au milieu de cette pierre il y a un coeur.
Reply

Marsh Posté le 26-09-2002 à 23:00:28    

Warning: srand() expects parameter 1 to be long, string given in /home/xxxxx/public_html/pass.php on line 24

Reply

Marsh Posté le 26-09-2002 à 23:00:28   

Reply

Marsh Posté le 26-09-2002 à 23:18:45    

c est bon ça marche merci bcp  :)

Reply

Marsh Posté le 27-09-2002 à 09:51:52    

:jap:


---------------
J'ai une pierre à la place du coeur, et au milieu de cette pierre il y a un coeur.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed