Zeitrechnung - Abonnement

11/28/2018 14:14 Legithos#1
Hallo ihr Lieben,

mal wieder ne Frage zu PHP und der Zeitrechnung. Wenn ich auf meiner Seite ein Abonnementsystem einbauen will und zb ein Abonnement auf 24 Stunden laufen lassen will, bzw nach 24 Stunden auslaufen lassen will habe ich doch folgendes Problem, wofür ich um eine Lösung dankbar wäre.

Ich kann zwar in der Datenbank die 24 Stunden als Zeit speichern (bei Abschluss des Abonnement die Zeit nehmen und 24 Stunden draufrechnen), jedoch liest er die Daten der Datenbank um abzugleich, ob das Abonnement noch aktuell ist nur ab, wenn ich die Seite neu lade ? Also bin ich doch so lange Abonnent, bis ich die Seite nach 24 Stunden neu lade ?

Ist das der Regelfall und anders gehts nicht, oder besteht die Möglichkeit die Zeit per PHP/JS im Hintergrund mitlaufen zu lassen und sekundlich abzugleichen, ob das Abonnement noch aktuell ist ?

Wie wäre denn hier die Musterlösung ?

Danke und Grüße,

Legithos
11/28/2018 14:28 False#2
Quote:
Originally Posted by Legithos View Post
Hallo ihr Lieben,

mal wieder ne Frage zu PHP und der Zeitrechnung. Wenn ich auf meiner Seite ein Abonnementsystem einbauen will und zb ein Abonnement auf 24 Stunden laufen lassen will, bzw nach 24 Stunden auslaufen lassen will habe ich doch folgendes Problem, wofür ich um eine Lösung dankbar wäre.

Ich kann zwar in der Datenbank die 24 Stunden als Zeit speichern (bei Abschluss des Abonnement die Zeit nehmen und 24 Stunden draufrechnen), jedoch liest er die Daten der Datenbank um abzugleich, ob das Abonnement noch aktuell ist nur ab, wenn ich die Seite neu lade ? Also bin ich doch so lange Abonnent, bis ich die Seite nach 24 Stunden neu lade ?

Ist das der Regelfall und anders gehts nicht, oder besteht die Möglichkeit die Zeit per PHP/JS im Hintergrund mitlaufen zu lassen und sekundlich abzugleichen, ob das Abonnement noch aktuell ist ?

Wie wäre denn hier die Musterlösung ?

Danke und Grüße,

Legithos
Kommt immer drauf an was deine Anwendung macht, wenn diese eh schon ajax request machst dann könntest du dort ein json zurückgeben wenn das abonnement abgelaufen ist.
Im Frontent leitest du den user einfach auf die gewünschte Seite weiter.

Wenn du noch kein Ajax nutzt dann nutzt du es halt ab jetzt :P

Also Antwort: Ajax + setinterval Funktion.
11/28/2018 15:38 Legithos#3
Und isses ohne Javascript denn irgendwie gut möglich ?
11/28/2018 15:53 MrCatGardens#4
Quote:
Originally Posted by Legithos View Post
Und isses ohne Javascript denn irgendwie gut möglich ?
Selbst dann musst du die response ja ans frontend weitergeben. Meines Wissens nach ohne Ajax/js dann nicht möglich. Vielleicht noch websockets. Hier kommst aber auch glaube ich nicht um js herum.
11/28/2018 16:12 Devsome#5
Kannst die Seite doch mit http-equiv="refresh" alle X minuten neu laden lassen. Dann einfach prüfen ob der Benutzer noch die Rechte hat. So könnte man es ohne Javascript/Ajax lösen. Zwar dirty aber würde gehen
11/28/2018 18:42 JustinMind#6
Von letzterer Lösung würde ich absolut abraten.
Egal, was der Benutzer gerade macht, er wird unterbrochen und die Seite lädt.
Ich denke kein Nutzer wünscht sich einen regelmäßiges Neuladen der Seite.
In jedem Fall würde ich auf Javascript zurückgreifen, um die UserExperience (UX) zu verbessern.

Doch stellt sich die Frage, wie stark du auf Javascript künftig setzen möchtest.
Jenachdem ist es vielleicht einen Aufwand wert sich Bibliotheken dazu anzuschauen.

Wenn du weißt, wie viel Aufwand du aufbringen möchtest, kann man recherchieren, ob und welche `librabrary` oder sogar ein `Framework` für dich in Frage kommen kann, alternativ eben wie gewohnt das Rad neu erfinden und 'zu Fuß' die Anfrage programmieren.