PHP - Seitencontent auslagern

01/25/2014 00:23 Yiv#1
Liebe Coder unter euch,

ich habe versucht, in meiner Webseite den Seitencontent der einzelnen Unterseiten auszulagern. Soll heißen, dass ich eine Standarddatei "index.php" habe in der alles definiert ist. Wenn ich nun auf eine andere Datei wechsel, soll die URL um "?page=SEITENNAME" erweitert werden und der Content soll aus der Datei SEITENNAME im Verzeichnis "page" geladen werden.

Meine Navigation:

Mein Code im Div "Content":

Rufe ich nun die Seite auf, so wird jedoch lediglich alles außerhalb des Contents viele hundert mal geladen:[Only registered and activated users can see links. Click Here To Register...]
Zeile 21:
PHP Code:
                $page $_GET['page']; 
Die Dateien existieren aber und haben lediglich den jeweiligen Namen im Content...

Was mache ich falsch?

MfG
01/25/2014 08:49 xsrf#2
Falls du einzelne Dateien aufrufen möchtest musst du die File auch schon aufrufen.
01/25/2014 10:48 Nynq#3
Also zunächste mal etwas formales: wenn du immer die gleiche Variable auf nen Wert überprüfen willst, dann gibt es dafür das switch-case-Konstrukt, das Unmengen von if/else Klammern erspart.

Aber um deine Frage zu beantworten:

Das erste Mal, wenn du deine index.php Datei aufrufst schreibst du den GET-Parameter von Page auf $page, da dieser aber beim ersten Aufruf leer ist landest du im else Fall. Somit hast du erfolgreich eine Endlosschleife programmiert, in der du immer index.php in index.php inkludierst.

PHP Code:
if($page == "index")
{
    include 
"index.php";
}
else
{
   include 
"index.php";

01/25/2014 12:10 Yiv#4
Quote:
Originally Posted by AMAZEN View Post
Falls du einzelne Dateien aufrufen möchtest musst du die File auch schon aufrufen.
Wie meinst du das? :o

Quote:
Originally Posted by Nynq View Post
Also zunächste mal etwas formales: wenn du immer die gleiche Variable auf nen Wert überprüfen willst, dann gibt es dafür das switch-case-Konstrukt, das Unmengen von if/else Klammern erspart.

Aber um deine Frage zu beantworten:

Das erste Mal, wenn du deine index.php Datei aufrufst schreibst du den GET-Parameter von Page auf $page, da dieser aber beim ersten Aufruf leer ist landest du im else Fall. Somit hast du erfolgreich eine Endlosschleife programmiert, in der du immer index.php in index.php inkludierst.

PHP Code:
if($page == "index")
{
    include 
"index.php";
}
else
{
   include 
"index.php";

Oh, daran habe ich noch gar nicht gedacht.
Danke für den Hinweis mit Switches!
Ich probiere es noch einmal.

MfG
01/26/2014 12:35 adistoe#5
Ersetz mal
PHP Code:
$page $_GET['page']; 
durch
PHP Code:
$page = (!empty($_GET['page']))?$_GET['page']:'index'
Wenn nun kein Wert an $page gegeben wird, erhält die Variable automatisch den Wert 'index'.
Dann halt noch das was Nynq bereits gesagt hat :)

mfg
adistoe