Kann man eine HTML Seite steuern?

4 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Ja geht. Allerdings brauchst du dafür einen Server bzw. einen Webspace. Da reicht so ein Gratis-Webspace.

Da es ja intern ist, muss es vermutlich nicht höchsten Ansprüchen genügen. Es soll ja nur zu schnelle Schüler bremsen.

Du bastelst dir ein PHP-Script, womit eine Seite angefordert werden kann.

Angenommen, du bist bei Seite 5:

http://www.blabala.de/index.php?page=5

Dort verlinkst du den Weiter-Button entsprechend auf http://www.blabala.de/index.php?page=6

Jetzt kannst du ein zu-weit-gehen insofern verhindern, indem du dann wieder auf die vorherige Seite zurückleitest.

Als "Datenbank", um zu speichern, wie weit gegangen werden darf, schreibst du die entsprechende Seite einfach als Zahl in eine Datei.

Musst dir noch ein weiteres PHP-Script basteln, womit du diese Zahl ändern kannst, damit du die Seiten jeweils freigeben kannst.

Das geht relativ einfach mit PHP oder Javascript.

Du kannst zB mit PHP in einer Datenbank prüfen, ob ein bestimmter Eintrag auf true ist und nur wenn er true ist zeigst du das neue HTML an, wenn nicht machst du einen Redirekt auf die alte Seite.

Btw mit Javascript kannst du das ganze auch ohne Pagereload machen, du kannst zB das PHP Skript mit einem AJAX Request aufrufen und den Rückgabewert prüfen, nur wenn dieser true ist macht der Button irgendwas, ansonst zeigt er nur eine Fehlermeldung.


buffalo23  02.03.2019, 15:14

Er scheint keine Datenbank zu haben...

0
PeterKremsner  02.03.2019, 15:19
@buffalo23

Und woher hast du diese Information?

Im Endeffekt kann die Datenbank aber natürlich auch nur eine Datei sein, sqllite machts ja am Ende auch nicht anders, das Programm ist quasi nur ein Wrapper um SQL Befehle auf eine Filewriteoperationen zu mappen.

1
buffalo23  02.03.2019, 15:29
@PeterKremsner

Auch ein SQL Server benutzt schlussendlich Filewrite-Operationen, für einen einzelnen Wert ist eine Datenbank aber idR nicht der richtige Mechanismus

0
PeterKremsner  02.03.2019, 15:53
@buffalo23

Kommt drauf an, wenn schon eine da ist, dann würd ich sie durchaus verwenden. Auf gemieteten Webservern ist meist schon eine drauf. Aber ja man kann natürlich auch mit PHP einfach ein Flag in einem File lesen.

0

Dei einfachste Lösung sieht so aus, dass Du einfach die noch nicht freigegebenen Dateien nicht auf den Server lädst. Erst wenn Du bestimmst, dass man sie lesen können soll, lädst du sie via FTP hoch.

Ein andere Lösung wäre, dass Du den Zugriff auf einzelne Dateien via .htaccess verbietest und nach und nach freigibst. Im Beispiel sind nur die Dateien seite1.html und seite2.html freigegeben, die Datei seite3.html ist noch nicht freigegeben

<Files seite1.html>
  Allow from all
</Files>
<Files seite2.html>
  Allow from all
</Files>
<Files seite3.html>
  Deny from all
</Files>

Durch die genannten Methoden würdest du nicht nur verhindern, dass man mit einem Klick auf den "weiter"-Button zu früh weiterblättern kann; du würdest auch verhindern, dass man die Adresse "seite3.html" in den Browser eintippt.

Alex

Das würde zB mit SignalR gehen, ist aber aufwändig wenn du es nicht kennst

sonst kannst du auch einen kontinuierlichen Check auf eine bestimmte Url machen, ob dort zB eine Seite (Response 200) existiert, wenn das so ist dann wird der Button aktiviert, sonst nicht

Dann lädst du da eine leere Seite hoch sobald alle weiter dürfen


Domilp55 
Fragesteller
 02.03.2019, 15:09

Danke :) Weißt du wie man das nennt... Damit ich Googlen kann?

0
buffalo23  02.03.2019, 15:13
@Domilp55

Nein.. Musst halt kontinuierlich eine while Schleife laufen lassen oder einen Timer mit Callback, und dann mit einem Web Request prüfen, ob 200 von einer bestimmten Seite zurückkommt. Wenn ja dann aktiviere den Button

1
regex9  02.03.2019, 15:17
@Domilp55

AJAX / long polling oder besser, du erstellst eine Verbindung via WebSockets.

2
buffalo23  02.03.2019, 15:31
@regex9

Ja, genau das macht SignalR, inkl. Fallback auf SSE oder Long Polling, denn Websockets müssen sowohl der Server wie auch der Browser unterstützen

Es ist allerdings etwas „kompliziert“ einzurichten wenn man keine Erfahrung hat, eine einfache while Schleife die kontinuierlich abläuft geht in reinem Javascript ohne weitere Libraries oder Fallunterscheidungen

0
regex9  02.03.2019, 17:56
@buffalo23

Nein, kompliziert ist es nicht. Für PHP bspw. reicht es aus, eine Bibliothek wie Ratchet einzubinden. WebSockets werden von allen modernen Browsern unterstützt, die nicht Opera Mini heißen.

0