Wie rufe ich mit URL-Parametern dynamisch Inhalte auf?
bearbeitet von
Schau mal, das Ganze sieht jetzt so bei mir aus:
~~~ PHP
$page_found = false;
if (!empty($_GET["page"])
&& preg_match("/^[a-z]+$/i", $_GET["page"]) == 1)
{
$pageFile = __DIR__ . "/page/" . $_GET["page"] . ".php";
if (file_exists($pageFile))
{
include $pageFile;
$page_found = true;
}
}
if (!$page_found)
{
include __DIR__ . "/page/game.php";
}
~~~
Ich glaube, ich habe jetzt auch einigermaßen den Aufbau dieses Scripts verstanden. Ich versuche das mal in Worten zu formulieren und würde gerne noch einige Rückfragen stellen.
~~~ PHP
$page_found = false;
~~~
Erst mal wir die Variable auf *false* gestellt, damit ihr Status später vom Script abgefragt werden kann.
~~~ PHP
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?
Das **^** ist ein Anker und setzt, denke ich, dort an, wo der URL-Parameter beginnt, nämlich nach dem **?page=**. Ich schätze, das **+$** steht wohl für die Dateiendung (also in dem Fall .php), aber was soll das **/i** bedeuten?
~~~ PHP
{
$pageFile = __DIR__ . "/page/" . $_GET["page"] . ".php";
if (file_exists($pageFile))
{
include $pageFile;
$page_found = true;
}
}
~~~
Danach wird die Variable **$pageFile** als Pfad definiert. __DIR__ bedeutet, man geht vom aktuellen Verzeichnis aus und hängt dann den Unterordner *page* dran, dann den Namen des URL-Paramters, der durch den Link aufgerufen wird und schließlich die Datei-Endung.
Wenn die Datei existiert, schreibe das *include* und setze die anfängliche Variable auf true. An dieser Stelle endet das Script, wenn die Datei bzw. Seite gefunden wurde.
~~~ PHP
if (!$page_found)
{
include __DIR__ . "/page/game.php";
}
~~~
Sollte die Datei nicht gefunden werden und bleibt die Variable **$page_found** deshalb auf *false*, dann wird standardmäßig die Seite game.php aufgerufen.
Hier könnte man es wohl noch so schreiben, dass es nicht immer nur mit der Datei *game.php* funktioniert, sondern z.B. die Datei aufgerufen wird, die den Zusatz *.default* enthält, also etwa *game.default.php*, dann wäre man nicht so limitiert, wäre mal keine game.php da.
Wie müsste man denn den Einzeiler umschreiben, damit das obige (ausführliche) ausgeführt wird. Momentan sieht er so aus:
~~~ PHP
$pageFile = ".//" . (empty($_GET["page"]) || !preg_match("/^[a-z]+$/i", $_GET["page"]) ? "game" : $_GET["page"]) . ".page.php";
file_exists($pageFile) && include $pageFile;
~~~
Meine Versuche haben bisher leider nicht geklappt.
___
Entschuldigt den langen Posting, aber ich wollte noch auf etwas zurückkommen. Oben hast du als best practice Folgendes geschrieben:
> Also - best practice wäre:
>
> - ~~die URLs in den Tabs ohne Fragezeichen und ohne # notieren. Also genau so, wie sie jetzt sind.~~
> - am Server in der .htaccess per mod_rewrite dafür sorgen, dass Tab-Namen als ?tab=... an index.php angehängt werden. Falls irgendein Heini direkt die index.php abruft, kommt halt index.php?tab=index.php an. Ja und? Ist ein ungültiger Tab-Name, und:
> - ~~in index.php den tab-Parameter verarbeiten **und auf gültige Tab-Namen validieren**. Für ungültige oder fehlende Tabnamen das Default-Tab includen~~
> - als progressive enhancement einen click-Handler auf die Tabs legen, der die Page per Ajax holt und per pushState so tut, als wär's über den Server gelaufen.
Ich habe mal gestrichen, was ich bereits leisten kann.
Übrig bleibt also die Geschichte mit ***.htaccess*** (würde ich zum Schluss angehen) und das mit dem ***pushState***. Ich habe nicht ganz verstande, wie das funktioniert und wozu das gut ist (Sicherheit?).
Boris
Wie rufe ich mit URL-Parametern dynamisch Inhalte auf?
bearbeitet von
Schau mal, das Ganze sieht jetzt so bei mir aus:
~~~ PHP
$page_found = false;
if (!empty($_GET["page"])
&& preg_match("/^[a-z]+$/i", $_GET["page"]) == 1)
{
$pageFile = __DIR__ . "/page/" . $_GET["page"] . ".php";
if (file_exists($pageFile))
{
include $pageFile;
$page_found = true;
}
}
if (!$page_found)
{
include __DIR__ . "/page/game.php";
}
~~~
Ich glaube, ich habe jetzt auch einigermaßen den Aufbau dieses Scripts verstanden. Ich versuche das mal in Worten zu formulieren und würde gerne noch einige Rückfragen stellen.
~~~ PHP
$page_found = false;
~~~
Erst mal wir die Variable auf *false* gestellt, damit ihr Status später vom Script abgefragt werden kann.
~~~ PHP
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?
Das **^** ist ein Anker und setzt, denke ich, dort an, wo der URL-Parameter beginnt, nämlich nach dem **?page=**. Ich schätze, das **+$** steht wohl für die Dateiendung (also in dem Fall .php), aber was soll das **/i** bedeuten?
~~~ PHP
{
$pageFile = __DIR__ . "/page/" . $_GET["page"] . ".php";
if (file_exists($pageFile))
{
include $pageFile;
$page_found = true;
}
}
~~~
Danach wird die Variable **$pageFile** als Pfad definiert. __DIR__ bedeutet, man geht vom aktuellen Verzeichnis aus und hängt dann den Unterordner *page* dran, dann den Namen des URL-Paramters, der durch den Link aufgerufen wird und schließlich die Datei-Endung.
Wenn die Datei existiert, schreibe das *include* und setze die anfängliche Variable auf true. An dieser Stelle endet das Script, wenn die Datei bzw. Seite gefunden wurde.
~~~ PHP
if (!$page_found)
{
include __DIR__ . "/page/game.php";
}
~~~
Sollte die Datei nicht gefunden werden und bleibt die Variable **$page_found** deshalb auf *false*, dann wird standardmäßig die Seite game.php aufgerufen.
Hier könnte man es wohl noch so schreiben, dass es nicht immer nur mit der Datei *game.php* funktioniert, sondern z.B. die Datei aufgerufen wird, die noch den Zusatz *.default* enthält, also etwa *game.default.php*, dann wäre man nicht so limitiert, wäre mal keine game.php da.
Wie müsste man denn den Einzeiler umschreiben, damit das obige (ausführliche) ausgeführt wird. Momentan sieht er so aus:
~~~ PHP
$pageFile = ".//" . (empty($_GET["page"]) || !preg_match("/^[a-z]+$/i", $_GET["page"]) ? "game" : $_GET["page"]) . ".page.php";
file_exists($pageFile) && include $pageFile;
~~~
Meine Versuche haben bisher leider nicht geklappt.
___
Entschuldigt den langen Posting, aber ich wollte noch auf etwas zurückkommen. Oben hast du als best practice Folgendes geschrieben:
> Also - best practice wäre:
>
> - ~~die URLs in den Tabs ohne Fragezeichen und ohne # notieren. Also genau so, wie sie jetzt sind.~~
> - am Server in der .htaccess per mod_rewrite dafür sorgen, dass Tab-Namen als ?tab=... an index.php angehängt werden. Falls irgendein Heini direkt die index.php abruft, kommt halt index.php?tab=index.php an. Ja und? Ist ein ungültiger Tab-Name, und:
> - ~~in index.php den tab-Parameter verarbeiten **und auf gültige Tab-Namen validieren**. Für ungültige oder fehlende Tabnamen das Default-Tab includen~~
> - als progressive enhancement einen click-Handler auf die Tabs legen, der die Page per Ajax holt und per pushState so tut, als wär's über den Server gelaufen.
Ich habe mal gestrichen, was ich bereits leisten kann.
Übrig bleibt also die Geschichte mit ***.htaccess*** (würde ich zum Schluss angehen) und das mit dem ***pushState***. Ich habe nicht ganz verstande, wie das funktioniert und wozu das gut ist (Sicherheit?).
Boris
Wie rufe ich mit URL-Parametern dynamisch Inhalte auf?
bearbeitet von
Schau mal, das Ganze sieht jetzt so bei mir aus:
~~~ PHP
$page_found = false;
if (!empty($_GET["page"])
&& preg_match("/^[a-z]+$/i", $_GET["page"]) == 1)
{
$pageFile = __DIR__ . "/page/" . $_GET["page"] . ".php";
if (file_exists($pageFile))
{
include $pageFile;
$page_found = true;
}
}
if (!$page_found)
{
include __DIR__ . "/page/game.php";
}
~~~
Ich glaube, ich habe jetzt auch einigermaßen den Aufbau dieses Scripts verstanden. Ich versuche das mal in Worten zu formulieren und würde gerne noch einige Rückfragen stellen.
~~~ PHP
$page_found = false;
~~~
Erst mal wir die Variable auf *false* gestellt, damit ihr Status später vom Script abgefragt werden kann.
~~~ PHP
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?
Das **^** ist ein Anker und setzt, denke ich, dort an, wo der URL-Parameter beginnt, nämlich nach dem **?page=**. Ich schätze, das **+$** steht wohl für die Dateiendung (also in dem Fall .php), aber was soll das **/i** bedeuten?
~~~ PHP
{
$pageFile = __DIR__ . "/page/" . $_GET["page"] . ".php";
if (file_exists($pageFile))
{
include $pageFile;
$page_found = true;
}
}
~~~
Danach wird die Variable **$pageFile** als Pfad definiert. __DIR__ bedeutet, man geht vom aktuellen Verzeichnis aus und hängt dann den Unterordner *page* dran, dann den Namen des URL-Paramters, der durch den Link aufgerufen wird und schließlich die Datei-Endung.
Wenn die Datei existiert, schreibe das *include* und setze die anfängliche Variable auf true. An dieser Stelle endet das Script, wenn die Datei bzw. Seite gefunden wurde.
~~~ PHP
if (!$page_found)
{
include __DIR__ . "/page/game.php";
}
~~~
Sollte die Datei nicht gefunden werden und bleibt die Variable **$page_found** deshalb auf *false*, dann wird standardmäßig die Seite game.php aufgerufen.
Hier könnte man es wohl noch so schreiben, dass es nicht immer nur mit der Datei *game.php* funktioniert, sondern z.B. die Datei aufgerufen wird, die noch den Zusatz *.default* enthält, also etwa *game.default.php*, dann wäre man nicht so limitiert, wäre mal keine game.php da.
Wie müsste man denn den Einzeiler umschreiben, damit das obige (ausführliche) ausgeführt wird. Momentan sieht er so aus:
~~~ PHP
$pageFile = ".//" . (empty($_GET["page"]) || !preg_match("/^[a-z]+$/i", $_GET["page"]) ? "game" : $_GET["page"]) . ".page.php";
file_exists($pageFile) && include $pageFile;
~~~
Meine Versuche haben bisher leider nicht geklappt.
___
Entschuldigt den langen Posting, aber ich wollte noch auf etwas zurückkommen: Oben hast du als best practice Folgendes geschrieben.
> Also - best practice wäre:
>
> - ~~die URLs in den Tabs ohne Fragezeichen und ohne # notieren. Also genau so, wie sie jetzt sind.~~
> - am Server in der .htaccess per mod_rewrite dafür sorgen, dass Tab-Namen als ?tab=... an index.php angehängt werden. Falls irgendein Heini direkt die index.php abruft, kommt halt index.php?tab=index.php an. Ja und? Ist ein ungültiger Tab-Name, und:
> - ~~in index.php den tab-Parameter verarbeiten **und auf gültige Tab-Namen validieren**. Für ungültige oder fehlende Tabnamen das Default-Tab includen~~
> - als progressive enhancement einen click-Handler auf die Tabs legen, der die Page per Ajax holt und per pushState so tut, als wär's über den Server gelaufen.
Ich habe mal gestrichen, was ich bereits leisten kann.
Übrig bleibt also die Geschichte mit ***.htaccess*** (würde ich zum Schluss angehen) und das mit dem ***pushState***. Ich habe nicht ganz verstande, wie das funktioniert und wozu das gut ist (Sicherheit?).
Boris
Wie rufe ich mit URL-Parametern dynamisch Inhalte auf?
bearbeitet von
Schau mal, das Ganze sieht jetzt so bei mir aus:
~~~ PHP
$page_found = false;
if (!empty($_GET["page"])
&& preg_match("/^[a-z]+$/i", $_GET["page"]) == 1)
{
$pageFile = __DIR__ . "/page/" . $_GET["page"] . ".php";
if (file_exists($pageFile))
{
include $pageFile;
$page_found = true;
}
}
if (!$page_found)
{
include __DIR__ . "/page/game.php";
}
~~~
Ich glaube, ich habe jetzt auch einigermaßen den Aufbau dieses Scripts verstanden. Ich versuche das mal in Worten zu formulieren und würde gerne noch einige Rückfragen stellen.
~~~ PHP
$page_found = false;
~~~
Erst mal wir die Variable auf *false* gestellt, damit ihr Status später vom Script abgefragt werden kann.
~~~ PHP
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?
Das **^** ist ein Anker und setzt, denke ich, dort an, wo der URL-Parameter beginnt, nämlich nach dem **?page=**. Ich schätze, das **+$** steht wohl für die Dateiendung (also in dem Fall .php), aber was soll das **/i** bedeuten?
~~~ PHP
{
$pageFile = __DIR__ . "/page/" . $_GET["page"] . ".php";
if (file_exists($pageFile))
{
include $pageFile;
$page_found = true;
}
}
~~~
Danach wird die Variable **$pageFile** definiert als Pfad definiert. __DIR__ bedeutet, man geht vom aktuellen Verzeichnis aus und hängt dann den Unterordner *page* dran, dann den Namen des URL-Paramters, der durch den Link aufgerufen wird und schließlich die Datei-Endung.
Wenn die Datei existiert, schreibe das *include* und setze die anfängliche Variable auf true. An dieser Stelle endet das Script, wenn die Datei bzw. Seite gefunden wurde.
~~~ PHP
if (!$page_found)
{
include __DIR__ . "/page/game.php";
}
~~~
Sollte die Datei nicht gefunden werden und bleibt die Variable **$page_found** deshalb auf *false*, dann wird standardmäßig die Seite game.php aufgerufen.
Hier könnte man es wohl noch so schreiben, dass es nicht immer nur mit der Datei *game.php* funktioniert, sondern z.B. die Datei aufgerufen wird, die noch den Zusatz *.default* enthält, also etwa *game.default.php*, dann wäre man nicht so limitiert, wäre mal keine game.php da.
Wie müsste man denn den Einzeiler umschreiben, damit das obige (ausführliche) ausgeführt wird. Momentan sieht er so aus:
~~~ PHP
$pageFile = ".//" . (empty($_GET["page"]) || !preg_match("/^[a-z]+$/i", $_GET["page"]) ? "game" : $_GET["page"]) . ".page.php";
file_exists($pageFile) && include $pageFile;
~~~
Meine Versuche haben bisher leider nicht geklappt.
___
Entschuldigt den langen Posting, aber ich wollte noch auf etwas zurückkommen: Oben hast du als best practice Folgendes geschrieben.
> Also - best practice wäre:
>
> - ~~die URLs in den Tabs ohne Fragezeichen und ohne # notieren. Also genau so, wie sie jetzt sind.~~
> - am Server in der .htaccess per mod_rewrite dafür sorgen, dass Tab-Namen als ?tab=... an index.php angehängt werden. Falls irgendein Heini direkt die index.php abruft, kommt halt index.php?tab=index.php an. Ja und? Ist ein ungültiger Tab-Name, und:
> - ~~in index.php den tab-Parameter verarbeiten **und auf gültige Tab-Namen validieren**. Für ungültige oder fehlende Tabnamen das Default-Tab includen~~
> - als progressive enhancement einen click-Handler auf die Tabs legen, der die Page per Ajax holt und per pushState so tut, als wär's über den Server gelaufen.
Ich habe mal gestrichen, was ich bereits leisten kann.
Übrig bleibt also die Geschichte mit ***.htaccess*** (würde ich zum Schluss angehen) und das mit dem ***pushState***. Ich habe nicht ganz verstande, wie das funktioniert und wozu das gut ist (Sicherheit?).
Boris
Wie rufe ich mit URL-Parametern dynamisch Inhalte auf?
bearbeitet von
Schau mal, das Ganze sieht jetzt so bei mir aus:
~~~ PHP
$page_found = false;
if (!empty($_GET["page"])
&& preg_match("/^[a-z]+$/i", $_GET["page"]) == 1)
{
$pageFile = __DIR__ . "/page/" . $_GET["page"] . ".php";
if (file_exists($pageFile))
{
include $pageFile;
$page_found = true;
}
}
if (!$page_found)
{
include __DIR__ . "/page/game.php";
}
~~~
Ich glaube, ich habe jetzt auch einigermaßen den Aufbau dieses Scripts verstanden. Ich versuche das mal in Worten zu formulieren und würde gerne noch einige Rückfragen stellen.
~~~ PHP
$page_found = false;
~~~
Erst mal wir die Variable auf false gestellt, damit das Script erst etwas macht, wenn die Seite auch gefunden wurde.
~~~ PHP
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?
Das **^** ist ein Anker und setzt, denke ich, dort an, wo der URL-Parameter beginnt, nämlich nach dem **?page=**. Ich schätze, das **+$** steht wohl für die Dateiendung (also in dem Fall .php), aber was soll das **/i** bedeuten?
~~~ PHP
{
$pageFile = __DIR__ . "/page/" . $_GET["page"] . ".php";
if (file_exists($pageFile))
{
include $pageFile;
$page_found = true;
}
}
~~~
Danach wird die Variable **$pageFile** definiert als Pfad definiert. __DIR__ bedeutet, man geht vom aktuellen Verzeichnis aus und hängt dann den Unterordner *page* dran, dann den Namen des URL-Paramters, der durch den Link aufgerufen wird und schließlich die Datei-Endung.
Wenn die Datei existiert, schreibe das *include* und setze die anfängliche Variable auf true. An dieser Stelle endet das Script, wenn die Datei bzw. Seite gefunden wurde.
~~~ PHP
if (!$page_found)
{
include __DIR__ . "/page/game.php";
}
~~~
Sollte die Datei nicht gefunden werden und bleibt die Variable **$page_found** deshalb auf *false*, dann wird standardmäßig die Seite game.php aufgerufen.
Hier könnte man es wohl noch so schreiben, dass es nicht immer nur mit der Datei *game.php* funktioniert, sondern z.B. die Datei aufgerufen wird, die noch den Zusatz *.default* enthält, also etwa *game.default.php*, dann wäre man nicht so limitiert, wäre mal keine game.php da.
Wie müsste man denn den Einzeiler umschreiben, damit das obige (ausführliche) ausgeführt wird. Momentan sieht er so aus:
~~~ PHP
$pageFile = ".//" . (empty($_GET["page"]) || !preg_match("/^[a-z]+$/i", $_GET["page"]) ? "game" : $_GET["page"]) . ".page.php";
file_exists($pageFile) && include $pageFile;
~~~
Meine Versuche haben bisher leider nicht geklappt.
___
Entschuldigt den langen Posting, aber ich wollte noch auf etwas zurückkommen: Oben hast du als best practice Folgendes geschrieben.
> Also - best practice wäre:
>
> - ~~die URLs in den Tabs ohne Fragezeichen und ohne # notieren. Also genau so, wie sie jetzt sind.~~
> - am Server in der .htaccess per mod_rewrite dafür sorgen, dass Tab-Namen als ?tab=... an index.php angehängt werden. Falls irgendein Heini direkt die index.php abruft, kommt halt index.php?tab=index.php an. Ja und? Ist ein ungültiger Tab-Name, und:
> - ~~in index.php den tab-Parameter verarbeiten **und auf gültige Tab-Namen validieren**. Für ungültige oder fehlende Tabnamen das Default-Tab includen~~
> - als progressive enhancement einen click-Handler auf die Tabs legen, der die Page per Ajax holt und per pushState so tut, als wär's über den Server gelaufen.
Ich habe mal gestrichen, was ich bereits leisten kann.
Übrig bleibt also die Geschichte mit ***.htaccess*** (würde ich zum Schluss angehen) und das mit dem ***pushState***. Ich habe nicht ganz verstande, wie das funktioniert und wozu das gut ist (Sicherheit?).
Boris
Wie rufe ich mit URL-Parametern dynamisch Inhalte auf?
bearbeitet von
Schau mal, das Ganze sieht jetzt so bei mir aus:
~~~ PHP
$page_found = false;
if (!empty($_GET["page"])
&& preg_match("/^[a-z]+$/i", $_GET["page"]) == 1)
{
$pageFile = __DIR__ . "/page/" . $_GET["page"] . ".php";
if (file_exists($pageFile))
{
include $pageFile;
$page_found = true;
}
}
if (!$page_found)
{
include __DIR__ . "/page/game.php";
}
~~~
Ich glaube, ich habe jetzt auch einigermaßen den Aufbau dieses Scripts verstanden. Ich versuche das mal in Worte zu formulieren und würde gerne noch einige Rückfragen stellen.
~~~ PHP
$page_found = false;
~~~
Erst mal wir die Variable auf false gestellt, damit das Script erst etwas macht, wenn die Seite auch gefunden wurde.
~~~ PHP
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?
Das **^** ist ein Anker und setzt, denke ich, dort an, wo der URL-Parameter beginnt, nämlich nach dem **?page=**. Ich schätze, das **+$** steht wohl für die Dateiendung (also in dem Fall .php), aber was soll das **/i** bedeuten?
~~~ PHP
{
$pageFile = __DIR__ . "/page/" . $_GET["page"] . ".php";
if (file_exists($pageFile))
{
include $pageFile;
$page_found = true;
}
}
~~~
Danach wird die Variable **$pageFile** definiert als Pfad definiert. __DIR__ bedeutet, man geht vom aktuellen Verzeichnis aus und hängt dann den Unterordner *page* dran, dann den Namen des URL-Paramters, der durch den Link aufgerufen wird und schließlich die Datei-Endung.
Wenn die Datei existiert, schreibe das *include* und setze die anfängliche Variable auf true. An dieser Stelle endet das Script, wenn die Datei bzw. Seite gefunden wurde.
~~~ PHP
if (!$page_found)
{
include __DIR__ . "/page/game.php";
}
~~~
Sollte die Datei nicht gefunden werden und bleibt die Variable **$page_found** deshalb auf *false*, dann wird standardmäßig die Seite game.php aufgerufen.
Hier könnte man es wohl noch so schreiben, dass es nicht immer nur mit der Datei *game.php* funktioniert, sondern z.B. die Datei aufgerufen wird, die noch den Zusatz *.default* enthält, also etwa *game.default.php*, dann wäre man nicht so limitiert, wäre mal keine game.php da.
Wie müsste man denn den Einzeiler umschreiben, damit das obige (ausführliche) ausgeführt wird. Momentan sieht er so aus:
~~~ PHP
$pageFile = ".//" . (empty($_GET["page"]) || !preg_match("/^[a-z]+$/i", $_GET["page"]) ? "game" : $_GET["page"]) . ".page.php";
file_exists($pageFile) && include $pageFile;
~~~
Meine Versuche haben bisher leider nicht geklappt.
___
Entschuldigt den langen Posting, aber ich wollte noch auf etwas zurückkommen: Oben hast du als best practice Folgendes geschrieben.
> Also - best practice wäre:
>
> - ~~die URLs in den Tabs ohne Fragezeichen und ohne # notieren. Also genau so, wie sie jetzt sind.~~
> - am Server in der .htaccess per mod_rewrite dafür sorgen, dass Tab-Namen als ?tab=... an index.php angehängt werden. Falls irgendein Heini direkt die index.php abruft, kommt halt index.php?tab=index.php an. Ja und? Ist ein ungültiger Tab-Name, und:
> - ~~in index.php den tab-Parameter verarbeiten **und auf gültige Tab-Namen validieren**. Für ungültige oder fehlende Tabnamen das Default-Tab includen~~
> - als progressive enhancement einen click-Handler auf die Tabs legen, der die Page per Ajax holt und per pushState so tut, als wär's über den Server gelaufen.
Ich habe mal gestrichen, was ich bereits leisten kann.
Übrig bleibt also die Geschichte mit ***.htaccess*** (würde ich zum Schluss angehen) und das mit dem ***pushState***. Ich habe nicht ganz verstande, wie das funktioniert und wozu das gut ist (Sicherheit?).
Boris