Welche Form von Includes für die Strukturierung meiner Seite

marcg85

Grünschnabel
Hallo liebe User,

ich habe mal eine Grundsatzfrage, die ich auch nach mehreren Suchen nicht wirklich beantwortet bekommen habe. Vielleicht verwende ich auch nur die falschen Suchwörter.
Im Internet gibt es verschiedene Tutorials zum Aufbau einer Homepage mit Includes. Die eine Variante ist die, in der man den Header, das Menü und den Footer included und jeweils den Content neu verändert:
PHP:
<?php  
include('header.php'); // bindet den Header ein  
?>  

Hier kommt der Seiteninhalt hin, der sogennante Content ....  

<?php  
include('footer.php'); // bindet den Footer ein  
?>


Die andere mir bekannte Variante ist die, dass man den Content immer wieder neu included, damit man URLs wie "index.php?page=home" bekommt:
PHP:
<html>
<head>
   <title></title>
</head>
<body>
<?php 
    $inc_array = array(); 
    $inc_dir=opendir ("./includes"); // Oeffne Ordner include 
     
    while ($inc = readdir ($inc_dir)) { 
         
        if($inc != "." && $inc != "..") { 
             
            $short_inc = str_replace(".inc.php", "", $inc); 
             
            array_push ($inc_array, $short_inc); 
        } 
         
    } closedir($inc_dir); // close Ordner include 
     
    if (isset($_GET[site]) && in_array($_GET[site], $inc_array) ) { 
         
        include("./includes/".strip_tags($_GET[site]).".inc.php"); 

    } else { 

        include("./includes/start.inc.php"); // Startseite 
    } 
?> 
</body>
</html>

Abgesehen davon, ob der jeweilige Code nun richtig ist oder nicht, würde mich brennend interessieren, wann entscheide ich mich für welche Variante.
Bei der zweiten Variante habe ich öfters das Problem mit "header already sent" und muss das dann für mich mit umwegen umgehen. Auch mit Sessions hatte ich da bisher Probleme, was wohl eher noch daran liegt das ich nicht ganz fit in der Sache bin!

Trotzdem muss es doch einen großen unterschied geben.
Wann nehme ich welche Methode?
Welche ist die bessere?
Kann ich mit beiden Methoden alles erreichen? (Loginsysteme, Formularzugriffe(Affenformulare) etc.)

Wäre sehr Dankbar, wenn man mir da evtl. helfen könnte. Und sollte das doch schon mal beantwortet worden sein, bitte ich wirklich um Verzeihung, da ich bei meiner Suche viele Themen rund um Includes gefunden habe, aber keine direkte Antwort auf diese Frage!

Gruß

Marc
 
Hallo Marc,
ganz knapp gesagt halte ich das für absolute Geschmackssache. Du hast mit beiden Methoden alle Möglichkeiten gegeben.

Bei der "Header-Footer-Include"-Methode, hast du den schönen Vorteil, das wenn du Beispielsweise Cookies setzen willst, das direkt in der gleichen Datei machen kannst, bevor du die Header-Datei einbindest. Bei der zweiten Methode müsstest du dir die "HTTP-Header-Behandlungen" in einer seperaten Datei anlegen. (Außer du arbeitest mit Output Buffering).

Ich für meinen Teil, verwende meist die zweite Methode. Dort ist es immer noch leicht gegeben schöne URLs mit dem Apache mod_rewrite Modul zu erstellen und die Dateien sind etwas übersichtlicher.

Grüße
Manuel Freiholz
 
Zurück