begin process at 2010 09 03 10:02:43
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive ColdFusion

 > 

Archives

 > 

Base de données

 > 

Petit problème de variable et de base de données


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Petit problème de variable et de base de données

vendredi 21 septembre 2001 à 18:23:59 | Petit problème de variable et de base de données

Link

<cfinclude template="Connections/maconn.cfm">
<cfscript>
// *** Edit Operations: declare variables

// set the form action variable
MM_editAction = CGI.SCRIPT_NAME;
If (CGI.QUERY_STRING NEQ "") {
MM_editAction = MM_editAction & "?" & CGI.QUERY_STRING;
}

// boolean to abort record edit
MM_abortEdit = false;

// query string to execute
MM_editQuery = "";
</cfscript>
<cfscript>
// *** Insert Record: set variables

If (IsDefined("MM_insert")) {

MM_editDatasource = #MM_maconn_DSN#;
MM_editUserName = #MM_maconn_USERNAME#;
MM_editPassword = #MM_maconn_PASSWORD#;
MM_editTable = "user";
MM_editRedirectUrl = "";
MM_fieldsStr = "ID|value|Surnom|value|Nom|value|Prenom|value|Naiss|value|Pays|value|Mail|value";
MM_columnsStr = "ID|',none,''|surnom|',none,''|nom|',none,''|prenom|',none,''|naissance|',none,''|pays|',none,''|mail|',none,''";

// create the MM_fields and MM_columns arrays
MM_fields = ListToArray(MM_fieldsStr,"|");
MM_columns = ListToArray(MM_columnsStr,"|");

// set the form values
For (i=1; i+1 LE ArrayLen(MM_fields); i=i+2) {
MM_fields[i+1] = IIf(IsDefined(MM_fields[i]),"FORM." & MM_fields[i],DE(""));
}

// append the query string to the redirect URL
If (MM_editRedirectUrl NEQ "" AND CGI.QUERY_STRING NEQ "") {
If (Find("?", MM_editRedirectUrl) EQ 0) {
MM_editRedirectUrl = MM_editRedirectUrl & "?" & CGI.QUERY_STRING;
} Else {
MM_editRedirectUrl = MM_editRedirectUrl & "&" & CGI.QUERY_STRING;
}
}
}
</cfscript>
<cfscript>
// *** Insert Record: construct a sql insert statement

If (IsDefined("MM_insert")) {

// create the insert sql statement
MM_tableValues="";
MM_dbValues="";
For (i=1; i+1 LE ArrayLen(MM_fields); i=i+2) {
FormVal = MM_fields[i+1];
MM_typesArray = ListToArray(MM_columns[i+1],",");
Delim = IIf(MM_typesArray[1] NEQ "none","MM_typesArray[1]",DE(""));
AltVal = IIf(MM_typesArray[2] NEQ "none","MM_typesArray[2]",DE(""));
EmptyVal = IIf(MM_typesArray[3] NEQ "none","MM_typesArray[3]",DE(""));
If (FormVal EQ "") {
FormVal = EmptyVal;
} Else {
If (AltVal NEQ "") {
FormVal = AltVal;
} Else If (Delim EQ "'") { // escape quotes
FormVal = "'" & Replace(FormVal,"'","''","ALL") & "'";
} Else {
FormVal = Delim & FormVal & Delim;
}
}
If (i GT 1) {
MM_tableValues = MM_tableValues & ",";
MM_dbValues = MM_dbValues & ",";
}
MM_tableValues = MM_tableValues & MM_columns[i];
MM_dbValues = MM_dbValues & FormVal;
}
MM_editQuery = "insert into " & MM_editTable & " (" & MM_tableValues & ") values (" & MM_dbValues & ")";
}
</cfscript>
<cfif Not #MM_abortEdit# AND IsDefined("MM_insert")>
<cfquery name="MM_editCmd" datasource=#MM_editDatasource# username=#MM_editUserName# password=#MM_editPassword#>
#PreserveSingleQuotes(MM_editQuery)#
</cfquery>
<cfif #MM_editRedirectUrl# NEQ "">
<cflocation url="#MM_editRedirectUrl#" addtoken="no">
</cfif>
</cfif>
<cfset random_number = "#RandRange(10000000,99999999)#">
<cfset password = "#random_number#">


Le cfset password crée une variable je voudrais quel soit mis dans le champ password de ma base de données comment puis-je affecté cette variable?
samedi 22 septembre 2001 à 01:35:02 | Re : Petit problème de variable et de base de données

bastoun

Oulà....
Toi, tu utilises ultradev...

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
<input type="hidden" name="password" value="#createUUID()#">
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#">
samedi 22 septembre 2001 à 11:08:34 | Re : Petit problème de variable et de base de données

Link

Merci et oui tu as devinez juste j'utilise ultradev :)


-------------------------------
Réponse au message :
-------------------------------

Oulà....
Toi, tu utilises ultradev...

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
<input type="hidden" name="password" value="#createUUID()#">
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#">
lundi 24 septembre 2001 à 23:42:49 | Re : Petit problème de variable et de base de données

bastoun

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?

-------------------------------
Réponse au message :
-------------------------------

<cfinclude template="Connections/maconn.cfm">
<cfscript>
// *** Edit Operations: declare variables

// set the form action variable
MM_editAction = CGI.SCRIPT_NAME;
If (CGI.QUERY_STRING NEQ "") {
MM_editAction = MM_editAction & "?" & CGI.QUERY_STRING;
}

// boolean to abort record edit
MM_abortEdit = false;

// query string to execute
MM_editQuery = "";
</cfscript>
<cfscript>
// *** Insert Record: set variables

If (IsDefined("MM_insert")) {

MM_editDatasource = #MM_maconn_DSN#;
MM_editUserName = #MM_maconn_USERNAME#;
MM_editPassword = #MM_maconn_PASSWORD#;
MM_editTable = "user";
MM_editRedirectUrl = "";
MM_fieldsStr = "ID|value|Surnom|value|Nom|value|Prenom|value|Naiss|value|Pays|value|Mail|value";
MM_columnsStr = "ID|',none,''|surnom|',none,''|nom|',none,''|prenom|',none,''|naissance|',none,''|pays|',none,''|mail|',none,''";

// create the MM_fields and MM_columns arrays
MM_fields = ListToArray(MM_fieldsStr,"|");
MM_columns = ListToArray(MM_columnsStr,"|");

// set the form values
For (i=1; i+1 LE ArrayLen(MM_fields); i=i+2) {
MM_fields[i+1] = IIf(IsDefined(MM_fields[i]),"FORM." & MM_fields[i],DE(""));
}

// append the query string to the redirect URL
If (MM_editRedirectUrl NEQ "" AND CGI.QUERY_STRING NEQ "") {
If (Find("?", MM_editRedirectUrl) EQ 0) {
MM_editRedirectUrl = MM_editRedirectUrl & "?" & CGI.QUERY_STRING;
} Else {
MM_editRedirectUrl = MM_editRedirectUrl & "&" & CGI.QUERY_STRING;
}
}
}
</cfscript>
<cfscript>
// *** Insert Record: construct a sql insert statement

If (IsDefined("MM_insert")) {

// create the insert sql statement
MM_tableValues="";
MM_dbValues="";
For (i=1; i+1 LE ArrayLen(MM_fields); i=i+2) {
FormVal = MM_fields[i+1];
MM_typesArray = ListToArray(MM_columns[i+1],",");
Delim = IIf(MM_typesArray[1] NEQ "none","MM_typesArray[1]",DE(""));
AltVal = IIf(MM_typesArray[2] NEQ "none","MM_typesArray[2]",DE(""));
EmptyVal = IIf(MM_typesArray[3] NEQ "none","MM_typesArray[3]",DE(""));
If (FormVal EQ "") {
FormVal = EmptyVal;
} Else {
If (AltVal NEQ "") {
FormVal = AltVal;
} Else If (Delim EQ "'") { // escape quotes
FormVal = "'" & Replace(FormVal,"'","''","ALL") & "'";
} Else {
FormVal = Delim & FormVal & Delim;
}
}
If (i GT 1) {
MM_tableValues = MM_tableValues & ",";
MM_dbValues = MM_dbValues & ",";
}
MM_tableValues = MM_tableValues & MM_columns[i];
MM_dbValues = MM_dbValues & FormVal;
}
MM_editQuery = "insert into " & MM_editTable & " (" & MM_tableValues & ") values (" & MM_dbValues & ")";
}
</cfscript>
<cfif Not #MM_abortEdit# AND IsDefined("MM_insert")>
<cfquery name="MM_editCmd" datasource=#MM_editDatasource# username=#MM_editUserName# password=#MM_editPassword#>
#PreserveSingleQuotes(MM_editQuery)#
</cfquery>
<cfif #MM_editRedirectUrl# NEQ "">
<cflocation url="#MM_editRedirectUrl#" addtoken="no">
</cfif>
</cfif>
<cfset random_number = "#RandRange(10000000,99999999)#">
<cfset password = "#random_number#">


Le cfset password crée une variable je voudrais quel soit mis dans le champ password de ma base de données comment puis-je affecté cette variable?
mardi 25 septembre 2001 à 10:37:00 | Re : Petit problème de variable et de base de données

Link

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


Cette discussion est classée dans : fields, query, mm, none, formval


Répondre à ce message

Sujets en rapport avec ce message

Des gestions de listes dans une query [ par Senpiet ] Salut,Je cherche à savoir comment reprendre des entrées d'une base, en comparant un chiffre (ex.: variable IDachat) avec une entrée texte de la table, Query sur tableur Excel [ par bloodofstone ] Bonjour,Comment dois-je rédiger ma requête Sql si ma source de données est un tableau Xls ?Est-ce du sql ?Merci de m'aider ... URGENT : Récupération QUERY STRING [ par leursst ] Bonjour à tous,Je débute et je voudrais savoir comment récupérer un champs dans une Query String quand celui-ci se nomme "code-retour" (avec la versio Affichage d'un query en 4 colonnes [ par hsld ] Bonjour, Je suis en pleine bricole et je ne trouve pas de solution qui me plaise.J'ai une requète qui me renvoie une liste de nom (par ordre alphabéti Trier un objet QUERY [ par BenLaKnet ] CF permet de créer des objets QUERY, qui s'utilise comme si l'on avait exécuté une requête SQL.le problème est que cet objet ne peut être trié.est il Query sql [ par Metrox ] 'lut allje cherche à créer une query sql qui interroge la db et qui lui dit de chercher dans la table bonjour si l'entrée tata est présente...Mais, j' affichage query sur plusieurs page [ par raf0002 ] Salut à tous,Je veux afficher le résultat d'une query sur plusieurs pages, ma query mesort 9300 enregistrements et je voudrais paginer par paquet de p jeu de cadres et affichage query [ par zorro699 ] Bien le bonjour ! :)J'ai un probs d'affichage de resultat d'une requete coldfusion dans un cadre faisant partie d'un frameset.La page seul affiche cor Affichage graphique coldfusion [ par KO2 ] Bonjour,Pfffff c'est galère !!!!!J'ai une requête qui affiche des données dans un graphique. Il affiche le nombre de cd vendus par mois pour l'année 2 ODBC - Query [ par Mad X ] Bonjour,je viens de commencer le Coldfusion étant amateur des db et de flash.Tout d'abord j'ai installer coldfusion et fait un lien via l'administrati


Nos sponsors


Sondage...

CalendriCode

Septembre 2010
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
27282930   

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,234 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales