Dez 29

PHP Include anstatt Frames!

Tag: PHP Tipps und TricksLeichti @ 11:46 pm

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



Tags: , , , ,

2 Kommentare zu “PHP Include anstatt Frames!”

  1. mcliquid says:

    Suchmaschinenfreundlich ist diese Variante aber nicht gerade oder?

  2. Leichti says:

    Nein, da hast du recht! Aber Suchmaschinenfreundlich ist es ohne Mod_Rewrite nicht wirklich möglich!

Dein Kommentar