Déjà, petite remarque, ton password est généré au hasard, certes, mais pas de façon unique (ok, il y a peu de chance de retomber facilement sur le même numéro...).
Si tu ne veux pas te prendre la tete pour la creation du mot de passe unique utilise plutot la fonction CreateUUID()
qui te créera une chaine unique (avec Hexadecimal et tirets)
<cfset password="#CreateUUID()#">
Ensuite si j'étais a ta place, je réecrirai tout moi-même, (surtout pas avec ULTRADEV, sauf pour la mise en page !!! c'est bon pour faire des maquettes dynamiques ou des sites avec des fonctions simples). A la main, c'est beaucoup plus souple et pas tellement plus long.
Si tu ne veux pas tout réécrire à la main, 2 solutions simples s'offrent à toi et te permettent de garder le code généré par ultradev intact :
- tu insere un champ caché dans ton formulaire
puis tu utilises l'interface d'ultradev pour lui indiquer que le champ de formulaire "password" s'insere dans le champ
de données "password" (problème -> le contenu du champ est facilement lisible au moment de la validation du formulaire)
ou alors
- idem, mais tu mets value="" , et tu rajoutes au dessus de la balise <cfscript> ceci : <cfset form.password="#createUUID()#"> (meme manip pour l'interface d'ultradev)
evidemment dans les deux cas tu n'as plus besoin de ces lignes :
<cfset random_number = "#RandRange(10000000,99999999)#">
<cfset password = "#random_number#">
bon... suite à un probléme de mail, je met le message sur le forum...
aie....
là, le createuuid ne pourra malheureusement pas t'aider... Il ne gère que des longues séries, et si tu les tronque tu as des risques de retomber sur un chiffre déjà existant (surtout sous windows).
Ce que tu peux faire, c'est générer ta suite de 8 chiffres en héxadécimal, au hasard, comme tu le ferais normalement (en utilisant formatBaseN(chiffre,base numérique) ) et vérifier si cette suite n'existe pas dans ta base de données..., et boucler jusqu'à ce que tu tombes sur une suite n'existant pas dans ta base. Le problème est que c'est plus lourd, et ça peux tourner énormément longtemps dans certains cas (quoique, vu le nombre de possibilité, 16^8, ça risque de ne pas tomber souvent).
Si tu as besoin que je t'envoie un morceau de code, fais moi signe.
@+
----- Original Message -----
From: Link
To: crossword@parisfree.com
Sent: Saturday, September 22, 2001 12:24 PM
Subject: Merci pour l'info
pour limité le #CreateUUID()# à huit chiffre hexa comment dois-je m'y prendre?
Ca sera bon alors :) parce que le code ne sert qu'a verifier l'adresse e-mail de l'inscrit... je m'explique :
la personne qui s'inscrit ne choisi pas son mot de passe, mais il sera invité à le changer à sa première connection grace a une variable oui non dans la base de donnée donc tout ce que j'ai besoin c'est une variable de 8 chiffre ou lettre générée par la page (différente pour chaque inscription) à envoyer par mail... une fois le code recu par mail il est invité à modifié son mot de passe à sa convenance :big)