Problème avec une fonction qui retourne mal valeur
Résolu
Tobi86
Messages postés
405
Date d'inscription
Statut
Membre
Dernière intervention
-
Tobi86 Messages postés 405 Date d'inscription Statut Membre Dernière intervention -
Tobi86 Messages postés 405 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Voilà je suis entrain de faire un exercice de cours et j'ai un petit souci que je n'explique pas ...
L'exercice est de faire un générateur de mot de passe, l'utilisateur doit rentrer le nombre de caractères voulu dans le mot de passe après ça le programme le génère.
Je tiens à préciser que c'est du PHP en mode CLI.
voilà mon code :
C'est au niveau de cette fonction que ça bug
J'ai bien un résultat dans ma console mais ça fait une ligne "vide"
Si quelqu'un avait la possibilité de me dépanner, merci d'avance :)
Voilà je suis entrain de faire un exercice de cours et j'ai un petit souci que je n'explique pas ...
L'exercice est de faire un générateur de mot de passe, l'utilisateur doit rentrer le nombre de caractères voulu dans le mot de passe après ça le programme le génère.
Je tiens à préciser que c'est du PHP en mode CLI.
voilà mon code :
<?php /***FONCTION GENERANT LE CARACTERE ALEATOIREMENT***/ function carac_aleatoire(){ $rep1 = rand(97,122); //test permettant de savoir le chiffre généré aléatoirement de 97 à 122 //echo $rep1; $carac = (chr($rep1)); return$carac; } /***FONCTION GENERANT LE MOT DE PASSE DE 'n' CARACTERES***/ function mdp_aleatoire($n){ for ($i=0; $i<=$n; $i++) { $lettreA = carac_aleatoire(); $mdp=""; $mdp=$mdp & $lettreA; } return $mdp; } /***PROGRAMME PRINCIPAL***/ echo "nbr de caractères ? \n"; $n = trim(fgets(STDIN)); echo mdp_aleatoire($n); ?>
C'est au niveau de cette fonction que ça bug
/***FONCTION GENERANT LE MOT DE PASSE DE 'n' CARACTERES***/ function mdp_aleatoire($n){ for ($i=0; $i<=$n; $i++) { $lettreA = carac_aleatoire(); $mdp=""; $mdp=$mdp & $lettreA; } return $mdp;
J'ai bien un résultat dans ma console mais ça fait une ligne "vide"
Si quelqu'un avait la possibilité de me dépanner, merci d'avance :)
A voir également:
- Problème avec une fonction qui retourne mal valeur
- Fonction si et - Guide
- Ecran retourne - Guide
- Comment retourner une video - Guide
- Fonction miroir - Guide
- Attribuer une valeur à une cellule texte excel ✓ - Forum Excel
2 réponses
Bonjour,
Ceci donne quoi :
Ceci donne quoi :
function mdp_aleatoire($n){ for ($i=0; $i<=$n; $i++) { $mdp.=carac_aleatoire(); } return $mdp; }
Voici le résultat dans ma console : ça me donne bien une chaine malgré que un un mot de passe de 5 caractères il m'en donne 6 mais ça je sais pourquoi. et mais apres il y a l'erreur.
nbr de caractères ?
5
PHP Notice: Undefined variable: mdp in /home/thibault/workspace/TP6/SI4-TP6/Save/test.php on line 19
ewdbea
1 - $mdp="";
à chaque itération de ta boucle, tu remets à vide "" ta variable !
2- $mdp=$mdp & $lettreA;
l'opérateur & ne s'applique pas à la concaténation de chaînes de caractères.
Pour cela, il faut utiliser l'opérateur point "." :
$mdp = $mdp . $lettreA;
ou, comme le suggère Nhay, la forme condensée $mdp .= $lettreA;
$a .= $b;
est strictement équivalent à
$a = $a . $b;
Xavier