webForumDet fria alternativet

ASP och cookies

ASP

13 svar · 232 visningar · startad av His Divine Shadow

Medlem sedan sep. 20004 079 inlägg
Frågan#1

Jag undrar hur man kan göra en funktion så att man kan se vad som har uppdaterats sen senaste besöket...
Jag menar om det har kommit en ny post i databasen(har redan så att exakt datum och tid läggs in när en ny post är gjord) sedan sist man besökte sidan(som kollas genom en cookie).

Jag gissar att man kan göra en IF sats som visar en "new" bild om datumet på posten är nyare än datumet i cookien.

Men om man också vill ha en sida som visar nya poster, då måste man väl lägga in det i en SQL sats?

------------------
His Divine Shadow is the most despicable being ever created.(så sade en fan)

Sprit löser inga problem. Men det gör inte mjölk heller.

T-bird 1200; GeForce 256 32MB; WinNT4/XP; 512MB RAM; Dialup

Medlem sedan mars 20002 836 inlägg
#2

checka in denna funktion: http://script.webforum.nu/wf/Forum1/HTML/000068.html

If CheckLastHereDate(Session("LastDateHere")) < dteDateFromDB Then
....

cya,
PatrikB

------------------
-=* IF there is a wrong way to do something, then someone will do it *=-

[Redigerat av PatrikB den 04 jan 2002]

[Redigerat av PatrikB den 04 jan 2002]

Medlem sedan sep. 20004 079 inlägg
#3

Jag antar att det ska vara i en global.asa fil?
Jag fick inte det att funka iaf.
Såhär är koden i global.asa:

<SCRIPT LANGUAGE="VBScript" RUNAT="Server">

'## -------------------------------------------
'## -- Function:_______	CheckLastHereDate(ByVal LastHereDate)
'## -- Description:____	Check when user last visited the a page
'## -- Date Created:___	January 12, 2001
'## -- Created by:_____	Patrik Berggren
'## -- Contact:________	mrwize@mrwize.nu, [url="http://www.mrwize.nu"]http://www.mrwize.nu[/url] 
'##
Function CheckLastHereDate(ByVal LastDateHere)
'## -- check last date here
'##    If never been here, set last date here to -20 days --
If LastDateHere = "" Then
'## -- get last visit --
LastDateHere = Request.ccookies("2k1BB")("LastDateHere")
Response.ccookies("2k1BB")("LastDateHere") = Now()
Response.ccookies("2k1BB").Expires = DateAdd("d",365,Now())
'## -- if no cookie was found, set last here date to - 20 days. --
If LastDateHere = "" Then
LastDateHere = DateDiff("d",20,Now())
End If
'## -- store last date here in a session --
Session("LastDateHere") = LastDateHere
End If
'## -- return a last date here --
CheckLastHereDate = LastDateHere
End Function

</SCRIPT>

Men när jag har Checklastdate i en fil så får jag:

Microsoft VBScript runtime (0x800A000D)
Type mismatch: 'CheckLastHereDate'
/mainframe.asp, line 55

Medlem sedan sep. 20004 079 inlägg
#4

Förresten, jag skulle vilja ha det i en global.asa fil, eftersom jag vill ha en funktion som funkar med hela siten, inte bara en sida.

Medlem sedan mars 20002 836 inlägg
#5

Nej,
den är inte till för global.asa

utan, den är till för att kontrollera när en besökare var på en viss sida senast.

Du får lägga denna funktion i en sk include fil och inkludera den på de sidor som du skulle behöva ha den på.

cya,
PatrikB

------------------
-=* IF there is a wrong way to do something, then someone will do it *=-

Medlem sedan sep. 20004 079 inlägg
#6

Men då görs väl ett skillt cookie för varje sida dom besöker?

Det är inte vad jag är efter, jag behöver ett script som funkar för hela siten och som kan anropas från alla sidor.

Medlem sedan mars 20002 836 inlägg
#7

ok,
om du vill ha det på flera olika ställen så kan du ju modifiera funktionen lite så att man kan ha dynamisk namntilldelning av cookie/session

Function CheckLastHereDate(ByVal LastDateHere, sCSName)
'## -- check last date here
'## If never been here, set last date here to -20 days --
If LastDateHere = "" Then
'## -- get last visit --
LastDateHere = Request.ccookies(sCSName & "")("LastDateHere")
Response.ccookies(sCSName & "")("LastDateHere") = Now()
Response.ccookies(sCSName & "").Expires = DateAdd("d",365,Now())
'## -- if no cookie was found, set last here date to - 20 days. --
If LastDateHere = "" Then
LastDateHere = DateDiff("d",20,Now())
End If
'## -- store last date here in a session --
Session(sCSName & "") = LastDateHere
End If
'## -- return a last date here --
CheckLastHereDate = LastDateHere
End Function

Då är det bara att köra olika namn på olika sidor

sida1.asp:

strLastDateHere = CheckLastDateHere(Session("Sida1"),"Sida1")

och på sida 2:
strLastDateHere = CheckLastDateHere(Session("Sida2"),"Sida2")

cya,
PatrikB

------------------
-=* IF there is a wrong way to do something, then someone will do it *=-

Medlem sedan sep. 20004 079 inlägg
#8

Njae, det är inte så jag tänkte det.
En cookie, för hela siten som kan används över hela siten.

Global.asa är den enklaste(kanske enda?) vägen.
Vet du nått ASP script ställe eller forum?

------------------
His Divine Shadow is the most despicable being ever created.(så sade en fan)

Sprit löser inga problem. Men det gör inte mjölk heller.

T-bird 1200; GeForce 256 32MB; WinNT4/XP; 512MB RAM; Dialup

Medlem sedan mars 20002 836 inlägg
#9

Vad menar du med en cookie för hela siten?

En cookie sparas ju på klienten (besökarens) dator och som du sedan kan kolla/jämföra med olika datum tex.

cya,
PatrikB

------------------
-=* IF there is a wrong way to do something, then someone will do it *=-

Medlem sedan sep. 20004 079 inlägg
#10

Nej, jag menar, det skapas väl en cookie för varje sida man besöker på siten.

Medlem sedan mars 20002 836 inlägg
#11

Automatiskt?
Nej, det gör det inte.
Det är du själv som måste skapa cookiesarna annars blir det inga.

cya,
PatrikB

------------------
-=* IF there is a wrong way to do something, then someone will do it *=-

Medlem sedan sep. 20004 079 inlägg
#12

Eh....
Vi är inte alls på samma våglängd...

Hursomhelst, efter lite modifiering av scriptet så har jag det att funka i global.asa så nu är det som det ska.

------------------
His Divine Shadow is the most despicable being ever created.(så sade en fan)

Sprit löser inga problem. Men det gör inte mjölk heller.

T-bird 1200; GeForce 256 32MB; WinNT4/XP; 512MB RAM; Dialup

Medlem sedan mars 20002 836 inlägg
#13

he, he ... nä, verkar inte som det :e

.. och hur ser de modifieringarna ut??

Posta gärna hur du löste ditt problem så att fler kan ta del av lösningarna.

cya,
PatrikB

------------------
-=* IF there is a wrong way to do something, then someone will do it *=-

Medlem sedan sep. 20004 079 inlägg
#14
Session("CheckLastHereDate(ByVal LastDateHere)")

If LastDateHere = "" Then
LastDateHere = Request.ccookies("2k1BB")("LastDateHere")
Response.ccookies("2k1BB")("LastDateHere") = Now()
Response.ccookies("2k1BB").Expires = DateAdd("d",365,Now())

If LastDateHere = "" Then
LastDateHere = DateDiff("d",20,Now())
End If
Session("LastDateHere") = LastDateHere
End If
CheckLastHereDate = LastDateHere

End Sub

Sådär.
I filen där jag anropar värdet har jag det såhär:

LastDateHere = Session("LastDateHere")

<%=LastDateHere%>

------------------
His Divine Shadow is the most despicable being ever created.(så sade en fan)

Sprit löser inga problem. Men det gör inte mjölk heller.

T-bird 1200; GeForce 256 32MB; WinNT4/XP; 512MB RAM; Dialup

265 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)