webForumDet fria alternativet

OM cookien har gått ut?

ASP

12 svar · 175 visningar · startad av MM

Medlem sedan maj 2000138 inlägg
Frågan#1

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
%>

------------------
667 - The neighbour of the beast.

Medlem sedan maj 2000138 inlägg
#2

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?

------------------
667 - The neighbour of the beast.

Medlem sedan dec. 19996 721 inlägg
#3

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..

Medlem sedan maj 2000138 inlägg
#4

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...

------------------
667 - The neighbour of the beast.

Medlem sedan dec. 19996 721 inlägg
#5

Anledningen till att det funkar är att din variabel Expired inte heller finns och då blir villkoret

If Request.cöökies("ID")= Expired

sant

Medlem sedan maj 2000138 inlägg
#6

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"...

------------------
667 - The neighbour of the beast.

Medlem sedan juni 200032 967 inlägg
#7

det är inte så att du i den skarpa koden skrivit cookies med ett o?

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
can i borrow your goat?
</A>

Medlem sedan maj 2000138 inlägg
#8

nej, men forumet sparkar bakut om jag skriver ut kakor med två o ;)

------------------
667 - The neighbour of the beast.

Medlem sedan juni 200032 967 inlägg
#9

eftersom du ändrat i felmeddelandet också då eller?

forumet bråkar bara om du skriver punkt-cookies.

har du alltså ändrat i felmeddelandet också?

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
can i borrow your goat?
</A>

Medlem sedan maj 2000138 inlägg
#10

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?

------------------
667 - The neighbour of the beast.

Medlem sedan juni 200032 967 inlägg
#11

lägg gärna upp hela koden så kikar jag.

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
can i borrow your goat?
</A>

Medlem sedan maj 2000138 inlägg
#12

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)
%>

------------------
667 - The neighbour of the beast.

Medlem sedan maj 2000138 inlägg
#13

hmm... ingen som vet?

------------------
667 - The neighbour of the beast.

260 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)