login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Account verwijderen na aantal dagen.

Offline Nanon - 14/02/2007 20:44
Avatar van NanonPHP interesse Hoi,

Ik ben momenteel bezig met het scripten van mijn website en heb zitten brainstormen over hoe je het beste een account of meerdere accounten kan verwijderen die ouder zijn dan een opgegeven aantal dagen.

Als een gebruiker zich aanmeld dan komt hij eerst in een aparte database tabel te staan, laten we zeggen 'tabel1'. Als de gebruiker zijn account geactiveerd heeft via de link dan word de info van tabel1 naar tabel2 geschreven en de rij uit tabel1 verwijderd.

Maar als ik nu wil dat als gebruikers langer dan 2 dagen in tabel1 staan automatisch verwijderd worden loop ik vast.

Want hoe kan ik nu het beste gebruikers die zich geregistreerd hebben en hun account nog niet geactiveerd hebben binnen 2 dagen automatisch verwijderen?

Zelf dacht ik om een script te schrijven een met een cronjob deze per 2 dagen uit te laten voeren, maar stel het duurt nog 1 dag voordat de cronjob zich uitvoerd, en iemand meld zich aan en activeerd zijn profiel nog niet op die dag, de cronjob voert het uit, dan is die user dus ook verwijderd.

Hoe kan ik dit het beste oplossen?

7 antwoorden

Gesponsorde links
Offline nielsvdwal - 14/02/2007 20:48
Avatar van nielsvdwal PHP gevorderde datum in database zetten.. en elk uur een cronjob laten uitvoeren of datum in database 2 dagen ouder is dan datum van nu.. en dan verwijderen..
Offline Godlord - 14/02/2007 20:49
Avatar van Godlord PHP gevorderde 1) Cronjobs
2) iets met date() - $timestamp ofzoiets maar dat weet ik niet.
3) takenplanner(als je het zelf host )
Offline Nanon - 14/02/2007 20:55
Avatar van Nanon PHP interesse @ nielsvdwal;

Datum wordt sowieso in de database gezet, alleen ik zat telkens te brainstormen over het uitvoeren in 2 dagen. Maar per dag is natuurlijk ook een optie. Dit wordt hem tot nu toe, mits er nog betere ideeën zijn?

@ Godlord;

Met cronjobs sowieso, ik kan het ook wel doen dat hij pas checkt als iemand zijn profiel activeerd, maar mocht er op een dag 20 mensen aanmelden, dan voert hij 20 keer op een dag een query uit wat eigenlijk ook 1 keer per dag kan  
Offline ThAlmighty - 14/02/2007 21:14
Avatar van ThAlmighty HTML beginner @niels,
zeker geen cronjob met die taak elk uur laten doen. Ik zou hem om de dag pakken. Zoveel serverruimte kost zo'n database record niet. 1 of 2 dagen is ideaal vind ik.
Offline Voldemort - 14/02/2007 21:18
Avatar van Voldemort PHP ver gevorderde Elke keer als er iemand naar een pagina (gelijk welke) gaat controleren of er accounts verwijderd moeten worden, zoja, doe dat, zonee, doe niks.

Op deze manier heb je wel altijd een query meer, maar ben je zeker dat men na 48 uur en 1 seconde niet meer kan activeren. Je record staat er dan misschien langer dan 48 uur in, maar als ie dan plots toch wil activeren gaat ie naar de activatiepagina, maar helemaal bovenin die pagina zal zijn account toch verwijderd worden.
Offline Rik - 14/02/2007 21:20
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Ik zou alle accounts in een tabel zetten en een veld "state" toevoegen. Als je er een aanmaakt krijgt dat veld de waarde unactivated oid, als iemand zich op tijd registreert wordt dat veld iets als active.

Als je in een cronjob elke dag / elk uur een query als deze uitvoert:
  1. UPDATE leden SET state = disabled WHERE create_time + 2dagen < nu
zouden de accounts vanzelf uitgeschakeld moeten worden. Je kan de accounts met die query ook verwijderen, maar dat zou ik pas doen na een langere tijd.
Offline Gerard - 14/02/2007 22:57
Avatar van Gerard Ouwe rakker Elke dag een cronjob uitvoeren voor accounts die ouder zijn dan 48 uur. Of het nu precies 48 uur is of misschien 56 uur dat iemand nog kan activeren dat boeit niet.
1) Als ze het account al wilden/konden activeren doen ze het absoluut binnen die tijd
2) Of ze nu 48 uur of 56 krijgen (indirect) heeft geen gevolgen voor de werking van je site oid (het is niet alsof ze betalen voor precies 48hr access ofzo)

Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.184s