webForumDet fria alternativet

global.asa

ASPur ASP

9 svar · 256 visningar · startad av Skarre

Medlem sedan apr. 20012 427 inlägg
Frågan#1

En månad innan medlemskapet förfaller ska man få en påminnelse via e-mail och detta tänkte jag sköta via global.asa. Problemet är att jag inte vet var jag ska placera kontrollen. Vad jag förstår så körs endast "Sub Application_OnStart" när servern startas, och det händer ju inte speciellt ofta på ett webbhotell. Lägger jag kontrollen i "Sub Session_OnStart" skickas påminnelser varje gång en ny person besöker sidan, vilket naturligtvis inte är önskvärt. Så här ser i alla fall koden ut.

Set rsOutdated = objConn.Execute("SELECT firstname, email, enddate FROM members WHERE enddate = '" & DateAdd("m",1,Date) & "'")
If Not rsOutdated.EOF Then
	'Skicka påminnelse
End If

Hur gör jag för att denna kod endast ska köras en gång om dagen?

Medlem sedan maj 2002560 inlägg
#2

Flummar på som vanligt

Ett logik flum:

Set rsOutdated = objConn.Execute("SELECT firstname, email, enddate FROM members WHERE enddate = '" & DateAdd("m",1,Date) & "'")
If Not rsOutdated.EOF Then
	If Now(Weekday) => 28 And rs ( "påminnelseSkickad" ) = False Then
		'skicka påminnelse
		SQL = "Update påminnelse Set påminnelseSkickad = True"
	ElseIf Now(Weekday) < 28 Then
		SQL = "Update påminnelse Set påminnelseSkickad = False"
	End If
End If

Den här logiken behöver en ny tabell eller om du kan lösa det på något annat vis.
Jag tycker den ser fin ut men du kan ju kolla med några andra oxå.

Eller är jag helt fel ute?

Medlem sedan apr. 20012 427 inlägg
#3

Grejen är att alla medlemmars "enddate" är individuellt och kontrollen måste således göras varje dag. Man skulle förstås kunna använda databasen eller en textfil för att kontrollera om kontrollen gjorts idag, men det blir ändå lite extra kod som körs i början av varje användares session, men det kanske man kan stå ut med.

Medlem sedan apr. 20012 427 inlägg
#4

Jag löste det genom att skapa en textfil med dagens datum, och om den existerar så körs inte kontrollen. Det innebär dock att flöjande kod alltid kommer att köras vid varje ny session.

	Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
	If Not objFSO.FileExists(Server.MapPath(Date & ".txt")) Then

Man tycker att man på något sätt borde kunna köra en kod varje dag utan att kontrollera om den körts varje gång en ny person besöker webbplatsen. Någon som har en idé?

Medlem sedan feb. 200112 078 inlägg
#5

Skriv ett program. :) I VB lämpligtvis.

Medlem sedan juni 200032 967 inlägg
#6

Skarre skrev:

Jag löste det genom att skapa en textfil med dagens datum, och om den existerar så körs inte kontrollen.

Det känns smidigare att bara kontrollera innehållet i en applikationsvariabel.

Man tycker att man på något sätt borde kunna köra en kod varje dag utan att kontrollera om den körts varje gång en ny person besöker webbplatsen. Någon som har en idé?

Du kan alltid lägga kod i en .vbs-fil, som du sedan schemalägger med exempelvis at-kommandot på servern. Men då krävs att du har tillgång till servern.

Mvh,

Medlem sedan apr. 20012 427 inlägg
#7

@nders skrev:

Det känns smidigare att bara kontrollera innehållet i en applikationsvariabel.

Hur menar du?

@nders skrev:

Du kan alltid lägga kod i en .vbs-fil, som du sedan schemalägger med exempelvis at-kommandot på servern. Men då krävs att du har tillgång till servern.

Det har jag dessvärre inte.

Medlem sedan apr. 20012 427 inlägg
#8

Är det någon som vet vad @nders menar med att det vore smidigare att kontrollera innehållet i en applikationsvariabel? Hur skulle det fungera?

Medlem sedan juni 200032 967 inlägg
#9

Jag vet vad jag menar. Hade bara missat ditt inlägg. ;)

Istället för att hålla på och öppna och skapa filer så kan du lagra datumet i en applikationsvariabel.

Istället för att skapa din textfil:

Application ("UpdateDate") = Date

Och istället för att kontrollera att du har en textfil:

If not Application("UpdateDate") = Date Then

Mvh,

Medlem sedan apr. 20012 427 inlägg
#10

Det var ju smidigt. Tack för tipset! :)

131 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)