Suchen
Inside Wiki
Nützliche Links
phpforum.de Tipp
 
phpforum.de bei Facebook
 
phpforum.de bei Twitter
 

Zurück   PHP Forum: phpforum.de > phpforum.de Wiki > phpforum.de Wiki

PHP Wiki Dieses Wiki sammelt Lösungen, zu Problemen, welche immer wieder im Forum auftauchen.

 
 
Artikel-Optionen Ansicht
  #1  

Standard Dynamischer Content

 

Tutorials - Inhalte

 
Ein und die selbe Webseite, in der sich lediglich der Inhalt in Abhängigkeit von der URL verändern lässt.

Dynamischer Content



Allgemein


Es gibt im Grunde nur zwei Arten von dynamischen Content:
  • Clientseitige dynamische Seiten
  • Serverseite dynamische Seiten

Es gibt aber auch den gemischten dynamischen Content, der beide Arten verwendet des dynamischen Contents verwendet.

Clientseitiger dynamischer Content


Clientseitiger dynamischer Content wird zum Beispiel mit Flash oder auch JavaScript direkt auf dem Client erzeugt, geändert oder bearbeitet und dadurch wird ausführbarer Code vom Browser selbst oder durch Plugins geparst und ausgeführt. Diese Art des dynamischen Contents ist leicht vom Client manipulierbar.

Serverseitiger dynamischer Content


Beim Serverseitigen dynamischen Content wird direkt am Server, bevor die angeforderte Datei ausgeliefert wird, von einer Script oder Pogrammiersprache erzeugt. Oft wird PHP, ASP.Net und Coldfusion verwendet. Diese Methode ist nur bei unachtsamer Programmierung unsicher und der Content kann so vom Client nicht negativ beeinflusst werden.

Gemischter dynamischer Content


Es gibt noch einige Technologien, die dynamischen Content auf dem Server und auf dem clientseitigen Browser erzeugen. Ein bekanntes Beispiel wäre AJAX, bei dem Javascript Content von einem Server ordert und dann dynamisch in eine Seite einbindet.

Worum es hier geht


Viele Webseiten haben ungefähr folgenden Aufbau: Oben die Navigation, in der Mitte der Inhalt, und unten der Footer. Nun kommt es oft vor, dass eine Webseite aus mehreren, unterschiedlichen Inhaltsbereichen besteht, wie z.B. einer Seite für News, einer Seite für eine Mitgliederliste, einer Seite für eine Bildergallerie, etc. pp. Hierbei soll sich das Design der Seite oft nicht ändern, sondern lediglich der Inhalt. Damit die unveränderlichen Bestandteile nicht auf jeder Seite wiederholt werden müssen, wird oft folgende Technik angewandt: Man behält die grundlegende Seite bei und bindet lediglich, in Abhängigkeit von der URL, einen anderen Inhalt ein.

Wie man das ganze realisieren kann, zeigt das folgende

Beispiel


Um das ganze einmal zu demonstrieren, hier zunächst ein simpler Quellcode:
dynamic_content.php
PHP Quellcode:
<?php
/*
 * Dafür sorgen, dass unabhängig von den aktuellen PHP-Einstellungen
 * alle auftretenden Fehler angezeigt werden
 */

error_reporting(E_ALL | E_STRICT);
ini_set('display_errors', 'On');

/*
 * Den Headerbereich, welcher beispielsweise den (X)HTML-Kopf sowie
 * eine Navigation beinhalten kann, die unabhängig vom Content
 * immer gleich angezeigt werden soll.
 */

include_once 'inc/header.inc.php';

/*
 * Aus der URL auslesen, welcher Contentbereich angezeigt
 * werden soll. Den Namen in Kleinbuchstaben umwandeln, sodass
 * die Groß/Kleinschreibweise egal ist.
 */

if (isset($_GET['content'])) {
    $content = strtolower(trim($_GET['content']));
} else {
    $content = '';
}

/*
 * Angängig vom ausgewählten Content nun den entsprechenden
 * Inhalt einfügen
 */

switch ($content) {
   
    // Falls dynamic_content.php?content=main
    case 'main':
        include 'inc/main.inc.php';
        break;
   
    // Falls dynamic_content.php?content=members
    case 'members':
        include 'inc/members.inc.php';
        break;
   
    // Falls nichts oder ein undefinierter Wert angegeben ist
    default:
        include 'inc/main.inc.php';

}

/*
 * Alternative zum switch().
 * Eventuell kürzer, wenn man viele Unterseiten hat.
 */


// Gültige Bereiche definieren
$pages = array( "main", "members" );

// Gültigkeit prüfen und ggf Standard setzen
if ( !in_array( $content, $pages ) )
    $content = "main";

// Bereich einbinden
include( "inc/" . $content. ".inc.php" );

/*
 * Aufräumarbeiten durchführen und dafür sorgen, dass das
 * (X)HTML-Markup korrekt geschlossen wird.
 */

include_once 'inc/footer.inc.php';
?>


Um das ganze einfach und überschaulich zu halten, werden die include-Dateien mit folgendem Inhalt erstellt, wobei sich alle von ihnen in einem Unterordner namens inc/ befinden:
header.inc.php
PHP Quellcode:
<?php
// Ein wenig Code
?> 
<p>Hier kommt der HTML-Kopfbereich und der gewuenschte Header hin</p>
<?php
// Weiterer Code
?>

footer.inc.php
PHP Quellcode:
<?php
// Ein wenig Code
?> 
<p>Hier wird das HTML-Dokument geschlossen und aufräumarbeiten durchgeführt</p>
<?php
// Weiterer Code
?>

members.inc.php
PHP Quellcode:
<?php
// Ein wenig Code
?> 
<p>Eine Liste aller Mitglieder</p>
<?php
// Weiterer Code
?>

main.inc.php
PHP Quellcode:
<?php
// Ein wenig Code
?> 
<p>Alle Neuigkeiten, die es zu sagen gibt</p>
<?php
// Weiterer Code
?>


Legt man die Dateien nun alle zum Testen an, kann man folgendes beobachten: Ruft man das Script in seinem Browser z.B. über den Link http://localhost/dynamic_content.php auf, so sieht man eine Seite, die ungefähr so aussehen sollte:
Code:
Hier kommt der HTML-Kopfbereich und der gewuenschte Header hin

Alle Neuigkeiten, die es zu sagen gibt

Hier wird das HTML-Dokument geschlossen und aufräumarbeiten durchgeführt


Ruft man die Seite allerdings über den Link http://localhost/dynamic_content.php?content=members auf, so zeigt sich ein andere Inhalt:
Code:
Hier kommt der HTML-Kopfbereich und der gewuenschte Header hin

Eine Liste aller Mitglieder

Hier wird das HTML-Dokument geschlossen und aufräumarbeiten durchgeführt


Wie man sieht, hat sich lediglich der mittlere Teil geändert. Header und Footer sind identisch geblieben, und müssen somit auch nur einmal programmiert werden.

« Vorheriges Kapitel   Tutorials
  Nächstes Kapitel »

Erstellt von daN-the-man, 05.02.2008 am 23:35
Zuletzt bearbeitet von BattleRattle, 12.06.2012 am 14:48
2 Kommentare , 37322 Betrachtungen

Dieser Text steht unter der GNU-Lizenz für freie Dokumentation


 

Lesezeichen

Artikel-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu
Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
dynamischer... wie???? Klopsee PHP 5 19.09.2007 08:34
Dynamischer Content Bereich xaykex PHP 2 06.06.2007 09:17
Dynamischer Methodenaufruf Eppi PHP 9 20.04.2007 15:41
Dynamischer Content tba.Aragorn HTML 6 16.06.2005 12:51
dynamischer funktionsaufruf Eppi JavaScript 0 03.12.2004 19:25


Alle Zeitangaben in WEZ +2. Es ist jetzt 06:13 Uhr.


Powered by vBulletin® Version 3.8.8 (Deutsch)
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd.
Powered by NuWiki v1.3 RC1 Copyright ©2006-2007, NuHit, LLC