PHP +[MYSQL] Datensätze automatisch nach 14 Tagen löschen

raven16

Lieutenant
Registriert
Nov. 2008
Beiträge
580
Hi,

ich hab ne Regristrierung zusammengebastelt und möchte, dass jeder neu regristrierte Account nach 14 Tage wieder gelöscht wird, sollte dieser nicht aktiviert sein, d.h. der Aktivierungslink aus der zugesandten Email nicht angeklickt worden sein.

Ich könnte eine Überprüfung der Datenbank bei Seitenaufruf oder Login eines anderen Users einbauen, die die Datenbank auf unaktivierte Accounts überprüft und löscht, wenn diese älter als 14 Tage sind, aber ich glaube damit bau ich mir nur unnötigen Traffic ein.

Oder ist der Datenaufwand doch so gering, das es keine Rolle spielt?
Hat jemand vielleicht eine sinnvollere Idee als meine?

Danke im Vorraus
 
Ein Cronjob ist mit Sicherheit die bessere Idee. Mit dessen Hilfe kannst du zeitgesteuert ein Skript ausführen, welches dir die entsprechenden Datensätze löscht. Eine tägliche Ausführung des Cronjobs sollte bei deinem Anliegen ausreichen.
 
Hört sich gut an,

aber wie setze ich das praktisch um?
soll ich eine Tabelle in der Datenbank erstellen, meinetwegen "cronjob"
und in dieser tabelle habe ich dann die Spalten job und zeit

job fülle ich dann mit dem eintrag accountactive

und zeit kommt dann timestamp rein

und bei seitenaufruf oder login eines users nehme ich den timestamp und überprüfe ob dieser am heutigen tag schon gemacht wurde und wenn nicht dann wird eine abfrage aufgerufen die veraltete accounts löscht
anschließend wird dann der timestamp an dem die abfrage ausgeführt wurde eingetragen in den cronjobs und bei der nächsten überprüfung überspring der die abfrage?^^
 
Nein.

Vorneweg: Für Cronjobs wird ein Unix-Betriebssystem benötigt. In Windows-Umgebungen müsstest du nach geplanten Tasks oder ähnlichem suchen. Zudem ist ein Cronjob nicht unbedingt bei jedem Webhoster/Webpaket verfügbar. Demnach solltest du zuerst prüfen, ob dein Hoster bei deinem Paket dies unterstützt.

Cronjobs funktionieren etwas anders, als du dir das vorstellst. Sie werden ganz unabhängig davon, ob jemand deine Seite besucht oder nicht, ausgeführt. Wann sie ausgeführt werden, kann man meist bequem per Webinterface einstellen. Ein Cronjob an sich ist nichts weiter als ein zeitgesteuertes Ausführen eines Skriptes.
 
puh okay :D
dann muss ich mal gucken, ob mein webhoster das unterstützt
Ergänzung ()

also mein webserver kann des net :(

wie könnte ich das problem denn sonst lösen?
 
Zurück
Oben