Auge: Links in PHP

Beitrag lesen

Hallo

warte ...

Ich warte. ;-)

... ich versuchs mal anders. Also ich habe in meiner index Datei 3 seiten included. In einer davon ist meine Navigationsleiste.

Ich hoffe, du bindest nur die Navigation ansich ein, nicht das ganze HTML-Dokument.

Also nicht:

<DOCTYPE ...>  
<html>  
<head>  
 <title>Navigation</title>  
 <meta http-equiv="content-type" content="text/html; charset=utf-8">  
</head>  
<body>  
 <ul>  
  <li><a href="#">Linktext 1</a></li>  
  <li><a href="#">Linktext 2</a></li>  
 </ul>  
</body>  
</html>

sondern:

 <ul>  
  <li><a href="#">Linktext 1</a></li>  
  <li><a href="#">Linktext 2</a></li>  
 </ul>

Da sind selbstverständlich Links die vorher Seiten in einem anderem Frame öffneten. Jetzt möchte ich aber das sich die neue Seite an die Stelle der bereits im Index includedten Datei schiebt.

Du willst alle Seiten in _einem_ Dokument öffnen, also nur den Inhaltsbereich austauschen?

Dann musst du den Links eine Information über den zu ladenden Inhalt mitgeben. Die zu ladende Seite ist ja immer die Gleiche (z.B. index.php). Der Link hat also immer dieses Ziel: <a href="index.php">Linktext</a>. Die Information muss nun als GET-Parameter an das Linkziel angehängt werden, z.B. mit Namen "site". Das sähe dann so aus: <a href="index.php?site=...">Linktext</a>.

Die Werte des Parameters kann man nach verschiedenen Systemen benennen. Man kann die zu ladenden Bereiche nummerieren (<a href="index.php?site=12">Linktext</a>), was den Nachteil hat, dass man selbst oder die Besucher eventuell verwirrt werden oder man benutzt sprechende Namen (<a href="index.php?site=impressum">Impressum</a>).

Wichtig ist, dass man die Werte gewissenhaft prüft. Sie stammen vom Benutzer und können von diesem beliebig geändert werden. Man darf diesen Werten also _nie_ weiter trauen, als man sie werfen kann.

Deshalb prüft man sie gegen eine Liste der erlaubten Werte. Diese kann man in einem Array ablegen.

// Liste der erlaubten Werte fuer $_GET["site"]  
$navigationsziele = array(  
"startseite",  
"neues",  
"impressum",  
"kontakt");

Die Prüfung sähe dann so aus:

// Abfrage: ist $_GET["site"] gesetzt und ist der  
// uebermittelte Wert im Array $navigationsziele vorhanden  
if (isset($_GET["site"] and in_array($_GET["site"],$navigationsziele))  
   {  
   // Die Pruefung wurde bestanden und der Wert von $_GET["site"]  
   // wird ausgelesen, um die zu ladende Seite auszuwählen.  
   }  
else  
   {  
   // Die Pruefung wurde nicht bestanden.  
   // Eine Standardseite (Startseite?) wird geladen.  
   include("/pfad/zur/startseite.php");  
   }

Tschö, Auge

--
Die deutschen Interessen werden am Liechtenstein verteidigt.
Veranstaltungsdatenbank Vdb 0.2