webForumDet fria alternativet

Radera konton där användaren inte loggat in på 60dagar?

ASP

17 svar · 403 visningar · startad av trexter.com

Medlem sedan apr. 20021 203 inlägg
Frågan#1

Jag hade tänkt göra så här.
1. Användaren loggar in
2. Jag lagrar tidpunkten för hans inloggning i en databas
Fråga: Kan jag här bara använda Date eller likn., lagra det i en databas och sedan när jag plockar ut det igen så har värdet inte ändrats?
3. Jag kör ett script varannan månad som kollar om det är någon användare i databasen som inte varit inloggad på 60 dagar.
Fråga: Hur ska jag få ett script att köras varannan månad?

Fråga: Finns det något bättre sätt än så som jag lagt upp det (steg 1, 2 och 3)?

Medlem sedan mars 20015 287 inlägg
#2

2. Jo du kan lagra datumet i databasen utan att det ändras.

3. Kan du inte bara låta scriptet köras när någon loggar in eller liknande, det plockar ju hur som helst bara bort folk som inte varit där sen 60 dagar?

Medlem sedan apr. 20021 203 inlägg
#3

Ok, men blir det inte lite onödigt att köra ett script var gång någon loggar in?

Jag ska använda detta här till en större grej senare så det vore bra om lösningen är någorlunda opimerad...

Medlem sedan mars 2002777 inlägg
#4

Jag vet inte hur det är på windows-servrar, men i unix/linux kan man göra ett sk cron-jobb. Det vill säga att en viss åtgärd görs av servern vid en viss tid och dag.

Medlem sedan mars 20015 287 inlägg
#5

Det är ju även snudd på att man kan köra scriptet manuellt, 6 ggr per år ska man väl hinna med...

Medlem sedan apr. 20021 203 inlägg
#6

Ursprungligen av solbulle Det är ju även snudd på att man kan köra scriptet manuellt, 6 ggr per år ska man väl hinna med...

Jo, men som sagt. Jag ska använda det till en större senare och då måste det skötas proffesionellt!

För övrigt kör jag:
Win 2000 Adv Server med IIS...

Medlem sedan mars 20015 287 inlägg
#7

Måste bara retas lite ;)
Allvarligt talat vet jag faktist inte hur man ska lösa ditt problem på ett smidigt sätt.

Medlem sedan nov. 20018 492 inlägg
#8

Det enda du kan göra om scriptet ska köras är ju att använda det vid t.ex inloggning(vet inte vad du har för andra välbesökta sidor) eller om det kanske går att köra som en schemalagd funktion i Windows(?)...
Det finns ju nån Schema-nånting i Windows där du kanske kan ställa in att köra en viss fil varje dag...?

Medlem sedan juni 200032 967 inlägg
#9

Om du har tillgång till servern kan du använda At i kommandotolken för att schemalägga körningen av exempelvis en .vbs-fil som exekverar scriptet.

Medlem sedan apr. 20021 203 inlägg
#10

Anders:
Skulle du kunna ge ett exempel på någonting liknande (vbs-filen alltså)... :)

Medlem sedan juni 200032 967 inlägg
#11

Om du ser till att skriva ett ASP-script som utför det du vill göra med raderandet, så kan du spara vb-scriptkoden i en .vbs-fil efter några små modifieringar. Den filen kan man sedan exekvera mha kommandotolken.

För att schemalägga exekvering av den vbs-filen använder du kommandot At. För att få reda på syntaxen, öppna kommandotolken och skriv at /? och tryck enter.

Mvh,

Medlem sedan apr. 20021 203 inlägg
#12

:)

'tack

Medlem sedan nov. 20017 144 inlägg
#13

När man loggar in kan du kanske samtidigt köra:

conn.execute "delete from members where datediff('m',date,date()) > 2",,128

MVH Jesper :)

Medlem sedan apr. 2001246 inlägg
#14

Jag får inte detta att fungera. Jag kör MySQL och får meddelandet:

ADODB.Connection.1 error '80004005'

SQLState: 42000
Native Error Code: 1064
[TCX][MyODBC]You have an error in your SQL syntax near '('d', fldDatum, '22/03-2003 17:36:21') >= 1' at line 1

SQL:
"delete from tblShout where datediff('d', fldDatum, '" & Now() & "') >= 1"

Vad är fel?

Medlem sedan jan. 20032 285 inlägg
#15
delete from tblShout where datediff('d', (select fldDatum from tblShout), '" & Now() & "') >= 1

Observera att jag INTE är haj på hur/när man skriver fler SQLsatser i varandra, så det är nästan 100% att det inte funkar :)

Medlem sedan apr. 2001246 inlägg
#16

Det fungerade inte... samma felmess...

Medlem sedan feb. 2002116 inlägg
#17

Jag använder mig av nedanstående script, och det fungerar utmärkt. Jag sparar dock datumet enligt modellen: yyyy-mm-dd (t.ex. 2003-03-22), och kör sedan:

SQL = "DELETE FROM members where left(fldDatum,10) < '" & date - 60 & "'"

(left-grejen behöver du inte ha om du endast sparar datumet i den kolumnen, men eftersom du verkar vilja ha tidpunkt också, så måste du köra det).

Sebbe: Subqueries fungerar inte i MySQL.

Medlem sedan feb. 200112 078 inlägg
#18

date - 60 ? Det verkar konstigt. :)

SQL = "DELETE FROM members where left(fldDatum,10) < '" & dateadd("d", date,- 60) & "'"
264 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)