formulaire : générer un mot de passe a partir du nom...

formulaire : générer un mot de passe a partir du nom... - PHP - Programmation

Marsh Posté le 20-10-2005 à 20:52:18    

Bonjour,  
je cherche a automatiser un peu les taches de l'association dont je m'occupe en utilisant un logiciel en php/mysql pour la gestion des membres.
Ce que je voudrais faire se trouve au niveau du login et mot de passe pour le site Internet correspondant : je voudrais que, a partir du nom et du prénom entré plus haut dans le formulaire, un login et un mot de passe soit généré, genre le login est la concatenation de la premiere lettre du prenom et du nom, et le mot de passe est les 3 premieres lettres du nom et les 3 premieres lettres du prénom.
 
Je pense que c'est possible, peut etre en javascript ou en php, je connais ces langages de facon approximative et ne suis pas en mesure de le faire moi meme malgré mes nombreux essais.
 
J'imagine que cela devrait pouvoir se faire grace à un bouton générer, ou bien tout simplement à la validation du formulaire, que les variables soient enregistrées directement...
 
j'en appelle à vos connaissances et capacités pour m'aider car je suis vraiment coincée la :)
 
je vous remercie très sincerement par avance de m'aider si vous le pouvez :)
 
Amandine

Reply

Marsh Posté le 20-10-2005 à 20:52:18   

Reply

Marsh Posté le 20-10-2005 à 21:09:30    

heu pour le mot de passe autant le generer en aleatoire, ca serait plus intelligent.
 
sinon pour la premiere lettre du prenom et les premieres lettres du nom pour le login c'est faisable.
 
voir la manuel PHP sur les commandes string.
 
sscanf --  Analyse une chaîne à l'aide d'un format
str_ireplace --  Version insensible à la casse de str_replace()
str_pad --  Complète une chaîne jusqu'à une taille donnée
str_repeat -- Répète une chaîne
str_replace --  Remplace toutes les occurrences dans une chaîne
str_rot13 -- Effectue une transformation ROT13
str_shuffle -- Mélange les caractères d'une chaîne de caractères
str_split --  Convertit une chaîne de caractères en tableau
str_word_count -- Compte le nombre de mots utilisés dans une chaîne
strcasecmp --  Comparaison insensible à la casse de chaînes binaires
strchr -- Alias de strstr()
strcmp -- Comparaison binaire de chaînes
strcoll -- Comparaison de chaînes localisées
strcspn --  Trouve un segment de chaîne ne contenant pas certains caractères
strip_tags -- Supprime les balises HTML et PHP d'une chaîne
stripcslashes --  Décode une chaîne encodée avec addcslashes()
stripos --  Recherche la première occurrence dans une chaîne, sans tenir compte de la casse
stripslashes --  Supprimer les anti-slash d'une chaîne
stristr --  Version insensible à la casse de strstr()
strlen -- Calcule la taille d'une chaîne
strnatcasecmp --  Comparaison de chaînes avec l'algorithme d'"ordre naturel" (insensible à la casse)
strnatcmp --  Comparaison de chaînes avec l'algorithme d'"ordre naturel"
strncasecmp --  Compare en binaire des chaînes de caractères
strncmp --  Comparaison binaire des n premiers caractères
strpbrk --  Recherche une chaîne de caractères dans un ensemble de caractères
strpos --  Trouve la position d'un caractère dans une chaîne
strrchr --  Trouve la dernière occurrence d'un caractère dans une chaîne
strrev -- Inverse une chaîne
strripos --  Trouve la position de la dernière occurrence d'une chaîne dans une autre de façon insensible à la casse
strrpos --  Trouve la position de la dernière occurrence d'un caractère dans une chaîne
strspn --  Trouve le premier segment de chaîne
strstr -- Trouve la première occurrence dans une chaîne
strtok -- Coupe une chaîne en segments
strtolower -- Renvoie une chaîne en minuscules
strtoupper -- Renvoie une chaîne en majuscules
strtr -- Remplace des caractères dans une chaîne
 
la fleme de faire le tri
 
la page ou j'ai trouvé ceci :  
http://fr.php.net/strings


---------------
Les CSS c'est bon mangez-en
Reply

Marsh Posté le 20-10-2005 à 21:14:14    

c'est vrai que je suis en train de penser que pour le mot de passe c'est pas un probleme, ca ne change rien qu'il soit aléatoire ou non =)
Mais le truc reste le même pour le login, la il faut que ca corresponde a quelque chose.
je continue mes tests avec ce que tu me donnes, merci!
si vous avez d'autres pistes, n'hésitez pas, je prends :)

Reply

Marsh Posté le 20-10-2005 à 21:24:58    

au ben au niveau algorithmique ca donnerai ceci :  
 
debutlogin = 1ere lettre prenom //Ya une commande toute conne pour en PHP
finlogin = nom
login = debutlogin+finlogin
 
on peut pas faire plus simple
 
aller une petite aide et trouvé dans le manuel à http://fr.php.net/string
 (sans le S)

Code :
  1. // Lit le premier caractère de la chaîne
  2. $str = 'Ceci est un test.';
  3. $first = $str{0};


---------------
Les CSS c'est bon mangez-en
Reply

Marsh Posté le 20-10-2005 à 21:26:49    

et pour le password, ca peut etre tout con :  
avoir un array contenant l'alphabet en minuscules et majuscules et des chiffres,
puis faire une boucle de 0 à n-1 max_password_lettres
et pour cahque fois tirer à nombre de 0 à taille tableau.
 
 
sinon on pourrait jouer avec la table ascii et la correspondance chiffres <> ascii


---------------
Les CSS c'est bon mangez-en
Reply

Marsh Posté le 20-10-2005 à 21:37:18    

bon alors niveau password, ca va, il est généré automatiquement et c'est pas plus mal.
pour le login, voila ce que j'imagine, mais je crois qu'il doit y avoir plein d'erreurs !  
$str = $prenom_adh;
$first = $str{0};
if ($login_adh=="" )
 {
$login_adh = strtolower($first.$nom_adh);
}
 
bon j'ai jamais appris le php alors me frappez pas tout de suite.... ;)
 
Mais le probleme reste a savoir ou mettre ce bout de code :/ car il faut que le nom et le prenom soient deja enregistrés dans les variables, alors qu'elles sont dans le meme formulaire que le login.

Reply

Marsh Posté le 20-10-2005 à 21:40:14    

Yessssssssssssssssss!!!!!!!!!!!!
 
ca marche quand je rafraichis la page, le login se met tout seul !!!
 
maintenant y'a il une manière de faire ca autrement qu'en rafraichissant la page? =)

Reply

Marsh Posté le 20-10-2005 à 21:52:49    

peut etre en javascript avec un onclick ??

Reply

Marsh Posté le 20-10-2005 à 21:53:21    

ton code est bon poulette
mais j'aurai plutot fais ceci :  
if (isset($prenom_adh) && isset($nom_adh)) {
  $login_adh = $prenom_adh{0}.$nom_adh
}
 
c'est pareil sauf que c'est plus court !
c'est pas le PHP que tu connais pas, ce sont les bases en programmation qui te manquent tout simplement


---------------
Les CSS c'est bon mangez-en
Reply

Marsh Posté le 20-10-2005 à 22:17:14    

gatsusat a écrit :

c'est pareil sauf que c'est plus court !
c'est pas le PHP que tu connais pas, ce sont les bases en programmation qui te manquent tout simplement


 
Merci mon grand ! Les bases, j'y travaille, j'y travaille! et le php aussi dans la foulée ;)
 
Maintenant le défi est de trouver comment faire ca sans rafraichir la page, avec un bouton par exemple... ;)

Reply

Marsh Posté le 20-10-2005 à 22:17:14   

Reply

Marsh Posté le 20-10-2005 à 22:25:17    

Le membre remplit le formulaire.. et le valide...
 
tu appel un script PHP qui le se chargera de faire tes creation de login etc.. et les insert dans la BDD si tes conditions sont validées.
 
donc tu passe a ton script juste le nom + prenom (plus les autres champs qu'il a saisit j'imagine) et avant ton insert tu fais ta sauce ;)

Reply

Marsh Posté le 20-10-2005 à 22:27:06    

j'ai pas tout compris folkN2, mais en tout cas c'est moi qui remplis le formulaire, pas les gens ! d'ou l'automatisation parce que j'en ai marre de remplir tous les champs a la main comme une folle... ;)
 
gatsusat : j'ai une erreur de } quand je mets ton code :( qu'est ce qui cloche?

Reply

Marsh Posté le 20-10-2005 à 23:23:21    

tu veux saisir dans un formulaire un "nom + prenom" mais que dans la BDD , le login corresponde a "nprenom" (1ere de nom + prenom. ou l'inverse peu importe) ?
 
donc pour valider ta saisie et faire l'insert dans ta BDD .. tu va bien devoir clicker sur quelquechose ... non?
 
donc je comprend pas bien ton desir de faire le processus du login sans rafraichir la page.. puisque de toute facon tu va "clicker" sur un bouton (ce qui implique un changement de page ou rechargement de la même peu importe)

Reply

Marsh Posté le 21-10-2005 à 10:08:16    

Fab4am a écrit :


gatsusat : j'ai une erreur de } quand je mets ton code :( qu'est ce qui cloche?


 

Code :
  1. $login_adh = $prenom_adh{0}.$nom_adh
  2.                                     ^


 
il manque un ;


Message édité par syl94 le 21-10-2005 à 10:09:13
Reply

Marsh Posté le 21-10-2005 à 10:24:09    

Fab4am a écrit :

Maintenant le défi est de trouver comment faire ca sans rafraichir la page, avec un bouton par exemple... ;)


 
Si tu met un bouton c'est pareil que de rafraichir....
le bouton valide le formulaire, et donc execute ta moulinette de création des login, password.
 
du coup tu affiche un nouveau formulaire (de confirmation) avec tous les champs rempli par les valeurs saisies dans ce lui d'avant, et tu ajoute en plus "votre login sera..... et votre password sera...." et un bouton submit.
Là si le gars valide, tu enregistre dans la BDD...


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 22-10-2005 à 20:46:53    

Bon :)
 
j'ai du poster au mauvais endroit, car avec du javascript ca marche très bien ;)
J'ai créé un petit bouton "générer" comme ceci :  
<INPUT type="button" name="generer" value="Generer" onclick="document.ajouter.login_adh.value=document.ajouter.prenom_adh.value.substring(0,1).toLowerCase()+document.ajouter.nom_adh.value.toLowerCase()">
 
et du coup, pas besoin de recharger la page, mlon login est généré tout seul quand je clique sur le bouton à partir de ce que j'ai entré plus haut !
 
C'est merveilleux ces petites choses en javascript !
 
Merci tout de même de vos aides, j'ai appris plein de trucs :)
 
Amandine

Reply

Marsh Posté le 23-10-2005 à 01:34:07    

sauf que les pb traditionel de java persiste, à savoir, qu'il peut etre désactivé par le client, et dans ce cas, la personne ne peut pas s'inscrire :(


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 23-10-2005 à 16:18:20    

oui mais, d'une part, le bouton sert juste a générer le login, c'est à dire que si apres on veut mettre completement autre chose, y'a pas de problemes, et d'autre part, c'est MOI qui inscris tous les adhérents, puisqu'ils n'ont de compte qu'a partir du moment ou la cotisation a été payée ;)
Donc y'a pas vraiment de probleme ! ;)

Reply

Sujets relatifs:

Leave a Replay

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