Anzeige
Tutorialbeschreibung

Umsetzen einer Seite mit einem Include/Switch

Umsetzen einer Seite mit einem Include/Switch

Man erstellt eine Website der normalen Art mit einer Navigation und einem Inhalt. Klickt der User auf einen Link soll ihm ein sich ändernder Inhalt angezeigt werden. Dabei wird schnell klar dass es für den User ein bisschen nervig ist ständig die gesamte Seite neu zu laden , daher wär es doch viel einfacher für den Designer und umgänglicher für den Besucher der Website wenn nur der Inhalt aktualisiert wird. Ausgenommen natürlich die Navigation soll sich verändern. Früher wurde zur Umsetzung einer solchen Seite ein Frame verwendet. Doch diese Technik ist längst veraltet und sollte nicht mehr genutzt werden. Wie also lösen wir dieses Problem? Hier kommt der Include ins Spiel. Der Include befehl kommt aus der Programmiersprache PHP und ist einfach in HTML einzugliedern. Er bewirkt ganz einfach eine Inkludierung (Einbindung) eines anderen Dokuments in unsere Html Seite.


Umsetzen einer Seite mit einem Include (Switch)

Zuallererst soll hier mal der Sinn dieses Tutorials erläutert werden. Man erstellt eine Website der normalen Art mit einer Navigation und einem Inhalt. Klickt der User auf einen Link soll ihm ein sich ändernder Inhalt angezeigt werden. Dabei wird schnell klar dass es für den User ein bisschen nervig ist ständig die gesamte Seite neu zu laden , daher wär es doch viel einfacher für den Designer und umgänglicher für den Besucher der Website wenn nur der Inhalt aktualisiert wird. Ausgenommen natürlich die Navigation soll sich verändern. Früher wurde zur Umsetzung einer solchen Seite ein Frame verwendet. Doch diese Technik ist längst veraltet und sollte nicht mehr genutzt werden. Wie also lösen wir dieses Problem? Hier kommt der Include ins Spiel. Der Include befehl kommt aus der Programmiersprache PHP und ist einfach in HTML einzugliedern. Er bewirkt ganz einfach eine Inkludierung (Einbindung) eines anderen Dokuments in unsere Html Seite.

Der einfache Include Befehl

<?php include 'datei.php'; ?>
Dies ist die einfachste Ausführung des Include Befehls. Dieser ist noch ganz einfach aufgebaut. <?php öffnet zuallerstmal einen PHP Code das heist alles was sich in dieser Klammer befindet gehört zum PHP Code. include ist dann der Eigentliche Include befehl 'datei.php' gibt schließlich an welche Datei inkludiert werden soll. ; Dieses Zeichen beendet den Include befehl. Der ganze PHP Befehl wird wieder mit einer Klammer abgeschlossen ?>.

Nutzung eines Switches in Verbindung mit dem Include Befehl.

Nun haben wir zwar eine Seite Inkludiert aber müssten normalerweise trotzdem noch einzelne Seiten erstellen mit den jeweiligen Includes wobei die komplette Seite jedesmal geladen werden müsste. Um diesem Problem Herr zu werden gibt es den sogenannten Switch Befehl. Dessen Nutzung möchte ich hier erläutern.
<?php
$seite = (isset($_GET['seite']))? $_GET['seite'] : '';

switch ($seite) {
default :
case "standardseite" :
include("standarddatei.php");
break; 
case "seite2" :
include("datei2.php");
break; 
case "seite3" :
include("datei3.php");
break;

}
?>
Hier werde ich nicht jedes Element einzeln Erläutern sondern nur erklären wie ihr diesen Script nutzen könnt. Diesen Script setzt ihr an die Stelle eurer Seite wo die verschiedenen Inhalte später erscheinen sollen (z.B. News , Forum , About Me etc.). Im Prinzip müsst ihr einfach eure Dateien angeben. Unter case "beispiel" : gebt ihr in den Anführungszeichen eine Definition eurer Wahl an also einen namen im PHP Script für diese Inkludierte Seite. dann gebt ihr im folgenden include("beispiel.php"); einfach die Datei an die zu dieser Definition gehören soll. Diese kann auch einen völlig anderen Namen als die Definition haben. Die Definition die unter dem default : also direkt als erstes angegeben wird zählt als Standardseite. Das heist Diese wird als erstes Angezeigt bevor eine Veränderung eintritt.

Links erstellen die den Include Switchen

Jetzt fehlt uns natürlich noch ein wichtiger Punkt. Wie bringen wir den Browser dazu den Include auch wirklich zu switchen (Umzuschalten) ?. Dazu erstellen wir Links nach folgendem Schema:
<a href="index.php?seite=standardseite">Startseite</a>

<a href="index.php?seite=seite2">Seite2</a>

<a href="index.php?seite=seite3">Seite3</a>
Wir erstellen einfach Links die auf den Include hinweisen daher immer links auf die Datei in der der Inklude Script steckt (in diesem Beispiel index.php) dann ein ? welches ein Zeichen für den PHP Script ist und seite = DEFINITION daher eine der Definitionen die wir vorher im Script angegeben haben. Und schon ändert sich nur der Inhalt beim Klick auf einen der Links.

Kommentare
Achtung: Du kannst den Inhalt erst nach dem Login kommentieren.
Portrait von HowieKellerfish
  • 07.01.2013 - 13:51

nachdem ich etwas rumprobiert habe, funktioniert es nun. sehr schön! sehr gutes tutorial, vielen Dank dafür. Ich habe ewig nach so etwas gesucht!

Portrait von AustrianKiller
  • 10.07.2011 - 20:28

so eine Tutorial habe ich schon lange gesucht thx

Portrait von Cojack
  • 20.03.2011 - 17:31

Hi

find das ganze an sich schick. Ich habe einen Paid 4 Mailer. Wer nicht weiß was das ist hier muss man Banner klicken um Geld zu verdienen oder andere Währungen. Hier sind z.B. 1000 Banner drinn. Und auf der Seite werden 20 Banner angezeigt. Diese werden gecklickt und nach bestimmter Zeti kann man den Aktualiesieren Button klicken und dann kommen neue.

So und bei mir ist das nun so das dann immer die ganze Seite neu geladen wird.
Ich möchte aber das nur die Banner neu geladen werden.
Leider weiß ich aber nicht wo ich den include Befehl hin machen muss so das nur die Banner neu geladen werden.


Kann mir wer helfen ?

Portrait von Kloppy
  • 26.02.2011 - 23:31

Ist mir zu knapp erklaert. Werde es aber dennoch mal ausprobieren.

Portrait von Elpresidente99
  • 15.12.2010 - 10:10

hat mir super geholfen zwar ein bisschen einarbeitung gebraucht wenn man schon eine bestehende seite hat. Hat aber am ende geklappt.

Portrait von Taharkas
  • 27.07.2010 - 20:52

Eine sehr einfache und durchaus vertretbare Lösung für kleinere Seiten.

Ich habe aber die Erfahrung gemacht, dass bei Webseiten, die komplexe Navigationen und/oder viele Formulare enthalten dieses System recht schnell an seine Grenzen stösst. Der/die Switch/es werden immer größer, der Quellcode schwerer les- und wartbar und vor allem schleichen sich auch wesentlich schneller Fehler ein, je komplexer die Webseite wird.
An den richtigen Stellen und im richtigen Maß eingesetzt, ist die in diesem Tut beschriebene Vorgehensweise super - sie kann aber an den falschen Stellen richtig kontraproduktiv werden.

Portrait von Maximum147
  • 05.04.2010 - 14:10

Danke! Toll. Nach mehrmaligem lesen hab ichs dann auch geschafft :D

Portrait von bergerdi
  • 18.02.2010 - 23:45

Super, genau das habe ich gesucht! Ohne das ich gleich komplett php lernen muß!!! Werde es gleich an meiner neuen Webseite ausprobieren! Danke

Alternative Portrait
-versteckt-(Autor hat Seite verlassen)
  • 19.11.2009 - 21:14

Also, ich beschäftige mich heute zum ersten mal mit PHP, habe also keine Ahnung! Das, was hier erklärt wird, ist aber so eindeutig, leicht und verständlich und aus meiner Sicht auch nicht weiter erklärungsbedürftig. Wie gesagt, ich habe keine Ahnung, aber alles auf Anhieb verstanden. Wenn jede Erklärung so verständlich wäre, ohne Schnörkel und auf den Punkt gebracht, wäre ich glücklich. Weiter so und danke.

Alternative Portrait
-versteckt-(Autor hat Seite verlassen)
  • 26.09.2009 - 00:24

schönes tut, hat mich als anfänger des php´s gut voran gebracht. thx!

Portrait von Blackout289
  • 24.09.2009 - 16:05

ja okay, das mit den Erklärungen finde ich auch, aber mir hat es trotzdem sehr geholfen. Wenn man sich den code bisschen anguggt dann versteht mers au - einigermaßen- :D

Portrait von Imobilus
  • 06.06.2009 - 12:58

Interessantes Tut aber als PHP nichtkönnte hätte ich gern etwas mehr Erkärungen gehabt.

Alternative Portrait
-versteckt-(Autor hat Seite verlassen)
  • 09.12.2008 - 17:37

is wirklich etwas kurz

Alternative Portrait
-versteckt-(Autor hat Seite verlassen)
  • 10.09.2008 - 02:58

Ist mir zu knapp erklaert. Werde es aber dennoch mal ausprobieren.
Dankeschoen fuer die Muehe. :)

Alternative Portrait
-versteckt-(Autor hat Seite verlassen)
  • 12.03.2008 - 15:45

ist ja ganz schön aber für jemanden, der php beherrscht, bringt es nix und für jemanden, der es nicht beherrscht, ist die erklärung zu den strukturen zu kurz wie ich finde.
Ich weiß nicht ob ich dich richtig verstanden hab, aber die seite wird ja trotzdem immer vollständig geladen. Es geht nur schneller da sich ein Teil der Elemente schon im Browsercache befindet.

Alternative Portrait
-versteckt-(Autor hat Seite verlassen)
  • 11.03.2008 - 11:43

Das hier ist nur ein Codebeispiel. Was die einzelne Zeile macht bleibt einem Neuling wohl verschlossen.

Alternative Portrait
-versteckt-(Autor hat Seite verlassen)
  • 10.03.2008 - 14:21

nicht schlecht, aber vielleicht sollte man noch ein wenig besser auf den Code eingehen. Zum Beispiel ist mir diese Zeile hier:
"$seite = (isset($_GET['seite']))? $_GET['seite'] : '';"
Nicht ganz klar...

Portrait von Cygn
  • 11.03.2008 - 13:02

$seite = (isset($_GET['seite']))? $_GET['seite'] : '';


Naja die Variable "seite" wird definiert. Das heißt sie bekommt einen Wert zugeordnet. In diesem Fall ist das an eine Bedingung geknüpft. Nämlich "isset()" diese Funktion überprüft ob ein Wert gesetzt ist. Das bedeutet er überprüft in diesem Fall ob überhaupt ein parameter "Seite" über die URL übergeben wurde. Ist dies der Fall setzt er $seite auf $_GET['seite'].

Portrait von lippl
  • 09.03.2008 - 16:13

also nich schlechd geschriebn aber der code..nja wieso jede seite einzeln bestimmen??

Portrait von Cygn
  • 09.03.2008 - 15:45

Danke für eure Kritik, ich hab das ganze schon vor einiger Zeit geschrieben als ich selbst noch nicht soweit war. Daher auch die kürze viel mehr hätt ich zu dem Zeitpunkt noch garnicht sagen können. Vielleicht schreib ich bald mal einen zweiten Teil in dem ich das ganze detaillierter bespreche. Was die Namen der Dateien/Parameter angeht, ich finde es viel praktischer es so zu lösen, dass ist wohl Geschmackssache :) .

x
×
×