Just nu i M3-nätverket
Jump to content

Cookie


Mel

Recommended Posts

Nu hände detta:

 

Response object error 'ASP 0156 : 80004005'

 

Header Error

 

/omrostning/rosta.asp, line 48

 

The HTTP headers are already written to the client browser. Any HTTP header modifications must be made before writing page content.

 

 

Link to comment
Share on other sites

Ok, fixat nu, det var jag som slarvade med sidans headers på sidan, det är fixat nu. Jag fixade ett annat fel också.

 

<%@LANGUAGE="VBScript" EnableSessionState = False %>
<%
Option Explicit
Response.Buffer = true
Response.Expires = -1000 '// förhindra att sidan cachas
Response.CacheControl = "no-cache" '// förhindra att sidan cachas

Dim Conn, qsID, qsVote, qsNamn
qsID = Request.Querystring("id")
qsVote = Request.QueryString("vote")
qsNamn = Request.QueryString("namn")

function registerVote()
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("../access-db/galleri.mdb")

Conn.Execute("Update Bilder Set Summa=Summa+" & qsVote &" Where id="& qsID)
Conn.Execute("Update Bilder Set Totalt=Totalt+1 Where id="& qsID)
Conn.Execute("Update Bilder Set V"& qsVote &"=V"& qsVote &"+1 Where id="& qsID)
'// dessa 3 rader kan och bör slås ihop till ett enda sql-kommando, men det är kanske enklare att ha det på detta vis om asp känns lite främmande fortfarande

'// nedan stänger vi och städar upp efter oss [detta skall man ALLTID göra när man pysslat med objekt.
'// När man skrivit 'set variabel = bla' då har man använt ett objekt & då måste man städa efter sig, annars kan det bli problem på servern!
Conn.Close
Set Conn = nothing 
end function

function setCtrlCookie()
Response.Cookies("kaka") = "Klarar"
Response.Cookies("kaka").Expires = DateAdd("d", 1, Date())
'Response.Flush()
end function

function checkCtrlCookie()
if (Request.Cookies("kaka")="Klarar") then
checkCtrlCookie = true
else
checkCtrlCookie = false
end if
end function


Call setCtrlCookie()

if (checkCtrlCookie()) then '// cookies stöds
Call registerVote() '// registrera rösten
Response.Cookies("v"& qsID) = "true"
Response.Cookies("v"& qsID).Expires = DateAdd("h", 24, now())
Response.Redirect("visa.asp?id="& qsNamn)

else '// cookies stöds inte
Response.Redirect("nocookiesforyou.asp")
end if
%>

 

Se till att denna kod är överst i sidans källkod, annars får du samma felmeddelande igen. [dvs ha ingen asp eller html före denna kod]

 

 

[inlägget ändrat 2004-01-16 16:21:56 av dAEk^]

Link to comment
Share on other sites

Nu funkar röstningen, men för det första så redirectas man inte om man inaktiverat cookies och man kan även rösta hur många gånger man vill.

 

Link to comment
Share on other sites

Finns det inte något sätt att tala om att det är ok att webbläsaren fortsätter att läsa koden om cookiestödet är aktiverat:

 

<%

If Request.Cookies("kaka") <> "" Then

Response."fortsätt"

Else

Response.Redirect("ej_cookiestod.asp")

End If

%>

 

Det skulle vara en så enkel lösning på problemet. Om man inte aktiverat sina cookies så hamnar man på sidan som talar om varför man inte rösten registreras, och om man har aktiverat så läser webbläsaren resten av sidan och rösten registreras.

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...