Sie befinden sich hier im Forenarchiv von phpforum.de wenn Sie direkt ins Forum möchten, klicken Sie bitte hier. Zur Startseite kommen Sie hier.

Userzugriff automatisch nach Ablauf deaktivieren, aber wie?

Hi,

ich möchte gerne eine Login und Mitgliederverwaltung realisieren, die mir die Möglichkeit bietet einen User automatisch nach einem zuvor von mir eingestellten Datum zu deaktivieren.

Das ganze soll per PHP und MySQL laufen.

Also ich lade mir die User und definiere im Adminbereich das Enddatum zur Zugriffsberechtigung des entsprechenden Users.

Vor Umsetzung der automatischen Deaktivierung möchte ich gerne, dass mir z.B. 5 Tage zuvor eine Infomail zugesandt wird, die mich über die anstehende Deaktivierung des entsprechenden Users informiert.

Wie muss ich da am besten vorgehen?
Reicht es z.B. in der Tabelle das entsprechende Enddatum zu setzen und per if im PHP-Script den Rest zu verwalten?

Also z.B.

if ($Enddate > $Nowdate)

Wäre für Hilfe, Tipps und Codeschnipsel, wie gegebenenfalls Linkverweise wo ich was finde sehr dankbar.

Gruß Longeiland

Hier gehts zum Orginal Eintrag "Userzugriff automatisch nach Ablauf deaktivieren, aber wie?" im Forum

Antworten

Zitat:
Reicht es z.B. in der Tabelle das entsprechende Enddatum zu setzen und per if im PHP-Script den Rest zu verwalten?
Ja, das könnte man. Man kann aber auch einen SELECT in MySQL direkt so schreiben, dass er alle User ausspuckt, die in 5 Tagen deaktiviert werden sollen.

Wichtig ist die Entscheidung, in welchem Format Du das Tabellenfeld anlegst, wo dieses Ende-Datum abgespeichert wird. Wenn Du möchtest, dass MySQL direkt die entsprechenden Sätze findet, wäre es sinnvoll, das Feld mit dem Type DATE anzulegen. Dadurch stehen Dir mächtige MySQL-Funktionen zur Verfügung wie beispielsweise DATE_ADD() oder DATE_SUB() - mit diesen Funktionen kann man ermitteln, wie weit bestimmte Tage vom heutigen Tag entfernt sind (beispielsweise).

Die Alternative (die ich persönlich nicht so gut finde) wäre, das Ende Datum in ein INTEGER Feld zu legen und mit dem PHP Timestamp zu versorgen. Da werde große Zahlen gespeichert, die der Anzahl Sekunden entspricht, welche seit 1.1.1970 vergangen sind - MySQL kann damit nur wenig rechnen, Du mußt dann alle Berechnungen in PHP durchführen und die entsprechenden SELECTs daraus ableiten.

EIn weiteres Problem ist, dass Dein "Benachrichtigungsprogramm" ja irgendwie "angestoßen" werden muss - was nicht geht, ist dass das Problem ewig nudelt und jeden Tag einmal nachschaut, wer in 5 Tagen gelöscht werden soll. Es muss also irgendwie sichergestellt werden, dass dieses Programm auch wirklich jeden Tag, am besten zu einer bestimmten Uhrzeit auch ausgeführt wird. Das kann man mehr oder minder "händisch" machen, indem man einfach im Browser die URL eintippt, oder man baut das im normalen Loginscript ein, dass es, wenn es aufgerufen wird, nachschaut, ob es HEUTE schon die entsprechenden User ermittelt hat und wenn noch nicht, dann tut es das eben selbst und markiert irgendwo in der Datenbank, dass für HEUTE die Benachrichtigung schon erfolgt ist. Das hat nur das kleine Problem, dass niemand sicherstellen kann, dass das Script wirklich mindestens einmal pro Tag auferufen wird - das hängt von der Popularität der Seite ab.

Deswegen gibt es (wenn es der eigene Webserver ist) auch die sichere Variante, dass man einen sog. "Cronjob" damit beauftragt - da kümmert sich das Betriebssystem darum, dass das auch wirklich jeden Tag zur gleichen Zeit ausgeführt wird, ohne dass eine User-Interaktion notwendig wäre.

Das ist so ziemlich alles, was mir dazu einfällt. Mittlere Kenntnisse in PHP und MySQL sind Pflicht zur Realisierung dieses Vorhabens.


2.

Hallo Rana, danke für deine Antwort.

Nun meine mittleren Kenntnisse sollten ausreichend sein.
Ansonsten gibt es ja u.a. dieses tolle Forum um nachzufragen. ;-)

Bezüglich der automatisierten Deaktivierung habe ich z.B. bei dem Bannerverwaltungstool "PHPAdsNew" zu finden unter: http://phpadsnew.com/two/ eine Möglichkeit, einenBanner eines Members automatisch zu Deaktivieren. Da wird mir z.B. eine automatische Benachrichtigung gesendet.

Aber wie ich das losgelöst von einer Bannerverwaltung betreibe... Das ist noch die Frage!

Vielleicht findet sich ja hier auch jemand, der mir für faires Geld entweder die PHPAdsNew-Varante an meine Bedürfnisse umbastelt oder mir ein bestehendes Script zur freien Bearbeitung etc. zukommen lässt?

Freue mich über weitere Antworten.

Gruß
Longeiland


3.

Zitat:
Vielleicht findet sich ja hier auch jemand, der mir für faires Geld entweder die PHPAdsNew-Varante an meine Bedürfnisse umbastelt oder mir ein bestehendes Script zur freien Bearbeitung etc. zukommen lässt?
Wieviel du hergibst, ist deine Sache, kommt dann halt drauf an, ob jemand Interesse hat:
Standard-Antwort:
Deine Frage enthält anscheinend ein Angebot, jemanden etwas für dich Programmieren zu lassen. Für diese Angebote sind die Foren nicht gedacht, hier geht es um konkrete Probleme bei der eigenen Programmierung, also die Diskussion technischer Probleme.

Falls Du etwas programmiert bekommen möchtest, kannst Du ein Angebot mit unserem entsprechenden Formular eintragen.


4.

So, habe nun auch mein "Jobangebot" eingetragen.
Wo kann ich dieses einsehen und wie erhalte ich entsprechende Antworten?

Dennoch bin ich auch an einer Weiterführung dieses Beitrages, hier an dieser Stelle interessiert, wenn es andere auch sind.

Gruß und Danke
Longeiland


Hier gehts zum Orginal Eintrag "Userzugriff automatisch nach Ablauf deaktivieren, aber wie?" im Forum
 
phpforum.de | Impressum | Handy Bundles