Cookies + base de données

suzy26 Messages postés 6 Date d'inscription mercredi 15 janvier 2003 Statut Membre Dernière intervention 1 octobre 2003 - 12 sept. 2003 à 17:32
magidev Messages postés 249 Date d'inscription mardi 24 octobre 2000 Statut Membre Dernière intervention 28 août 2009 - 7 janv. 2004 à 10:05
Bonjour à tous,

J'ai un p'tit problème avec les cookies et les bdd.
J'ai crée un site sur les manifestations, avec un espace partenaire (ajout, modifier, supprimer) et un espace admin (il fait tout et valide les enregistrements).

1) Dans le cas où la personne est partenaire.

Page espace_partenaire.asp
Dans la page espace_partenaire.asp se trouve un formulaire d'identification où je crée un cookies.
Voici le script :
<%
if (Request.Form("login")<>"" ) then%><%
'Crée une instance de l'objet Recordset.
Set rs = Server.CreateObject("ADODB.Recordset")

var_login=Request.Form("login")
var_mdp=Request.Form("mdp")

'Ouvre un ensemble d'enregistrements à l'aide de la méhtode Open
'et utilise la connexion établie par l'objet Connection.
sel = "SELECT * FROM S_coordonnees WHERE login='"&var_login&"' AND mdp='"&var_mdp&"' "
rs.Open sel, cnn
If not RS.eof then
%><%Response.Cookies("sortir_haguenau")("login") = var_login%>
<script language="JavaScript"><!--
function redirect() {
window.location="../partenaire/ajouter_evenement.asp"
}
setTimeout("redirect()",0); // delai en millisecondes
// -->
</script>
<%else%>Veuillez ressaisir votre login et mot de passe
<%end if%><%else%>Formulaire de saisie
<%end if%>

Si le mot de passe et le login se trouve dans la base de données, alors on est redirigé vers la page ajouter_evenement.asp.

Page ajouter_evenement.asp
Dans la page ajouter_evenement.asp, je récupère le cookies de la façon suivante :
<% If ((Request.Cookies("sortir_haguenau")) ="" ) then%>
<script language= "JavaScript"><!--
function redirect() {
window.location="../partenaire/refus.asp"
}
setTimeout("redirect()",0); // delai en millisecondes
// -->
</script>
<%end if%>
Donc si le cookies n'existe pas, on est renvoyé sur la page de refus.

2) Dans le cas où la personne est administrateur

Page espace_admin.asp
C'est la même chose que sur la page espace_partenaire.asp sauf la requête sql et la redirection :sel "SELECT * FROM S_coordonnees WHERE id_coordonnee 2 " //(2 = admin)

Page accueil_admin.asp
De la même façon que pour le partenaire, je récupère le cookies :
<%If ((Request.Cookies("sortir_haguenau")("login"))<>"admin" ) then %>
<script language ="JavaScript"><!--
function redirect() {
window.location="../partenaire/refus.asp"
}
setTimeout("redirect()",0); // delai en millisecondes
// -->
</script>
<%end if%

Donc si le login est différent de admin on est renvoyé vers la page de refus.

Le problème dans ces 2 cas, c'est qu'il me renvoie systématiquement vers la page de refus, et je ne comprends pas, car quand je travaillais avec SQL Server, je n'avais aucun problème, mais depuis que j'ai basculé ma base dans Access, il ne le fais plus.

Merci de ton aide

1 réponse

magidev Messages postés 249 Date d'inscription mardi 24 octobre 2000 Statut Membre Dernière intervention 28 août 2009
7 janv. 2004 à 10:05
Au lieu d'utiliser les cookies, tu devrais utiliser les sessions, elle sont plus performantes et utilisent les cookies. Elles sont compatibles javascript et vbscript
l'exemple est en vbscript

session.timeout = 30 'expiration automatique après 30min
session("Login") = Formulaire.Champ

If session("Login") = "" or session("Login") <> "Admin"
response.redirect ("refus.asp")
else
response.redirect ("accepte.asp")
End if

Les sessions sont détruite dès que l'on ferme le navigateur et si on ne fait plus rien sur le site pendant le temps du time out

si le problème persiste, contacte moi par mail magidev@hotmail.com

Magidev STUDIO
Web&Computer Design
magidev@hotmail.com
0
Rejoignez-nous