Gegen Bilderklau - Das Original (https://www.gegen-bilderklau.net/index.php)
- Design, Website, Copyright (https://www.gegen-bilderklau.net/board.php?boardid=80)
--- Homepagehilfe (https://www.gegen-bilderklau.net/board.php?boardid=27)
---- Homepagehilfe - Archiv (https://www.gegen-bilderklau.net/board.php?boardid=139)
----- [PHP & MySQL] Zeitliche Begrenzung | Brauche HILFE ! (https://www.gegen-bilderklau.net/thread.php?threadid=150908)


Geschrieben von .Senseless am 22.02.2009 um 20:00:

  Zeitliche Begrenzung | Brauche HILFE !

Hallo!

Ich habe da ein Problem: Wie kann ich es realisieren, dass ein Benutzer (Login mit Sessions) eine Seite nur einmal am Tag aufrufen darf?

Bis jetzt habe ich es immer mit PHP gemacht: Bei jedem Aufruf der Seite die Datei "aufruf_BENUTZERNAME_DATUM" aufrufen und prüfen, ob deren Inhalt 1 ist. Wenn nicht, darf man die Seite sehen und PHP schreibt eine 1 in die Datei. Wenn man die Seite nochmal aufruft, steht eine 1 darin und man sieht die Seite nicht.
Doch das würde bei mehr Mitgliedern zu jede Menge Dateien führen: Sagen wir mal, ich habe 5 Mitglieder. Dann bekomme ich jeden Tag bis zu 5 neue, eigentlich unnütze Dateien! Ich möchte aber auch nicht jeden Abend die Dateien vom vergangenen Tag löschen.

Ich habe überlegt, es wieder genauso zu machen: Nur mit MySQL - also wird die 1/das aktuelle Datum in die Datenbank geschrieben, beim jeweiligen Benutzer. Und dann müsste ich einen Cronjob anlegen, der bewirkt, dass um Mitternacht jede dieser "Seitenaufruf"-Spalten wieder auf 0 gestellt wird. Und auf der Seite, die man nur einmal am Tag aufrufen darf, gibts dann eine Überprüfung: "Ist das Datum in der DB mit dem aktuellen übereinstimmend/Ist eine 1 in der DB? Wenn ja: echo "Das geht nur einmal am Tag" Wenn nein: Seite anzeigen"

Das ist aber irgendwie ... umständlich und auch nicht so toll.
Es wäre zwar okay, aber ich wollte hier mal nachfragen, ob es nicht auch eine bessere Methode gibt. Hat niemand eine, werde ich es wohl so machen müssen. Beim Googlen habe ich nur etwas mit Cookies gefunden, aber die kann man abschalten. Das ist dann nicht so toll =D

Also, hat jemand eine Idee?

Freue mich über jeden Vorschlag,

.Senseless



Geschrieben von cll am 23.02.2009 um 16:31:

 

Deine MySQL-Idee ist richtig. Eine Spalte in der Usertabelle für die Seite, die auf 1 gesetzt wird. Das auf 0 setzen um Mitternacht ist 1 ganz kurzer Befehl.
So umständlich ist das gar nicht smile Wenn du Useranmeldung hast und die in der MySQL-Tabelle speicherst ist das wirklich nur minimaler Aufwand!



Geschrieben von .Senseless am 23.02.2009 um 18:11:

 

Ja, ich verwalte die Mitglieder über die DB.

Danke, dann werde ichs wohl so machen Augenzwinkern


Forensoftware: Burning Board, entwickelt von WoltLab GmbH