Testade helt sonika med:
<%
If Request.cöökies("ID")= Expired Then
Response.redirect "login.asp"
%>
Fast inte med öö såklart
Verkar funka som jag tänkt, MEN är det korrekt? Kan det bli några buggar, eller är det just precis så det ska vara?
12 svar · 196 visningar · startad av MM
Någon som kan tala om för mig hur jag skickar iväg användaren till inloggningssidan OM kakan har gått ut?
<%
Response.Buffer = True
Response.Cöökies("ID").Expires = DateAdd("h",12,Now)
'=========================
' Här vill jag styra iväg användaren
' om han inte varit här på 12 timmar
If Request.cöökies("ID") "HAR GÅTT UT"
Response.redirect "login.asp"
'================================
Else
Response.cöökies("ID") = Request.cöökies("id")
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "DATABAS"
strSQL = "select * from Kunder WHERE ID = " & Request.cöökies("id") & ""
Set rs = Conn.Execute(strSQL)
End If
%>
Testade helt sonika med:
<%
If Request.cöökies("ID")= Expired Then
Response.redirect "login.asp"
%>
Fast inte med öö såklart
Verkar funka som jag tänkt, MEN är det korrekt? Kan det bli några buggar, eller är det just precis så det ska vara?
Nej, det funkarf inte. I ditt exempel kollar du om kakan innehåller samma sak om den påhittade variabeln Expired, och det ser ju ut att funka, eftersom båda är tomma.
Man kan inte kolla om en kaka är expired, för när den är det så finns den inte längre.
if isempty(request.cöökies("ID")) then..
hmm. ok
jag tror jag fattar principen.
den kodraden du skrev
-----------
if isempty(request.cöökies("ID")) then..
------------
kollar alltså om det finns någon kaka överhuvudtaget? Det borde ju vara samma sak som jag är ute efter i så fall.
Konstigt bara att det funkar fast man gör helt fel.... för när jag testade mitt påhittade script så redirectades jag ju efter angiven tid...
Anledningen till att det funkar är att din variabel Expired inte heller finns och då blir villkoret
If Request.cöökies("ID")= Expired
sant
koden jag har ser nu ut så här...
-------------------
Response.Buffer = True
Response.Cokies("ID").Expires = DateAdd("h",1,Now)
' =========================================
' FIXA denna koll OM cookien är utgången
' if isempty(request.cokies("ID")) then
' =========================================
Response.redirect "login.asp?session=NewLogin"
Else
Response.cokies("ID") = Request.cokies("id")
Set conn = Server.CreateObject("ADODB.Connection")
osv...
-----------------------
jag får felet:
Microsoft VBScript runtime error '800a000d'
Type mismatch: 'Cokies'
/kundzon.asp, line 12
( rad 12 är raden:
Response.cokies("ID") = Request.cokies("id")
--------------
vad är felet? Det funkade lokalt, men inte ute i "den riktiga världen"...
det är inte så att du i den skarpa koden skrivit cookies med ett o?
nej, men forumet sparkar bakut om jag skriver ut kakor med två o
eftersom du ändrat i felmeddelandet också då eller?
forumet bråkar bara om du skriver punkt-cookies.
har du alltså ändrat i felmeddelandet också?
ja, det gick av bara farten, jag trodde forumet inte gillade det heller... felmeddelandet är:
Type mismatch: 'Cookies'
åter till problemet... nån som ser vad som är fel?
lägg gärna upp hela koden så kikar jag.
OK, först koden i filen som tar hand om informationen från inloggningsformuläret:
<%@ Language=VBScript %>
<%
Response.Buffer = True
Response.Expires = -1
Response.AddHeader "Pragma", "no-cache"
Response.AddHeader "cache-control", "no-store"
%>
<%
Dim conn,rs,strsql
set conn = server.CreateObject("ADODB.Connection")
set rs = server.CreateObject("ADODB.Recordset")
Conn.Open "DSN=MySQL; SERVER=server; DATABASE=namn; UID=id; PWD=pw;"
strsql = "Select ID, Password, Username From a1019.kunder where Username = '" & _
Request.Form("txtusername") & "' and Password = '" & _
Request.Form("txtpassword") & "'"
set rs = conn.Execute (strsql)
If (not rs.BOF) and (not rs.EOF) then
Response.Cokies("ID") = rs.Fields("ID")
Response.Redirect ("kundzon.asp")
else
Response.Redirect "login.asp?session=NoAccess"
end if
rs.close
set rs = nothing
conn.close
set conn = nothing
%>
och i filen kundzon:
<!--#include file="admin/connection.asp" -->
<%
Response.Buffer = True
Response.Cokies("ID").Expires = DateAdd("h",1,Now)
' =========================================
' FIXA denna koll OM kakan är utgången
if isempty(request.cokies("ID")) then
' =========================================
Response.redirect "login.asp?session=NewLogin"
Else
Response.cokies("ID") = Request.cokies("ID")
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "TelgeKraftMySQL"
strSQL = "select * from Kunder WHERE ID = " & Request.cokies("id") & ""
Set rs = Conn.Execute(strSQL)
End If
%>
<%
' Dim usID
' usID = Request.Cokies("ID")
' strSQL = "select * from a1019.Kunder WHERE ID = '" & usID & "'"
' Set rs = Conn.Execute(strSQL)
%>
hmm... ingen som vet?