PHP Include...

dandre

Mitglied
Hallo an alle,
ich habe vor eine neue Homepage zu erstellen mit 3 Bereichen :
1.) Banner
2.) Navigation
3.) Inhalt

Da diese Sete zuerst für jede kategorie(Home...) eine eigene Adresse haben soll(reicht http://www....de/index?.....) und nur der Inhalt geladen werden soll, habe ich mir gedacht mache ich es mit PHP Include. Dieser erste Versuch von mir ist unter http://hce.lima-city.de/andre/home.php (Ordner http://hce.lima-city.de/andre/ )zu finden. Ich weiß leider nicht, wie ich es hin bekomme, dass die Navigation automatisch nur den Inahltteil aktuallisiert. (Bsp. http://johny7). Bitte erklärt mir das. Oder schickt mir einen Link zu einem passenden Tutorial.

Danke Dieme
 
Eine bessere Lösung als die im Tutorial ist meiner Meinung nach diese:
PHP:
                    // Wenn Seite vorhanden: einbinden, wenn nicht: Fehler ausgeben
                    if (file_exists("deinordner/".$_GET['site'].".php")) {
                        include("deinordner/".$_GET['site'].".php"); }
                    else  { echo " <b><center>Noch nicht implementiert</center></b> "; }
Das ist noch einfacher, man muss nicht erst alles definieren, sondern PHP kuckt selber, ob die Datei existiert, und wenn nicht gibt sie eine Fehlermeldung aus. Man könnte natürlich auch
PHP:
else  { include("news.php"; }
machen, damit nicht ein Fehler, sondern die News-Seite ausgegeben wird.

Ich hoffe das hat geholfen!
 
Diese Lösung finde ich nicht schlecht. So wird nicht die error-page aufgerufen, wenn man nur die Index.php aufrufen sollte ...

index.php
PHP:
<?php 
include('config.php');

if(isset($_GET['GS']) AND isset($dateien[$_GET['GS']]))
{
 if(!file_exists($dateien[$_GET['GS']])) include $dateien['error-de'];

 include $dateien[$_GET['GS']]; 
}
else
{
if($_GET['GS'] == '')
{
include $dateien['home'];
}else{
include $dateien['error-de']; 
}
}
?>
config.php
PHP:
<?php
$dateien = array();
$dateien['home'] = "include/home.php";

$dateien['history-de'] = "include/history-de.php";
$dateien['history-eng'] = "include/history-eng.php";

$dateien['error-de'] = "include/error-de.php";
?>
 
Eine bessere Lösung als die im Tutorial ist meiner Meinung nach diese:
PHP:
                    // Wenn Seite vorhanden: einbinden, wenn nicht: Fehler ausgeben
                    if (file_exists("deinordner/".$_GET['site'].".php")) {
                        include("deinordner/".$_GET['site'].".php"); }
                    else  { echo " <b><center>Noch nicht implementiert</center></b> "; }
Das ist noch einfacher, man muss nicht erst alles definieren, sondern PHP kuckt selber, ob die Datei existiert, und wenn nicht gibt sie eine Fehlermeldung aus. Man könnte natürlich auch
PHP:
else  { include("news.php"; }
machen, damit nicht ein Fehler, sondern die News-Seite ausgegeben wird.

Ich hoffe das hat geholfen!
Du nimmst einen Parameter aus der URL ( die vom Anwender beinflusst werden kann ) direkt in deine Funktion zum includen einer Datei.
Das ist sehr unsicher und man könnte es ausnutzen um Inhalte anderer Seiten einzubinden oder bei einem schlecht konfiguriertem Webserver auf wichtige Systemdateien des Servers zuzugreifen..

Is nur nen Tipp bzw nen Hinweis.. ansonsten is der Code OK ;)

MFG
Sandro
 
Zurück