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 20/09/2006, 08h35   #1
Candidat au titre de Membre du Club
 
Inscription : août 2004
Messages : 80
Détails du profil
Informations forums :
Inscription : août 2004
Messages : 80
Points : 14
Points : 14
Par défaut Login et asp

Bonjour,

J'ai dû reprendre une interface web développée par mon prédécesseur liscencié et qui l'a développée en asp que je ne connais pas bien.

Sur ma page de login (login.asp) j'ai un lien pour changer de mot de passe (changpass.asp) si l'utilisateur veut simplement se loger il le fait sur la page de login qui appelle la page checkpass.asp.

Sur ma page changpass.asp, j'ai l'utilisateur dont on veut changer le password, un champ pour l'ancien password, un pour le nouveau et un pour la confirmation, un bouton "ok" pour valider.

Quand je rempli correctement tous les champs et que je click sur "ok" une page blanche apparaît avec ceci écrit au sommet: "Vous n'êtes pas identifié, veuillez vous identifier ici " avec un lien sur "identifier ici" qui me renvoie à la page de login. Je présume que c'est asp qui m'affiche cette page (elle n'est pas dans mon projet en tous cas) parce que je dois être loggé pour faire ça. J'ai donc rajouté dans la page changpass.asp le code pour logger l'utilisateur, mais cette page apparaît encore.

Tout le reste fonctionne à merveille si je log l'utilisateur depuis la page de login puis si je retourne sur la page de changement de password.

Le problème doit venir d'asp, mais comme je connais pas trop les mécanismes d'asp j'aurai besoin qu'on m'éclaire.
akaii est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2006, 08h50   #2
Membre actif
 
Inscription : juin 2006
Messages : 431
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 431
Points : 162
Points : 162
sur ta page changpass.asp tu dois avoir une condition du type:
Code :
1
2
3
if session("connexion") <> "connecte" then
    response.redirect("notlog.asp")
end if
Cette condittion vérifie le contenu de la variable de session qui a normalement été modifiée dans ta page login.asp. le nom de la variable et sa valeur peuvent évidemment être différent mais grosso modo c'est ca le principe. c'est tout ce que je peux te dire sans ton code.
boss_gama est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2006, 09h01   #3
Candidat au titre de Membre du Club
 
Inscription : août 2004
Messages : 80
Détails du profil
Informations forums :
Inscription : août 2004
Messages : 80
Points : 14
Points : 14
Le lien (changer de mot de passe) se trouve dans la page login.asp donc l'utilisateur peut changer de mot de passe sans se loger via la page login.asp, mais via la page changpass.asp.

voici la page changpass.asp:
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
<!-- #include file="global.asp" -->
<%
dim rs
dim rsUpdatePassword
dim strSQL
dim numUser
dim password
dim ancien
dim new1
dim new2
 
if Request.QueryString("noUser") = "" Then
	numUser = 0
else
	numUser = Request.QueryString("noUser")
end if
 
ancien=Request.Form("ancien") 
new1=Request.Form("new") 
new2=Request.Form("new2") 
 
if Request.Form("ancien")="" then 
	Response.Redirect(cstrAliasScripts & "login.asp?error=3&noUser="+numUser)
end if
if Request.Form("new")="" then 
	Response.Redirect(cstrAliasScripts & "login.asp?error=4&noUser="+numUser)
end if
if Request.Form("new2")="" then 
	Response.Redirect(cstrAliasScripts & "login.asp?error=5&noUser="+numUser)
end if
if Request.Form("new") <> Request.Form("new2") then 
	Response.Redirect(cstrAliasScripts & "login.asp?error=6&noUser="+numUser)
end if
 
strSQL = ""
strSQL = strSQL & "SELECT *"
strSQL = strSQL & " FROM docUtilisateurs"
strSQL = strSQL & " WHERE N° = " & numUser
 
set rs = server.createobject("ADODB.RecordSet")
rs.Open strSQL, adoCon, adOpenForwardOnly, adOpenStatic, adLockReadOnly
 
if not(rs.EOF) then
 
	password = "" & rs("motdepasse")
 
	If CStr(request.form("change.ancien")) = password Then						
		Session("index") = "OK"
		session("user") = rs("nom")
		session("noUser") = numUser
	else	
		Response.Redirect(cstrAliasScripts & "login.asp?error=1&noUser=" + numUser)
	End If
else		
	Response.Redirect(cstrAliasScripts & "login.asp?error=1&noUser=" + numUser)	
end if
 
rs.Close 
set rs = Nothing
 
strSQL = ""
strSQL = strSQL & "UPDATE DOCUTILISATEURS SET motdepasse='" & Request.Form("new") & "' "
strSQL = strSQL & "WHERE motdepasse='" & ancien & "'"
 
 
Set rsUpdatePassword = Server.CreateObject("ADODB.Recordset")
rsUpdatePassword.Open strSQL, adoCon, adOpenKeyset,adLockOptimistic
 
 
Response.Redirect(cstrAliasScripts & "docudoc.asp")	
 
%>
<!-- #include file="global_end.asp" -->
Je n'ai pas de page notlog.asp.
akaii est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2006, 09h17   #4
Membre actif
 
Inscription : juin 2006
Messages : 431
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 431
Points : 162
Points : 162
Citation:
Je n'ai pas de page notlog.asp.
c'est normal, je l'ai mis juste pour mettre en évidence la redirection sur une autre page si la condition est bien vérifiée.
tu as 2 liens sur des autres fichiers global.asp et global_end.asp. Je pense que global_end.asp contient ton formulaire, mais donne ton fichier global.asp
boss_gama est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2006, 10h20   #5
Candidat au titre de Membre du Club
 
Inscription : août 2004
Messages : 80
Détails du profil
Informations forums :
Inscription : août 2004
Messages : 80
Points : 14
Points : 14
J'ai parcouru tout mon projet et il a mis le test nulle part
le globa_en.asp est très court je te le mets donc aussi:
Code :
1
2
3
4
<%
adoCon.Close
set adoCon = nothing
%>
voici le global.asp
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
<%@ Language=VBScript%>
<%option explicit%>
<%Response.Buffer = true%>
<%Response.ExpiresAbsolute = Now() - 1%>
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!-- #include file="../includes/adovbs.inc" -->
<!-- #include file="../includes/constants.inc" -->
<%
Dim adoCon
Dim strCon
Dim DBDocudoc(10)
Dim DocudocName(10)
Dim intranet(10)
Dim interne(10)
Dim externe(10)
Dim noPWD
Dim defaultUserName
Dim langID
Dim strLangCode
Dim cstrAlias, cstrAliasScripts, cstrAliasPages, cstrAliasIncludes
Dim cstrAliasCss, cstrAliasImages
 
'Choose language
langID = langID_FR
 
'Convert langID to strLangCode
select case langID
 
	case langID_DE
		strLangCode = "DE"
 
	case else
		strLangCode = "FR"
 
end select
 
%>
<!--#include file="../includes/texts.inc"-->
<%
 
if session("user") <> "" then
	cstrDocuDoc_version = cstrDocuDoc_version & " [" & CStr(session("user")) & "]"
end if
 
' Check if user is identified (no identification for page login.asp and checkpass.asp)
if session("user") = "" and LCase(Right(Request.ServerVariables("URL"), 9)) <> "login.asp" and LCase(Right(Request.ServerVariables("URL"), 13)) <> "checkpass.asp" then
	Response.Write(cstrUser_notIdentified_msg1 & " <a href=login.asp target=_top>" & cstrUser_notIdentified_msg2 & "</a> " & cstrUser_notIdentified_msg3)
	Response.End
end if
 
cstrAlias			= "/docudoc/"
cstrAliasScripts	= cstrAlias & "scripts/"
cstrAliasPages		= cstrAlias & "pages/"
cstrAliasIncludes	= cstrAlias & "includes/"
cstrAliasCss		= cstrAlias & "css/"
cstrAliasImages		= cstrAlias & "images/"
 
Set adoCon = Server.CreateObject("ADODB.Connection")
 
defaultUserName = "Arniqua"
 
'Configuration des différentes sources de données (Soit un nom de connexion ODBC soit un fichier .MDB)
DocudocName(1)  = "Système Qualité HRSL"
DBDocudoc(1)    = "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=\\arniqua01\DocuDoc\Data\401dev\Data-" & strLangCode & ".mdb" 
 
'Configuration des adresses IP locales (exemple : 192.168.30.105 ou 192.168.30. pour simuler le 192.168.30.*)
'Ces adresses n'utiliseront pas la conversion interne(x) -> externe(x)
intranet(1)  = "192.168.30."
intranet(2)  = "127.0.0.1"
 
'Configuration des adaptations a effecter lors d'une connexion via l'externe (voir option ci-dessus)
'Attention, la conversion est CASE SENSITIVE
interne(1)  = "Q:"               
externe(1)  = "192.168.10.200/info/Documents"
 
 
if request.querystring("noDB") <> "" then
	session("noDB") = cstr(request.querystring("noDB"))
end if
 
' Si je ne suis pas dans le choix.asp
if request.querystring("noCheck") = "" then
	' Si aucun SMQ n'est en cours d'utilisation
	if session("noDB") = 0 or session("noDB") = "" then
		' Si le DBDocudoc2 est vide
		if DBDocudoc(2) = "" then		
			' Je prend en compte qu'on utilise par défaut le SMQ 1
			session("noDB") = 1
		else
			' Sinon je redirige l'utilisateur vers le choix SMQ sans la connexion à la base
			response.redirect("choix.asp?noCheck=1")
			response.end
		end if
	end if
 
	' Si on arrive ici c'est qu'on a choisi un SMQ ou que le 1er sera pris par défaut
	strCon = DBDocudoc(session("noDB"))
 
	adoCon.Open strCon	 			
end if
 
function ReadConfig(pRubrique)
 
	Dim strSQL
	Dim rsConfig
 
	strSQL = "SELECT *"
	strSQL = strSQL & " FROM docConfig"
	strSQL = strSQL & " WHERE rubrique LIKE '" & pRubrique & "';"
 
	Set rsConfig = Server.CreateObject("ADODB.Recordset")
	rsConfig.Open strSQL, adoCon, adOpenForwardOnly, adLockReadOnly
 
	if not(rsConfig.EOF) then
		ReadConfig = rsConfig("designation")
	else
		ReadConfig = ""
	end if
 
	rsConfig.Close
	set rsConfig = nothing
 
end function
%>
akaii est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2006, 10h25   #6
Membre actif
 
Inscription : juin 2006
Messages : 431
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 431
Points : 162
Points : 162
C'est quoi la page checkpass.asp???
Code :
1
2
3
4
5
' Check if user is identified (no identification for page login.asp and checkpass.asp)
if session("user") = "" and LCase(Right(Request.ServerVariables("URL"), 9)) <> "login.asp" and LCase(Right(Request.ServerVariables("URL"), 13)) <> "checkpass.asp" then
	Response.Write(cstrUser_notIdentified_msg1 & " <a href=login.asp target=_top>" & cstrUser_notIdentified_msg2 & "</a> " & cstrUser_notIdentified_msg3)
	Response.End
end if
boss_gama est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2006, 10h25   #7
Candidat au titre de Membre du Club
 
Inscription : août 2004
Messages : 80
Détails du profil
Informations forums :
Inscription : août 2004
Messages : 80
Points : 14
Points : 14
Ok c'est bon je crois que j'ai trouvé merci de m'avoir mis sur la bonne voie.
akaii est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2006, 10h30   #8
Membre actif
 
Inscription : juin 2006
Messages : 431
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 431
Points : 162
Points : 162
problème de nom de fichier?

pense à mettre résolu si ton problème est réglé
boss_gama est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2006, 10h49   #9
Candidat au titre de Membre du Club
 
Inscription : août 2004
Messages : 80
Détails du profil
Informations forums :
Inscription : août 2004
Messages : 80
Points : 14
Points : 14
non mais en fait il test effectivement ce que tu m'a décris plus haut mais d'une autre manière et il évite ce test pour la page login.asp et checkpass.asp donc je pense mettre ce test pour la page changpass.asp également, mais là j'ai un autre soucis du style: *Plus rien ne marche!* donc faut que je trouve l'erreur.
Ok pour "Résolu".
akaii 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 08h42.


 
 
 
 
Partenaires

Hébergement Web