par
sgrunt » 05 nov. 2008, 22:25
Bonjour,
Je débute en php donc je me heurte à plein de problèmes lors de l'interprétation de mes scripts et là je ne sais pas trop quoi faire car je débute tout juste dans les fonctions.
En fait j'ai une table mysql avec un champ pour le mot de passe. J'ai une centaine d'enregistrements et je veux mettre un pass aléatoire pour chacun.
Alors j'ai lu un tuto qui m'a aidé à faire un script pour faire un pass aléatoire (merci google)
J'ai fais mon petit script, il fonctionne.
Je lui ai joins une requête sql "insert into" pour qu'il mettre le pass dans la table, ca a marché, mais jusque là ca ne le fait que pour un seul enregistrement (logique).
Donc je me suis dit je vais mettre une petite boucle autour de ca et c'est bon! bin non :s
Il me renvoit:
Fatal error: Cannot redeclare generer_pass() (previously declared in /opt/lampp/htdocs/mdp.php:8) in /opt/lampp/htdocs/mdp.php on line 8
Donc: c'est pas possible de mettre une fonction dans une boucle ? :s
Voici le code:
Code : Tout sélectionner
$taille_mdp=8;
for($i=1;$i<=78;$i++)
{
function Generer_pass($taille_mdp)
{
// Initialisation des caractères utilisables
$char = 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<$taille_mdp;$i++)
{
$pass .= ($i%2) ? strtoupper($char[array_rand($char)]) : $char[array_rand($char)];
}
return $pass;
}
$mot_de_passe = Generer_pass($size);
//requete qui insère les mdp dans la table adherent
$requete="INSERT INTO adherent (mdp_adh) VALUES ('$mot_de_passe');";
// Exécution de la requête
mysql_query($requete) or die ("Requête impossible".mysql_error());
}
echo "Fin!";
Et sinon, la ligne 8 c'est celle du for.
C'est pas un script qui va durer c'est juste pour une fois c'est pour ca qu'il y a un chiffre dans le for..
J'espère que vous pourrez m'aider, merci d'avoir lu en tout cas.
Bonne soirée
Jerem
Bonjour,
Je débute en php donc je me heurte à plein de problèmes lors de l'interprétation de mes scripts et là je ne sais pas trop quoi faire car je débute tout juste dans les fonctions.
En fait j'ai une table mysql avec un champ pour le mot de passe. J'ai une centaine d'enregistrements et je veux mettre un pass aléatoire pour chacun.
Alors j'ai lu un tuto qui m'a aidé à faire un script pour faire un pass aléatoire (merci google)
J'ai fais mon petit script, il fonctionne.
Je lui ai joins une requête sql "insert into" pour qu'il mettre le pass dans la table, ca a marché, mais jusque là ca ne le fait que pour un seul enregistrement (logique).
Donc je me suis dit je vais mettre une petite boucle autour de ca et c'est bon! bin non :s
Il me renvoit:
[quote]Fatal error: Cannot redeclare generer_pass() (previously declared in /opt/lampp/htdocs/mdp.php:8) in /opt/lampp/htdocs/mdp.php on line 8[/quote]
Donc: c'est pas possible de mettre une fonction dans une boucle ? :s
Voici le code:
[code]$taille_mdp=8;
for($i=1;$i<=78;$i++)
{
function Generer_pass($taille_mdp)
{
// Initialisation des caractères utilisables
$char = 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<$taille_mdp;$i++)
{
$pass .= ($i%2) ? strtoupper($char[array_rand($char)]) : $char[array_rand($char)];
}
return $pass;
}
$mot_de_passe = Generer_pass($size);
//requete qui insère les mdp dans la table adherent
$requete="INSERT INTO adherent (mdp_adh) VALUES ('$mot_de_passe');";
// Exécution de la requête
mysql_query($requete) or die ("Requête impossible".mysql_error());
}
echo "Fin!";[/code]
Et sinon, la ligne 8 c'est celle du for.
C'est pas un script qui va durer c'est juste pour une fois c'est pour ca qu'il y a un chiffre dans le for..
J'espère que vous pourrez m'aider, merci d'avoir lu en tout cas.
Bonne soirée
Jerem