Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Langages serveur > ASP
ASP Forum sur la programmation ASP. Avant de poster : Cours ASP, FAQ ASP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/04/2007, 15h23   #1
Membre du Club
 
Avatar de vever88
 
Étudiant
Inscription : avril 2007
Messages : 114
Détails du profil
Informations personnelles :
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2007
Messages : 114
Points : 46
Points : 46
Par défaut authentification (puis redirection)

Bonjour,

je cherche à identifier un utilisateur par un login/password (jusque là normal )
Ensuite si son login/password est dans ma base, je le dirige vers la page d'accueil sinon je l'invite à re-saisir ses identifiants.
Le problème (et oui il y en a un ) c'est que ma page garde en mémoire les saisies précedantes.
Explication: Si la fois précedante l'utilisateur à été identifié (puis redirigé vers la page d'accueil), ma page d'identification ne se charge pas et la page d'acceuil se charge directement à sa place.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
 
<HTML>
<HEAD>
<TITLE>identification</TITLE>
</HEAD>
<BODY>
 
   <CENTER><H1>Identification</H1> </CENTER>
	<IMG SRC="bottom.gif" Width=1000>
 
          <%
 
		'Création de l'objet connection
		dim objConnection
		Set objConnection = Server.CreateObject("ADODB.Connection")
 
		'Localisation de la base de données access
		connpath = "DBQ=" & Server.MapPath("dbtest.mdb")
 
		'Ouverture de la base de données access
		objConnection.Open "Driver={Microsoft Access Driver (*.mdb)}; " & connpath
 
		'Requête
		SQLQuery = "SELECT * FROM login"
 
		'Exploitation des résultats dans un recordset
		dim RS
		set RS = Server.CreateObject("ADODB.Recordset")
 
		RS.open SQLQuery, objConnection
 
		'Vérification  des résultats dans le recordset
		dim rep
		rep=false
		Do While Not RS.eof
			If Request.Form("login")=RS("login") Then
			rep=true
		End If
			Response.Write("<BR>")
			RS.MoveNext
		Loop
			If rep=true Then
				response.redirect "accueil.asp"
			Else
				response.redirect "loginerror.asp"
			End If
 
		'Fermeture du recordset
		RS.close
		set RS = nothing
 
		'Fermeture de la connexion à la base de données
		objConnection.close
		set objConnection = nothing
		%>
			<center><form method="POST" action="identification.asp" name="fichier">
 
<table bgcolor="#FFF4F4" bordercolor="#800000" border="1" cellspacing="0" cellpadding="4">
  <tr>
    <td><font size="2" face="Arial" color="#008000">Login:</font></td>
    <td><font size="2" face="Arial" color="#008000"><input type="text" name="login"  value="entreprise" size="20"></font></td>
  </tr>
  <tr>
	   <td><font size="2" face="Arial" color="#008000">Password:</td>
	   <td><font size="2" face="Arial" color="#008000"><input type="password" name="password" value="password" size="20"></font></td>
	</tr>
</table>
<input type="submit" value="valider" name="action">
 
</form>
</center>
 
</BODY>
</HTML>
Sauriez-vous comment je pourrais régler le problème ?

à vous

++
vever88 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/04/2007, 17h17   #2
LEK
Membre éclairé
 
Inscription : mai 2005
Messages : 596
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 596
Points : 363
Points : 363
Tu peux commencer par t'assurer que la page n'est pas mise en cache :
Ajoute cela au début de ta page :
Code :
1
2
 
Response.Expires = -1
LEK est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2007, 08h44   #3
Membre du Club
 
Avatar de vever88
 
Étudiant
Inscription : avril 2007
Messages : 114
Détails du profil
Informations personnelles :
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2007
Messages : 114
Points : 46
Points : 46
Merci Lek ,

Je te remercie de ton aide, mais le problème persiste toujours,
quelqu'un aurait-il une idée
vever88 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2007, 22h12   #4
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 5 849
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 5 849
Points : 5 965
Points : 5 965
Salut,

2 choses:
1 - Elle est où la verification du mot de passe?
2 - Plutôt que faire une boucle pour vérifier si le login existe tu devrais modifier ta requete SQL
Code :
SQLQuery = "SELECT * FROM LOGIN WHERE login_name = '" & Request.Form("login") & "';"
Ensuite tu teste si ton recordset contient un enregistrement (normalement y'en a un seul).

A+
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/04/2007, 10h37   #5
Membre du Club
 
Avatar de vever88
 
Étudiant
Inscription : avril 2007
Messages : 114
Détails du profil
Informations personnelles :
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2007
Messages : 114
Points : 46
Points : 46
Bonjour et merci Immo,

En fait je vérifiais bien le mot de passe en faisant cela :
Code :
1
2
3
4
5
6
7
                Do While Not RS.eof
			If Request.Form("login")=RS("login") AND Request.Form("password")=RS("password") Then
				rep=true
			End If
			Response.Write("<BR>")
			RS.MoveNext
		Loop
Par contre en optant pour ta proposition immo je fais :
Code :
SQLQuery ="SELECT * FROM identification WHERE login = '" & Request.Form("login") & "' AND password= '" &Request.Form("password")& "';"
Mais pour vérifier si mon recordSet contient un enregistrement cela ne marche pas
Code :
1
2
3
If RS("entreprise")<>"" AND RS("password")<>"" Then
				rep=true
			End If
Comment puis-je faire ?

Merci
vever88 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/04/2007, 10h51   #6
Expert Confirmé
 
Avatar de pc75
 
Inscription : septembre 2004
Messages : 2 810
Détails du profil
Informations personnelles :
Âge : 56
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2004
Messages : 2 810
Points : 3 011
Points : 3 011
Bonjour,

Et en modifiant ton test comme ça ?

Code :
1
2
3
4
5
6
7
8
9
 
Do While Not RS.eof
	If ucase(Request.Form("login"))=ucase(RS("login")) AND ucase(Request.Form("password"))=ucase(RS("password")) Then
		rep=true
                          exit do
	End If
	Response.Write("<BR>")
	RS.MoveNext
Loop
__________________
Par principe, je ne réponds pas aux messages URGENT.
Il n'y a pas de choses urgentes, il n'y a que des choses en retard. (un inconnu)
pc75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/04/2007, 10h59   #7
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 5 849
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 5 849
Points : 5 965
Points : 5 965
Le UCASE() est interessant sauf si l'identification est sensible à la casse.
En utilisant cette requete
Code :
SQLQuery ="SELECT COUNT(*) FROM identification WHERE login = '" & Request.Form("login") & "' AND password= '" &Request.Form("password")& "';"
Tu ne devrais avoir qu'un seul enregistrement ou rien du tout. C'est cela qu'il faut verifier.
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/04/2007, 11h20   #8
Membre du Club
 
Avatar de vever88
 
Étudiant
Inscription : avril 2007
Messages : 114
Détails du profil
Informations personnelles :
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2007
Messages : 114
Points : 46
Points : 46
Merci vraiment à vous pour votre aide, les deux solutions fonctionnent, toute fois celle d'Immo nécessite moins de ressource.

Malheureusement cela ne règle pas mon problème initial

Sauriez-vous d'où vient ce problème
vever88 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/04/2007, 11h25   #9
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 5 849
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 5 849
Points : 5 965
Points : 5 965
tu dois utiliser un cookie ou une variable de session et verifier à chaque fois que tu vas sur ton site que cette variable est valide.
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/04/2007, 11h32   #10
Membre du Club
 
Avatar de vever88
 
Étudiant
Inscription : avril 2007
Messages : 114
Détails du profil
Informations personnelles :
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2007
Messages : 114
Points : 46
Points : 46
Je mets quoi exactement dans mon cookie
vever88 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/04/2007, 11h38   #11
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 5 849
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 5 849
Points : 5 965
Points : 5 965
de la farine, du chocolat, des oeufs, du sucre, TRUE, FALSE, "est connecté", "OK", 1... Ce que tu veux qui te permette de savoir que l'utilisateur est connecté.
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/04/2007, 11h41   #12
Membre du Club
 
Avatar de vever88
 
Étudiant
Inscription : avril 2007
Messages : 114
Détails du profil
Informations personnelles :
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2007
Messages : 114
Points : 46
Points : 46
elle est bien méritée celle-là,
Facile, mais marrante

Je test et je repost

++
vever88 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/04/2007, 15h42   #13
Membre du Club
 
Avatar de vever88
 
Étudiant
Inscription : avril 2007
Messages : 114
Détails du profil
Informations personnelles :
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2007
Messages : 114
Points : 46
Points : 46
à tous de m'avoir aider,

en ce qui concerne mon problème, la création d'une variable session est la bonne solution.

++
__________________
Merci de votre aide
L'effet developpez.com :

Avec nos pensées, nous créons le monde. [Bouddha]
vever88 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h31.


 
 
 
 
Partenaires

Hébergement Web