TheNastyBoy
B0rn t0 b3 r00t
Salut !
Je me suis lancé dans la programmation d'un générateur de mots de passe pseudo-aléatoire en PHP.
Voici le code de l'unique page, genpass.php :
A priori, tout semble bien aller. Mais parfois, il y a des warnings :
Ces warnings n'empêchent pas de générer un mot de passe. Si quelqu'un a une idée sur le pourquoi du comment ça serait vraiment sympa, je ne comprend pas trop pourquoi il me fait ces erreurs.
Je me suis lancé dans la programmation d'un générateur de mots de passe pseudo-aléatoire en PHP.
Voici le code de l'unique page, genpass.php :
Code:
<?php
function genpass($nb)
{
if($nb < 8)
{
print ("Un mot de passe de moins de 8 caractères sera trop faible, vous avez choisi un mot de passe d'une longueur de ".$nb." caractères.");
}
else
{
/* PREMIERE PARTIE : GENERATION DU MOT DE PASSE */
// les différents types de caractères
$lettre = "abcdefghijklmnopqrstuvwxyz";
$maj = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
$chiffre = "0123456789";
$special = "&@$%*!.,;:_-#";
// je concatène tout
$carac = $lettre.$maj.$chiffre.$special;
// création d'un mot de passe vide, paske sinon PHP me chie des bulles
$passwd = "";
// on lance la boucle
for ($i = 0; $i < $nb; $i++)
{
// génération d'un caractère pseudo-aléatoire
$indice = rand(0, strlen($carac) - 1);
// concaténation pour obtenir le mot de passe
$passwd = $passwd.$carac{$indice};
}
/* DEUXIEME PARTIE : VERIFICATION DE LA COMPLEXITE DU MOT DE PASSE */
$veriftxt = 0;
$verifmaj = 0;
$verifnb = 0;
$verifspec = 0;
$totalverif = 0;
for ($j = 0; $j < $nb; $j++)
{
$test = $passwd{$j};
if(ereg($test, $lettre))
{
$veriftxt = 1;
}
if(ereg($test, $maj))
{
$verifmaj = 1;
}
if(ereg($test, $chiffre))
{
$verifnb = 1;
}
if(ereg($test, $special))
{
$verifspec = 1;
}
}
if($veriftxt == 1 && $verifmaj == 1 && $verifnb == 1 && $verifspec == 1)
{
$totalverif = 1;
}
else
{
print("<br>Mot de passe trop faible");
}
/* TROISIEME PARTIE : AFFICHAGE */
print("<br>votre mot de passe est ".$passwd);
}
}
genpass(8);
?>
Code:
Warning: ereg(): REG_BADRPT:lrepetition-operator operand invalid in c:\program files\easyphp1-7\www\genpass.php on line 57
Warning: ereg(): REG_BADRPT:lrepetition-operator operand invalid in c:\program files\easyphp1-7\www\genpass.php on line 62
Warning: ereg(): REG_BADRPT:lrepetition-operator operand invalid in c:\program files\easyphp1-7\www\genpass.php on line 67
Warning: ereg(): REG_BADRPT:lrepetition-operator operand invalid in c:\program files\easyphp1-7\www\genpass.php on line 72