Hallo,
if (!empty($_GET["page"]) && preg_match("/^[a-z]+$/i", $_GET["page"]) == 1) {
Wenn der URL-Parameter nicht leer ist, stelle die Bedingung auf, dass der URL-Parameter nach der Variable ?page= nur aus Buchstaben von A bis Z besteht. Wozu wird das gemacht? Sicherheit?
in gewisser Weise ja. Damit ist sichergestellt, dass der Parameter nicht irgendwelche Zeichen enthält (Slash, Punkte o.ä.), mit denen man im Verzeichnisbaum rumwandern und ganz superinteressante Daten abgreifen könnte.
Das ^ ist ein Anker und setzt, denke ich, dort an, wo der URL-Parameter beginnt, nämlich nach dem ?page=.
Einfacher gesagt: Am Stringanfang.
Ich schätze, das +$ steht wohl für die Dateiendung (also in dem Fall .php)
Nein. Das Pluszeichen bezieht sich auf das verhergehende Zeichen (in diesem Fall die Zeichenklasse [a-z]) und bedeutet: Mindestens eins davon, gern aber auch mehr.
aber was soll das /i bedeuten?
Case insensitive, so dass dein Suchmuster auch Großbuchstaben matcht.
Sollte die Datei nicht gefunden werden und bleibt die Variable $page_found deshalb auf false, dann wird standardmäßig die Seite game.php aufgerufen.
Und warum so umständlich? Ein einfaches else würde genügen, und du bräuchtest dich und andere Leser nicht mit einer zusätzlichen Flag-Variablen zu verwirren.
Einen schönen Tag noch
Martin
Мир для України.