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?
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å.
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.
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é?
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.
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.