Cookies et Session

Signaler
Messages postés
127
Date d'inscription
vendredi 21 janvier 2005
Statut
Membre
Dernière intervention
29 mai 2014
-
Messages postés
127
Date d'inscription
vendredi 21 janvier 2005
Statut
Membre
Dernière intervention
29 mai 2014
-
Bonjours a tous ! J'ai 2 petit problemes que je ne comprend pas du tout....

Ma premiere a propos des cookes...

j'appel la valeur de mon cookie comme suit...

If Not Request.Cookies("projetinfousager") Is Nothing Then


txtAlias.Text = Request.Cookies("projetinfousager").Value



End
If

le problem est que si dans le formulaire c'est ecrit la valeur de mon cookie exemple Marie et que je veux
mettre Nicolas... et bien dans la Base de donné cest quand meme Marie qui s'ecrit..... quand je met mes ligne de cookie en commentaire ca marche bien....

2 ieme question .....
jai fait un bouton avec l'instruction session.abandon sur le onclick mais ca ne tue pas ma session...... pourquoi ???

Jai des messages qui s'Afffiche seulement si session("etat") = "logged" et ils s'affiche meme apres le click de mon bouton qui lui fait un session.abandon()

Merci

6 réponses

Messages postés
20
Date d'inscription
mercredi 3 juillet 2002
Statut
Membre
Dernière intervention
16 mars 2005

Salut,
mets plus de code pour ta question 1.

Pour la question 2, c'est peut-etre que tes messages sont initialisés dans la partie

If
Not IsPostBack
Then

End If

de ton Page_Load.
Messages postés
127
Date d'inscription
vendredi 21 janvier 2005
Statut
Membre
Dernière intervention
29 mai 2014

J'ai pas de ispostback .... je call le session.abandon sur mon bouton alors ca devrais la tué non ???

Voici mon code pour le cookie ceci constitue le projet au complet... je sias que cest peut etre pas optimisé comme code parce que je debute en .net mais je ne comprend pas pourquoi ca marche pas je my prenais de la meme facon a ASP et ca fonctionais bien.


Private
Sub Page_Load(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles
MyBase.Load






If Session("state") = "logged"
Then


lblBienvenue.Text = "Bienvenue " & Session("user") & " !"



End
If



If
Not Request.Cookies("projetinfousager")
Is
Nothing
Then


txtAlias.Text = Request.Cookies("projetinfousager").Value



End
If






Dim cn
As
New Odbc.OdbcConnection("DRIVER={Microsoft Access Driver (*.mdb)};" & "DBQ=C:\Inetpub\wwwroot\projet.mdb")



'ouvre la connection


cn.Open()



Dim intreponse
As
Integer



Dim VarSexe
As
String



If RadioFemme.Checked
Then


VarSexe = "Femme"



Else : VarSexe = "Homme"



End
If






Dim cmdCount
As
New Odbc.OdbcCommand


cmdCount.Connection = cn


cmdCount.CommandText = "SELECT count(*) FROM usagers WHERE photo= true AND sexe = '" & VarSexe & "' "



Dim nbrEnr
As
Integer = cmdCount.ExecuteScalar



Dim tabUsager(nbrEnr - 1)
As
String






Dim cmd
As
New Odbc.OdbcCommand


cmd.Connection = cn


cmd.CommandText = "SELECT * FROM usagers WHERE photo= true AND sexe = '" & VarSexe & "' order by alias"



Dim dr
As Odbc.OdbcDataReader = cmd.ExecuteReader






Dim i
As
Integer



For i = 0
To nbrEnr - 1


dr.Read()


tabUsager(i) = dr.Item("alias")



Next


Application("donnees") = tabUsager


Application("nbrEnr") = nbrEnr








Randomize()



Dim UsagerChoisis
As
Integer


UsagerChoisis = (Application("nbrEnr") - 1) * Rnd() + 0



Dim liensImage
As
String = "/photos/" & Application("donnees")(UsagerChoisis) & ".jpg"


imgUsagerChoisis.ImageUrl = liensImage


imgUsagerChoisis.NavigateUrl = liensImage


imgUsagerChoisis.Target = "_blank"





liensUsagerChoisis.Text = Application("donnees")(UsagerChoisis)


liensUsagerChoisis.NavigateUrl = liensImage


liensUsagerChoisis.Target = "_blank"



'imgUsager.AlternateText = tabUsager(UsagerChoisis)


cn.Close()


dr.Close()



End
Sub



Private
Sub CmdConnexion_Click(
ByVal sender
As System.Object,
ByVal e
As System.Web.UI.ImageClickEventArgs)
Handles CmdConnexion.Click



Dim user
As
String = txtAlias.Text



Dim password
As
String = txtPassword.Text



Dim cn
As
New Odbc.OdbcConnection("DRIVER={Microsoft Access Driver (*.mdb)};" & "DBQ=C:\Inetpub\wwwroot\projet.mdb")



'ouvre la connection


cn.Open()



Dim cmd
As
New Odbc.OdbcCommand


cmd.Connection = cn


cmd.CommandText = "SELECT * FROM usagers WHERE Alias='" & user & "' AND motdepasse='" & password & "'"



Dim drConnection
As Odbc.OdbcDataReader = cmd.ExecuteReader






If drConnection.HasRows
Then


Session("state") = "logged"


Session("security") = drConnection("Acces")


Session("user") = drConnection("Alias")


Session("visite") = drConnection("dernierevisite")


Session("sexe") = drConnection("sexe")


Response.Cookies("projetinfousager").Value = Session("user")


Response.Cookies("projetinfousager").Expires = #1/1/2010#



'affiche un message de bienvenue a l'usager


lblBienvenue.Text = "Bienvenue " & Session("user") & " !"



Dim nbrvisites
As
Integer = drConnection("nbrvisites")


nbrvisites = nbrvisites + 1



'ferme le DataReader


drConnection.Close()






Dim cmdDerniereVisite
As
New Odbc.OdbcCommand


cmdDerniereVisite.Connection = cn


cmdDerniereVisite.CommandText = "UPDATE usagers SET dernierevisite='" &
Date.Now.ToShortDateString & "' WHERE alias='" & Session("user") & "'"


cmdDerniereVisite.ExecuteNonQuery()



Dim cmdNbrVisite
As
New Odbc.OdbcCommand


cmdNbrVisite.Connection = cn


cmdNbrVisite.CommandText = "UPDATE usagers SET nbrvisites='" & nbrvisites & "' WHERE alias='" & Session("user") & "'"


cmdNbrVisite.ExecuteNonQuery()



Else : Response.Write("alert('Mot de passe incorrect!')")



End
If






'ferme la connection


cn.Close()






End
Sub








Private
Sub Button1_Click(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles Button1.Click


Session.Abandon()



End
Sub


End
Class
Messages postés
20
Date d'inscription
mercredi 3 juillet 2002
Statut
Membre
Dernière intervention
16 mars 2005

Ton premier problème est du au fait que le page_load s'effectue avant CmdConnexion_Click et donc remet la valeur du cookie dans txtAlias
Pour éviter cela tu dois initialiser txtAlias uniquement au premier chargement de la page :

If Not
IsPostBack
Then
If
Not
Request.Cookies("projetinfousager")
Is

Nothing

Then
txtAlias.Text = Request.Cookies("projetinfousager").Value
End

If

End If

Pour l'histoire de la session, elle est bien terminée, mais tu ne vides pas ton champ donc le message reste dans lblBienvenue (viewState=true pour ton label).

lblBienvenue.Text =""
If Session("state") = "logged"
Then
lblBienvenue.Text = "Bienvenue " & Session("user") & " !"

End
If
Messages postés
20
Date d'inscription
mercredi 3 juillet 2002
Statut
Membre
Dernière intervention
16 mars 2005

Pour info, voici l'ordre des événement lors du chargement d'une page web :
http://blog.daveranck.com/archive/2004/07/19/217.aspx
Messages postés
127
Date d'inscription
vendredi 21 janvier 2005
Statut
Membre
Dernière intervention
29 mai 2014

Merci je savais bien qu'il y avais de quoi a faire avec le postback mais cette notion n'est pas encore bien assimilé...

Merci!
Messages postés
127
Date d'inscription
vendredi 21 janvier 2005
Statut
Membre
Dernière intervention
29 mai 2014

Pour mon label le enableviewstate etias deja a true mais si jele met a false mon message disparais quand je click sur mon bouton de deconnexion mias seulement apres que jai fais f5 pour reloader la page... est-ce la bonne facon demettre un response.redirect pour faire rafraichir la page automatiquement ??

Thanx!