Loading...   Upload Image

PHP include for Layouts - switchTutorials » PHP/MySQL Tutorials » PHP include for Layouts - switch

Verfasst von Alice am 06.06.2008 - wurde schon 16506 mal gelesen

Kategorie: PHP/MySQL
Bewertung:
9x bewertet
Schwierigkeit: mittel
Kommentare: [ 15 ]

Tag - Schlagwort HTML Tag - Schlagwort Frames Tag - Schlagwort Include

PHP include for Layouts - switch - Tutorial

Es gibt mehrere Moeglichkeiten den Befehl include() fuer ein Layout zu nutzen, eine Variante davon hatte ich schon mal vor lange Zeit hier vorgestellt => Sicheres Includen

Und vor kurzem auch noch eine sehr einfache Variante unter => PHP include for Layouts - easy

Nun moechte ich euch hier noch eine weitere Moeglichkeit aufzeigen, die Switch-Variante...

Bei der Switch-Variante sind die URL's der Seiten genauso aufgebaut, wie beim Tutorial => Sicheres Includen, allerdings muss hier die Datei nicht in einem bestimmten/vorgeschriebenen Verzeichnis liegen.
datei.php?site=namederseite


Wir verwenden eine Switch-Abfrage,
die alle moeglichen einzubindenden Sites enthaelt.

Der Code dazu sieht folgendermassen aus:
<?php

if(isset($_GET['site'])){ // Pruefen ob der Get Parameter 'site' einen Wert entaehlt


    switch($_GET['site']){

        case 'about' : // Wenn der Get Parameter 'site' = about ist

            include('./pfad-zum-ordner/about.php'); // about.php anzeigen

            break;

        case 'works' : // Wenn der Get Parameter 'site' = works ist

            include('./pfad-zum-ordner/works.php'); // works.php anzeigen

            break;

        case 'links' : // Wenn der Get Parameter 'site' = links ist

            include('./pfad-zum-ordner/links.php'); // links.php anzeigen

            break;

        case 'kontakt' : // Wenn der Get Parameter 'site' = kontakt ist

            include('./pfad-zum-ordner/kontakt.php'); // kontakt.php anzeigen

            break;


        case 'usw' : // usw. ...

            include('./pfad-zum-ordner/usw.php'); // usw. ...

            break;


        default : // wenn nichts zutraf

            include('./pfad-zum-ordner/error.php'); // Fehlerseite anzeigen

            break;

        }


    }else{ // wenn Get Parameter 'site' kein Wert enthaelt, also nix uebergeben wurde

	    include('./pfad-zum-ordner/startseite.php');
    }

?>


Mit if(isset($_GET['site'])){ pruefen wir ob ueberhaupt ein Wert uebergeben wurde,
sollte dies nicht der Fall sein, so wird mittels include('./pfad-zum-ordner/startseite.php'); die Startseite included.

Sofern ein Wert per datei.php?site=namederseite uebergeben wurde, kommt die Switch-Abfrage zum Einsatz.

Diese wird der Reihe nach abgearbeitet, wenn der per $_GET['site'] uebergebene Wert gleich dem Wert ist, welcher hinter case steht, dann wird der Code der nach dem : (Doppelpunkt) steht abgearbeitet,
bis hin zu break;.

Mit break; wird das Durchlaufen der Switch-Abfrage beendet / abgebrochen.

Wenn also der Link nun heisst datei.php?site=works,
wird die Switch-Abfrage bis case 'works': durchlaufen und es wird mittels include('./pfad-zum-ordner/works.php'); die Seite works.php included.

Fuer jede Seite, die included werden soll, muss also immer
case 'seitename':

include('./pfad-zum-ordner/seitenname.php'); // seitenname.php anzeigen

angelegt werden.

Der Wert der bei case angegeben ist, muss nicht genauso lauten, wie die einzubindende PHP-Datei, man kann auch schreiben case 'gemuese': und trotzdem include('./pfad-zum-ordner/obst.php'); schreiben.

Der Skript-Einbau


Das Skript wird an der Stelle eingebaut, wo der Content angezeigt werden soll.

Ich nehme das Layout aus dem HTML/CSS Tutorial

Webseiten Layout erstellen - das Coding als

Beispiel => Photoshop Website
Der Code des kompletten Layouts sieht folgendermassen aus...

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Webseiten Layout mit Photoshop erstellen - das Endergebnis</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<link rel="stylesheet" href="style.css" type="text/css" media="screen" />

</head>
<body>
<div id="ram">
<div id="header"></div>
		
<div id="content">
<!-- Content Start -->

<h1>Lorem ipsum dolor sit amet - <small>&lt;h1&gt; Tag</small></h1> 
	<p>consectetuer sadipscing elitr, sed diam nonumy 
	eirmod tempor invidunt ut labore et dolore magna aliquyam erat,  
	voluptua.Lorem ipsum dolor sit amet, consectetuer
	sadipscing elitr, sed diam nonumy eirmod 
	tempor invidunt ut labore et dolore magna aliquyam 
	erat, sed diam voluptua.Lorem ipsum dolor sit amet, 
	consectetuer diam nonumy ipsum dolor sit sed diam 
	nonumy eirmod sadipscing elitr, sed diam 

<!-- Content Ende -->
</div>

<div id="navi">
<ul>
<li><a href="http://alice-grafixx.de" title="Link Titel">
Home</a></li>
<li><a href="http://alice-grafixx.de/member/Alice" title="Link Titel">
About me</a></li>
<li><a href="projekte.html" title="Link Titel">Projekte</a></li>
<li><a href="http://design-grafixx.com" title="Link Titel">
Referenzen</a></li>
<li><a href="http://alice-grafixx.de/a/kontakt" title="Link Titel">
Kontakt</a></li>

<li><a href="http://alice-grafixx.de/a/impressum" title="Link Titel">
Impressum</a></li>
</ul>
</div>
			
<div id="footer"><a href="http://alice-grafixx.de"> Alice-Grafixx.de - 
Beispielwebsite 2008</a><br />
</div>
		
</div>
	
</body>
</html>

Das Skript wird nun zwischen <!-- Content Start --> und <!-- Conent Ende --> platziert ...

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Webseiten Layout mit Photoshop erstellen - das Endergebnis</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<link rel="stylesheet" href="style.css" type="text/css" media="screen" />

</head>
<body>
<div id="ram">
<div id="header"></div>
		
<div id="content">
<!-- Content Start -->

<?php

if(isset($_GET['site'])){ // Pruefen ob der Get Parameter 'site' einen Wert entaehlt


    switch($_GET['site']){

        case 'about' : // Wenn der Get Parameter 'site' = about ist

            include('./pfad-zum-ordner/about.php'); // about.php anzeigen

            break;

        case 'works' : // Wenn der Get Parameter 'site' = works ist

            include('./pfad-zum-ordner/works.php'); // works.php anzeigen

            break;

        case 'links' : // Wenn der Get Parameter 'site' = links ist

            include('./pfad-zum-ordner/links.php'); // links.php anzeigen

            break;

        case 'kontakt' : // Wenn der Get Parameter 'site' = kontakt ist

            include('./pfad-zum-ordner/kontakt.php'); // kontakt.php anzeigen

            break;


        default : // wenn nichts zutraf

            include('./pfad-zum-ordner/error.php'); // Fehlerseite anzeigen

            break;

        }


    }else{ // wenn Get Parameter 'site' kein Wert enthaelt, also nix uebergeben wurde

	    include('./pfad-zum-ordner/startseite.php');
    }

?>

<!-- Content Ende -->
</div>

<div id="navi">
<ul>
<li><a href="http://alice-grafixx.de" title="Link Titel">
Home</a></li>
<li><a href="http://alice-grafixx.de/member/Alice" title="Link Titel">
About me</a></li>
<li><a href="projekte.html" title="Link Titel">Projekte</a></li>
<li><a href="http://design-grafixx.com" title="Link Titel">
Referenzen</a></li>
<li><a href="http://alice-grafixx.de/a/kontakt" title="Link Titel">
Kontakt</a></li>

<li><a href="http://alice-grafixx.de/a/impressum" title="Link Titel">
Impressum</a></li>
</ul>
</div>
			
<div id="footer"><a href="http://alice-grafixx.de"> Alice-Grafixx.de - 
Beispielwebsite 2008</a><br />
</div>
		
</div>
	
</body>
</html>

Die Datei muss als PHP-Datei abgespeichert werden, also die Endung .php besitzen!

Wichtig!


Beachtet werden muss bei dieser Variante,
dass die Seite, die included wird auf keinen Fall HTML-Tags wie <html>, <head>, und <body> beinhalten darf!


Denn diese Tags haben wir ja schon auf der Seite, auf der die Switch-Abfrage steht.
Weshalb wir durch das 'Einbinden' der Datei, die per Get-Parameter 'site' bestimmt wird,
diese Tags dann doppelt haetten, was u.U. zu Folge haette, dass das Layout total 'zerschossen' wird...

Kommentar schreibenHinterlasse einen Kommentar

Du musst angemeldet sein, um einen Kommentar zu hinterlassen...

Du bist noch kein Mitglied von Alice-Grafixx.de?
Dann kannst du dich hier kostenlos registrieren ...


       ALL-INKL.COM - Webhosting Server Hosting Domain Provider