# Webmasters - Dveloppement Web > Autres langages pour le Web > Coldfusion >  authentification en coldfusion

## benji54190

bonjour a tous, 

je dois faire une simple authentification mais je ne sais pas comment faire mon test qui permet de vrifier si le mot de passe et le login sont correctes. Si quelqu'un peux m'aider sa serait super cool.

Merci d'avance

----------


## jowo

Bonjour,

Qu'appelles-tu simple authentification?

Avec un nom d'utilisateur et un mot de passe?


Dans ce cas, tu cres un formulaire contenant deux champs texte (username, password) et un bouton pour la soumission du formulaire.

Dans ta page CFM, tu rcuperes la valeur des champs username et password. Tu contrles que le couple est correct...

Voil un dbut Envoie-nous ton code et on verra pour t'aider...  :;):

----------


## benji54190

voila se que j'ai pour le moment:

<table cellspacing="10" cellpadding="10" width="300" align="center" border="0">
<tbody>
<form action="authentification2.cfm">
<tr>
<td>Login</td>
<td><input id="login" name="login" type="text" /></td>
</tr>
<tr>
<td>Password</td>
<td><input id="password" type="password" name="Password" /></td>
</tr>
<td><input type="submit" name="submit" value="Envoyer" /></td>
</tbody>
</table>


<cfquery datasource="authentification" name="authentification">

SELECT login,password FROM authentification WHERE login = "login" AND password = "password"

</cfquery>

<cfif login eq "login" && password eq "password">

<cflocation url="authentification3.cfm">


<cfelse>

<cflocation url="authentification4.cfm">

</cfif>

c'est dans mon test ou ma requete que j'ai un souci je pense

----------


## jowo

Mais ton code dans la balise code et indique dans quel fichier se trouve ton code...

----------


## benji54190

page authentification 1


```

```

page authentification 2 qui permet de vrifier login et mdp:



```

```

----------


## jowo

Il faut rflchir et ne pas crire n'importe quoi....



```

```

CODE NON TEST ET A ADAPT SI NECESSAIRE

PS: Toujours utilis la balise "cfqueryparam pour viter le "SQL Injection"

----------


## benji54190

```

```

datasource: authentification est bien le nom que j'ai mis dans coldfusion
sa ne marche toujour pas, quand je me conect je suis renvoy sur authentification4 alors que le login et mdp son bon

Je ne comprend pas cette partie de code : login = <cfqueryparam value="#FORM.login#" cfsqltype="CF_SQL_VARCHAR">
elle sert a comparer les logins ??

----------


## jowo

> [CODE]
> Je ne comprend pas cette partie de code : login = <cfqueryparam value="#FORM.login#" cfsqltype="CF_SQL_VARCHAR">
> elle sert a comparer les logins ??


Oui, elle compare la valeur saisie par l'utilisateur et la valeur du champ "login" de la table "authentification".

Sinon commente la partie de redirection "cflocation" et affiche les valeurs siasie ainsi que la valeur retourne par l'interrogation



```
<cfoutput>#FORM.login# #FORM.password# #authentification.counter#</cfoutput>
```

et ajoute l'attribut method="post"  ton formulaire .

----------


## benji54190

quand j'ajoute 


```

```

il me retourne bien toto et 0000 donc mon login et mon mot de passe
mais que le mdp soit juste ou faux, sa passe tout le temps

----------


## benji54190

c'est bon sa marche, merci bien. j'espere que se topic pourra aider des gens
merci beaucoup  ::king::

----------


## jowo

Peux-tu nous indiquer o se situait le problme?

----------


## benji54190

j'ai juste modifier un peu ton code



```

```

sa marche nikel,

est il possible de bloquer l'acces aux pages suivants l'identification?
pas trs clair  ::bug::  je sais.
Sur la page ou on peut se loggu, si je change l'URL je peux acceder directement aux pages suivantes sans me logguer. Est il possible de bloquer sa? Qu'il faille imprativement se logguer pour acceder au reste?

----------


## jowo

Il faut corriger ton code



```

```

Il faut toujours prciser le type des paramtres pour les cpqueryparam et il doit correspondre au type du champ de ta base de donnes.


```

```


C'est une mauvaise habitude de ne pas renseigner certains attributs sur leurs valeurs.

En CF, il faut traiter ce cas dans le fichier "Application.cfm".

----------


## benji54190

merci pour l'infos. Je suis novice en coldfusion.
C'est application.cfm que je dois modifier pour bloquer l'acces aux pages?

----------


## benji54190

je comprend pas jowo, je vois du tout comment faire
j'ai trouv des tutos mais en php mais je vois pas comment utiliser des sessions en coldfusion.
Je m'arrache les cheveux  :8O:

----------


## jowo

Pas besoin de s'arracher les cheveux, il existe de nombreux tutos en CF sur la gestion des sessions. C'est mme plus simple que sous PHP....  :;): 

Avec ton CF, tu dois avoir install aussi l'aide. Fais donc une recherche...

Voici une piste...

fichier: Application.cfm


```

```

fichier: Traitement du formulaire de login


```

```

----------


## benji54190

le probleme est que je n'arrive pas a ouvrir application.cfm, quand je l'ouvre avec notepad sa donne rien.
je dois modifier application.cfm ou faire appel a cette page??

enfet voila se que j'ai fait sur cfapplication



```

```

----------


## jowo

Attention: relis la documentation de CF. La page "Application.cfm" doit respecter la casse. De mme que le fichier "OnRequestEnd.cfm"

* La page "Application.cfm" est appel avant chaque appel d'une page de l'application.
* La page "OnRequestEnd.cfm" est appel aprs chaque fin de traitement d'une page (Voir les exceptions dues aux erreurs).

Pour les nouvelles versions de CF, il existe la page Application.cfc (voir documentation CF).

La programmation, ce n'est pas une loterie: donc on ne crit pas une seule ligne au petit bonheur la chance.... Tout doit tre compris et matris.

----------


## jowo

> le probleme est que je n'arrive pas a ouvrir application.cfm, quand je l'ouvre avec notepad sa donne rien.
> je dois modifier application.cfm ou faire appel a cette page??
> 
> enfet voila se que j'ai fait sur cfapplication
> 
> 
> 
> ```
> 
> ```


la balise cfauthenticate est obsolte.

Tu travailles avec quelle version de CF?

Essai de remonter le niveau de debug pour que CF t'indique tous les warnings.

----------


## benji54190

je sais que la programmation n'est pas une loterie mais j'essaye de comprendre,
depuis se matin je comprend tout mais la je vois pas .
Application.cfm je ne sais pas ou elle se trouve et de meme pour OnRequestEnd.cfm

j'ai des livres de CF sous les yeux mais je galre bien
c'est un nouveau langage de prog pour moi, j'en ai jamais fait et la je dois bosser car je suis en stage sur coldfusion

personne ne ma apprit et je ne trouve pas de vritable bon tutos pour CF
bloquer ses pages et la dernieres chose que j'ai a faire pour ojourd'hui, je dois rendre le projet dans moins de 1h
CF sa me soule  ::cry:: 

je suis sous coldfusion 8

----------


## jowo

Les page Application.cfm et OnRequestEnd.cfm doivent tre sous la racine de ton projet.



```

```

----------


## benji54190

okok mais a la base elles sont ou les pages la ?
car je vien de faire une recherche dans le pc et je n'ai pas trouver ses fichiers

----------


## jowo

Si tu es sous CF8, tu auras peut tre le fichier Application.cfc... ?

Sinon o sont placs tes fichiers "authentificationXXX.cfm"?

----------


## benji54190

mes fichiers sont ici :

C:\Inetpub\wwwroot\CFIDE\administrator

ils sont dans le dossier administrator

enfet si j'arrive a faire un logout sur la page suivante sa devrait marcher na?

----------


## jowo

Normalement, on ne touche pas au rpertoire CFIDE\administrator.

Mme si ce n'est pas un trs bon conseil , il faut que les fichiers soit sous wwwroot.

----------


## benji54190

u mais le wwwroot de inetpub ou de coldfusion8 ??
et dans ma bar d'URL je dois mettre quoi car avant je mettais :
http://127.0.0.1/CFIDE/administrator...tification.cfm

----------


## jowo

A toi de voir!!!


Pour faire simple, utilise le rpertoire de inetpub

ajoute un fichier test.html sous C:\Inetpub\wwwroot et un fichier test.cfm sous C:\Inetpub\wwwroot.

Teste en appelant les pages:
http://127.0.0.1/test.html
http://127.0.0.1/test.cfm


Mets du contenu dans le fichier test.html et test.cfm

----------


## benji54190

ah ouais sa marche merci, 
pff chui vraiment largu en coldfusion.

quel est la variable qui me permet de fermer une session ?
car je l'ouvre grace a mon formulaire mais je dois pouvoir aussi me dconecter une fois logger.

je pourrais faire un session destroy() et un session unset() avec un header qui me redirige vers la page de connection mais c'est du php  ::cry::

----------


## jowo

tu cres un page action logout.cfm qui invalide la session et redirige l'utilisateur vers la page de login (voir documentation de cflogout).

----------


## benji54190

je viens de regarder la doc de cflogout



```

```

j'ai donc tent ceci mais se code la est bon pour un utilisateur, par pour tous ceux de ma base de donne

----------


## benji54190

merci bien jowo de toute tes explications
j'ai russi a faire un logout qui fonctionne grace a la doc
j'arrive aussi scuriser les pages grace a cfapplication

j'ai juste un dernier souci :



```

```

si je ne met pas le <cfset....
coldfusion me dit que loggedin n'est pas dfinie et quand je le dfinie comme la 
je peux mettre soi true ou false mais quand je met true mes pages ne sont pas scuris et quand je met false je peu plus acceder au reste du site.

Comment puis je grer se probleme?  ::?:

----------


## benji54190

j'ai russi a bloquer la page en dfinissant session.loggedin a true dans ma page qui vrifie le login et password
l'accs aux page sans identification est donc ok
mais dans l'URL quand je rentre le login et password 
j'ai des truc qui apparaissent et si je copie colle le lien je passe quand meme
y a til un moyen de bloquer sa ?

exemple : http://127.0.0.1/authentification3.c...TOKEN=15849883

voila le lien si j'enleve  ?CFID=0&CFTOKEN=15849883 je revien au login et mot de passe nikel
mais si je met le lien la je passe direct a authentification3
y a t-il un moyen de bloquer cet accs?

----------


## djtadpole

<cfapplication
  name="NOM_DE_L_APPLI"
  clientmanagement="Yes" <------ gestion des cookies
  sessionmanagement="Yes" <---- gestion des sessions
  >

----------


## benji54190

je l'ai dja sa :s:s

application.cfm


```

```

----------


## jowo

> je l'ai dja sa :s:s
> 
> application.cfm
> 
> 
> ```
> 
> ```


Je le rpte encore: ON DOIT AVOIR LA DOCUMENTATION GRANDE OUVERTE DEVANT SOI....

Mme aprs de nombreuses annes de CF et d'autres langages, j'ai toujours la documentation sous la main dans un coin de mon cran....

Que dit la documentation au sujet de "cflocation" et de l'attribut "addToken"?

----------


## benji54190

enfet c'est bon sa marche, on ne peut acceder aux page suivante une fois logg. Par contre mon css est pa pris en compte, je suis dans le dossier wwwroot.



```

```

voila je vien de changer mon code et de rajouter addtoken et statuscode mais je ne vois aucun changement, sa marche toujours pareil, j'ai la doc ouverte sous mes yeux depuis se matin

----------


## jowo

```

```

Dans les autres pages de ton application, tu ne t'occupes plus de savoir si oui ou non ton utilisateur est logu. Vu que le contrle a t effectu durant Application.cfm.

logout.cfm


```

```

----------


## benji54190

avec ton code je n'arrive plus a acceder aux autres page meme tant logg.
j'ai enlev le test qui me permet de savoir si je suis bien logg dans les autres pages mais je n'arrive plus a acceder aux page, quand je me logge je reste sur la meme page avec le login et le mot de passe

----------


## jowo

Je ne vais pas te mcher tout le travail.  toi de voir si le code n'a pas d'erreur...

Montre-nous le code de "Application.cfm", "authentification.cfm", "authentification1.cfm" et "logout.cfm"

Erreur dans Application.cfm:


```

```

----------


## benji54190

```

```

voila

----------

