Dez 29
PHP Include anstatt Frames!
Frames haben eine Menge Nachteile, der größte allerdings ist, dass die Frames Suchmaschinenfeindlich sind! So erfassen Suchmaschinen zwar oft den Content der Seite (oft aber nur einen Teil), aber die Navigation bleibt meistens Außen vor. Weshalb Besucher dann meist keine Navigation zu Gesicht bekommen. Doch es gibt eine Alternative, sogar eine sehr gute Alternative, welche eigentlich alle Vorteile von Frames bietet, jedoch auch Suchmaschinenfreundlich ist! Das Zauberwort ist include, mit Hilfe von PHP und dem Include-Befehl.
Voraussetzungen
- PHP 4 oder höher
- Schwierigkeit: Einfach
Wie funktioniert nun die PHP Anweisung include?
Include bindet eine Datei ein und wertet diese aus. Das heißt also, dass eine Datei eingebunden wird, und dann ausgewertet wird.
Beispiel:
## variablen.php - Datei ## ## Variablen festlegen ## $farbe = "Rot"; $auto = "Audi"; ## index.php - Datei ## include("variablen.php"); echo "Das Auto der Marke ".$auto." hat
So aber was bringt uns das jetzt für unsere Seite? Es funktioniert eigentlich alles gleich, nur müssen wir jetzt immer wissen was wir includen sollen. Dies überprüfen wir mit Hilfe der vordefinierten Variable $_GET. Damit können wir aus der URL auslesen welche Seite eingebunden werden soll.
Hier ein bereits fertiges Script, das ihr nach Lust und Laune verwenden dürft, verbreiten dürft, was auch immer ihr wollt!
<?php error_reporting(E_ALL); ## Nicht gesetzte Seiten setzten, ## damit es zu keinen Fehlermeldungen kommt if(empty($_GET['seite'])) $_GET['seite'] = "home"; ## Standarttitel setzten $standart_titel = "Titel der Homepage"; ## Standart Beschreibung setzen $standart_beschreibung= "Beschreibung... "; ## Ordner in dem die ganzen Content (Inhalts)dateien liegen, ## in unserem fall templates/ $ordnerpfad = "templates/"; ## Dateiendeungen der Content (Inhalts)dateien. Oftmals html oder htm. ## In unserem fall tpl.php (Das gleiche wie .php), nur eben für die Übersicht $dateityp = ".tpl.php"; ## Jetzt noch setzten wir variablen, die wir später in einer anderen Datei (site.tpl.php) auswerten switch($_GET['seite']) { case "home"; $seiten_titel = "Impressum"; $site_url = "home"; break; case "impressum"; $seiten_titel = "page3"; $standart_beschreibung = "Das Impressum der Seite xy"; $site_url = "impressum"; break; case "page3"; $standart_beschreibung = "Die seite page3"; $seiten_titel = "Titel der Seite 3"; $site_url = "page3"; break; default; $site_url = "home"; } ## Noch schnell überprüfen ob die Datei existiert. ## PHP gibt sonst einen Fatal Error aus! if(!file_exists($ordnerpfad.$site_url.$dateityp)) exit("Fehler, datei nicht vorhanden"); ## Die Hauptseite die die weiteren aufgaben für uns übernimmt include("site.tpl.php");
<!------Die Datei navigation.tpl.php!------> <ul> <li><a href="?seite=home">Home</a></li> <li><a href="?seite=impressum">Impressum</a></li> <li><a href="?seite=page3">Page 3</a></li> </ul>
######Die Datei site.tpl.php###### <? echo '<?xml version="1.0" encoding="ISO-8859-1" ?>'; ?> ## Warum mit echo? Ganz einfach, ## auf manchen Webservern gibt es sonst Probleme... <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de"> <head> <meta name="description" content="<? echo $standart_beschreibung; ?>" /> <title><? echo $seiten_titel; ?></title> </head> <body> <div id="navigation"><?php include("navigation.tpl.php"); ?></div> <div id="content"><?php include($ordnerpfad.$site_url.$dateityp); ?></div> </body> </html>
Download
Download PHP Include anstatt Frames! als ZIP
Download PHP Include anstatt Frames als RAR

September 6th, 2008 at 1:52 pm
Suchmaschinenfreundlich ist diese Variante aber nicht gerade oder?
September 6th, 2008 at 2:05 pm
Nein, da hast du recht! Aber Suchmaschinenfreundlich ist es ohne Mod_Rewrite nicht wirklich möglich!