Petit probleme de cookies en ASP...

Petit probleme de cookies en ASP... - Programmation

Marsh Posté le 06-02-2001 à 15:54:59    

<%  
if Request.cookies.count = 0 then  
    'Response.Write "C`est votre premiere visite !"
    Response.cookies("howmany" ) = 1
else
    'Response.Write "Bienvenue ! je vois que vous etes deja venu ici :"
    Request.cookies("howmany" )
    'Response.Write "fois."
    Response.cookies("howmany" ) = Response.cookies("howmany" ) + 1
end if
%>
 
<html>
<head>
<title>Login</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
 
<body bgcolor="#FFFFFF">
<p> </p>
 
 
******************************************************************
 
Ben voila quand je fais ca je recois ca :
C`est votre premiere visite !  
Response object error 'ASP 0156 : 80004005'  
 
Header Error  
 
/denis/login.asp, line 4  
 
The HTTP headers are already written to the client browser. Any HTTP header modifications must be made before writing page content.  
 
 
Heu pourtant il n`y a rien avant mon code ASP donc ca peut venir d`ou ???
 
MErci d`avance car la je comprend rien  :spookie:


---------------
Oui aux titres de topic clair et precis...
Reply

Marsh Posté le 06-02-2001 à 15:54:59   

Reply

Marsh Posté le 06-02-2001 à 16:00:18    

Un seul espace, ou alors un response.write qui traine je vois que tu as mis certain en commentaire. Si la page t'affiche C'est votre première visite c'est que le response n'est pas en commentaire. A mon avis il faut que tu inverse le response.write te le response.cookies


---------------
La bave du crapaud n'empèche pas la caravane de passer .
Reply

Marsh Posté le 06-02-2001 à 16:10:35    

<%  
if Request.cookies.count = 0 then  
    Response.cookies("howmany" ) = 1
    Response.Write "Test : premiere visite !"
else
    Response.cookies("howmany" ) = Request.cookies("howmany" ) + 1
    Response.Write "Test : autre visite !"
end if
%>
 
*************************
 
Merci Lord II
 
now ca marche, maintenant j`essaye de comprendre pourquoi !!!
 
( le code ci-dessus est celui qui fonctionne)
 
enfin bref merci  :love:     :bounce:


---------------
Oui aux titres de topic clair et precis...
Reply

Marsh Posté le 06-02-2001 à 16:17:41    

Tout simplement parceque quand tu fais un response tu envoie des choses vers le navigateur. En php tu peux passer par un buffer intermediaire que tu peux gerer mais en ASP je sais pas. Bref le truc c'est de faire aucune sorti vers le navigateur avant d'envoyer les cookies ou d'ecrire dans les headers


---------------
La bave du crapaud n'empèche pas la caravane de passer .
Reply

Marsh Posté le 06-02-2001 à 19:51:15    

en fait, c'est simple...
 
les response.cookies doivent être envoyés avant tout aurte donnée au navigateur...
le fait de mettre un response.write avant fait tout sauter...
c'est comme les response.redirect

Reply

Marsh Posté le 06-02-2001 à 19:51:43    

il y a moyen de jouer avec les buffer...
mais bon, c'est chaud et ça sert pas à grand chose.

Reply

Marsh Posté le 06-02-2001 à 23:32:39    

Quand tu places un response.write, tu envoies implicitement les en-tetes HTTP. Les cookies devant êtres envoyés dans l'en-tete HTTP, quand tu mets response.cookie, tu renvoies en fait l'en-tete HTTP, donc le serveur te jette.
 
Si tu n'as vraiment pas d'autre moyen de mettre ton response.cookie avant le premier response.write (quand je dis response.write, ca veut aussi dire les <%= %> et les textes hors du code ASP), alors tu dois bufferiser ta page, en mettant en PREMIER :  
Response.Buffer=true

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed