PHP Content über Include befehl

som3

Lieutenant
Registriert
Jan. 2010
Beiträge
992
Hallo.
Seit einigen tagen versuche ich mich im PHP.

Mir gelingt es nicht immer Sachen aus Anleitungen in der Praxis anzuwenden.
So auch bei dieser Anleitung zum Thema Include
http://www.php-space.info/php/space/include-in-php.php

Ich habe mir eine kleine Website erstellt.
(Nicht besonderes (http://hwexxy.me.gp/)
Ist ja erst mal zu zum lernen ;D)

Und um nicht immer 10PHP Dateien zu ändern für einen neuen Menü Punkt, wollte ich alles über die Index laufen lassen.
Und den Content über Include in meine Conten div zu laden.

Aber wie schaffe ich es das zb das Kontakt Script in den Content geladen wird wenn man auf Kontakt klickt oder die Videos wenn man auf Medien -> Videos Klickt?


Index.php
Code:
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<!-- TemplateBeginEditable name="doctitle" -->
<title>Hwexxy</title>
<!-- TemplateEndEditable -->
<!-- TemplateBeginEditable name="head" -->
<!-- TemplateEndEditable -->
<link href="css/stylesheet.css" rel="stylesheet" type="text/css"><!--[if lt IE 9]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<script src="SpryAssets/SpryMenuBar.js" type="text/javascript"></script>
<link href="SpryAssets/SpryMenuBarVertical.css" rel="stylesheet" type="text/css">
</head>

<body>

<div class="container">
  <header>
    <a href="#"><img src="bilder/logo.png" alt="Hier Logo einfügen" width="220" height="90" id="Insert_logo" style="background: #C6D580; display:block;" /></a>
  </header>
  <div class="sidebar1">
    <ul id="MenuBar1" class="MenuBarVertical">
    <li><a href="#">--->Startseite</a></li>
    <li><a href="#">--->G&auml;stebuch</a></li>
    <li><a href="#">--->Kontakt</a></li>
    <li><a class="MenuBarItemSubmenu" href="#">--->Medien</a>
        <ul>
          <li><a href="#">Videos</a></li>
          <li><a href="#">Bilder</a></li>
          <li><a href="#">Musik</a></li>
        </ul>
      </li>

    </ul>
<aside>
      <p><strong>Urheberrech</strong></p>
      <h5>Die durch die Seitenbetreiber erstellten Inhalte und Werke auf     diesen Seiten         unterliegen dem deutschen Urheberrecht. Die   Vervielfältigung,   Bearbeitung, Verbreitung und         jede Art der   Verwertung außerhalb der Grenzen des Urheberrechtes   bedürfen           der schriftlichen Zustimmung des jeweiligen Autors bzw.   Erstellers.   Downloads         und Kopien dieser Seite sind nur für den privaten,   nicht   kommerziellen         Gebrauch gestattet. Soweit die Inhalte auf   dieser Seite nicht vom   Betreiber erstellt wurden,         werden die   Urheberrechte Dritter beachtet. Insbesondere werden   Inhalte Dritter   als solche         gekennzeichnet. Sollten Sie trotzdem auf eine     Urheberrechtsverletzung aufmerksam werden, bitten wir um einen     entsprechenden Hinweis.         Bei Bekanntwerden von Rechtsverletzungen   werden wir derartige   Inhalte umgehend entfernen. <a href="http://hwexxy.me.gp/disclaimer.php">mehr...</a></h5>
</aside>
  <!-- end .sidebar1 --></div>
  <div class="content">
    <p>&nbsp;</p>
    <p>&nbsp;</p>
    <p>CONTENT!!</p>
  </div>
  
  <aside>
    <h4>Kein Impressum!</h4>
    <p>Wie sich aus § 55 I Rundfunkstaatsvertrag (RStV) ergibt, trifft einen   Anbieter somit nur dann keine Impressumspflicht und er kann seine   Webseite völlig anonym ins Internet stellen, wenn sein Angebot   ausschließlich persönlichen oder familiären Zwecken dient.</p>
  </aside>
  <footer>
  <center>| Copyright 2011 | hwexxy.my.gp is powered by Hwexxy - Alle Rechte vorbehalten | Design © Hwexxy |
  <script type="text/javascript" src="http://www.ipcounter.de/count_js.php?u=68104077&amp;color=pink"></script>|</center></footer>
  <!-- end .container --></div>
<script type="text/javascript">
var MenuBar1 = new Spry.Widget.MenuBar("MenuBar1", {imgRight:"SpryAssets/SpryMenuBarRightHover.gif"});
</script>
</body>
</html>
Schonmal danke für die Hilfe :)


/E Ich arbeite mit Dreamweaver CS5
 
Du verlinkst die Seiten mit über einen Paramter, den du abfragst und dementsprechend die jew. Seite einbindest.

PHP:
...

<a href="index.php?seite=kontakt">Kontakt</a>
<a href="index.php?seite=videos">Videos</a>

...

<?php

  if(isset($_GET['seite']))
  {
    include($_GET['seite'] . ".php");
    // entspricht dann bspw. kontakt.php, videos.php usw., in denen der jew. Inhalt steht
  }

?>

Aber die GET-Parameter bitte prüfen (bspw. nur bestimmte Werte zulassen: if($_GET['seite'] == "kontakt" || $_GET['seite'] == "videos")) bzw. mit htmlspecialchars() entschärfen.
 
Zuletzt bearbeitet:
Ehm
ich glaube das ist noch nicht ganz richtig oder?

http://hwexxy.me.gp/

/e Oh ich sollte lieber alles um den Content löschen :D
Ups xD
 
Zuletzt bearbeitet:
Zu meinen Anfängen mit PHP hab ich include als ein sehr grosses Sicherheitsproblem gesehen, da man darüber, falls der Parameter nicht geprüft wird, alles einbinden(/includen) kann, worauf der PHP-Interpreter Zugriff hat.

Um jedoch nicht dutzende $_GET['seite'] == "kontakt" usw. einsetzen zu müssen, habe ich es anders gelöst:

Ordner im Hauptverzeichnis erstellen, worin die Seiten gespeichert werden. (in diesen Beispielen hat der Ordner den Namen pages)
OOP:
PHP:
<?PHP
$Pages = array(); // Array, welches die erlaubten Seitennamen enthält (Anfangs jedoch leer)

function registerPages() {
	global $Pages;
	$pageHandle = opendir('./pages/');
	while($phPage = readdir($pageHandle)) {
		if($phPage != '.' && $phPage != '..' && $phPage != '.htaccess' && $phPage && is_dir('./pages/'.$phPage)===false) { /* Hier wird geprüft, dass keine Ordner ausgewählt werden, ausserdem keine [I].[/I] , [I]..[/I] oder [I].htaccess[/I] */
			$phKey = substr($phPage,0,strpos($phPage,'.')); // Dateinamen (ohne .php)
			$Pages[$phKey] = $phPage; /* Dateiname (ohne .php) ist der Schlüssel zum echten Dateinamen (mit .php) */
		}
	}
	closedir($pageHandle);
}

registerPages(); // Array füllen
?>

Natürlich würde es mit OOP besser aussehen, jedoch weiss ich nicht ob du das schon verstehst. :)

Um zu prüfen ob die Seite gültig ist, einfach diese Funktionen verwenden:
PHP:
<?PHP
function cP($page) { // überprüft ob eine solche Datei verfügbar ist
	global $Pages;
	if(is_file('./pages/'.$Pages[$page])) {
		return true;
	}
	else {
		return false;
	}
}

public function gP($page) { // falls die Datei vorhanden ist, wird der Name der Datei ausgegeben, sonst eine Fehlerseite
	global $Pages;
	if(cP($page)) {
		return $Pages[$page]; // richtigen Dateinamen ausgeben
	}
	else {
		return 'error.php'; // Fehlerseite ausgeben (Name auch änderbar)
	}
}
?>

Dann das Includen:
PHP:
<?PHP
if(isset($_GET['page']) && !empty($_GET['page'])) { // überprüfen, ob die GET-Variable verfügbar ist
	include('./pages/'.gP($_GET['page'])); // include...
}
?>

Damit kann ausgeschlossen werden, dass solche Konstrukte entstehen:
Code:
http://www.deineseite.tld/index.php?page=../admin/passwords.txt
(Aber eine solche Datei auf der Webseite zu haben ist sowieso sehr fahrlässig.. :D)

Das Array $Pages dient dabei als Whitelist, da nur Dateien, welche auch wirklich IN pages vorhanden sind, eingebunden werden können.

Freundliche Grüsse,
Spartan-117

€: Hoffentlich nicht zu schwer zu verstehen.. :D
 
Zuletzt bearbeitet:
Ehm .. xD
Wenn du Lust hast könntest du mir Via Skype helfen :D
Das wäre sehr nett von dir :D


Jetzt muss ich erst mal meine passwort.txt löschen ;D
 
Hier eine Einbindung in deine Seite (ohne Gewähr auf Funktionalität :)):

PHP:
<?PHP
header('Content-Type: text/html; charset=UTF-8'); // Umlaute richtig anzeigen
$Pages = array(); // Array, welches die erlaubten Seitennamen enthält (Anfangs jedoch leer)

function registerPages() {
    global $Pages;
    $pageHandle = opendir('./pages/');
    while($phPage = readdir($pageHandle)) {
        if($phPage != '.' && $phPage != '..' && $phPage != '.htaccess' && $phPage && is_dir('./pages/'.$phPage)===false) { /* Hier wird geprüft, dass keine Ordner ausgewählt werden, ausserdem keine [I].[/I] , [I]..[/I] oder [I].htaccess[/I] */
            $phKey = substr($phPage,0,strpos($phPage,'.')); // Dateinamen (ohne .php)
            $Pages[$phKey] = $phPage; /* Dateiname (ohne .php) ist der Schlüssel zum echten Dateinamen (mit .php) */
        }
    }
    closedir($pageHandle);
}

registerPages(); // Array füllen

function cP($page) { // überprüft ob eine solche Datei verfügbar ist
    global $Pages;
    if(is_file('./pages/'.$Pages[$page])) {
        return true;
    }
    else {
        return false;
    }
}

public function gP($page) { // falls die Datei vorhanden ist, wird der Name der Datei ausgegeben, sonst eine Fehlerseite
    global $Pages;
    if(cP($page)) {
        return $Pages[$page]; // richtigen Dateinamen ausgeben
    }
    else {
        return 'error.php'; // Fehlerseite ausgeben (Name auch änderbar)
    }
}
?>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<!-- TemplateBeginEditable name="doctitle" -->
<title>Hwexxy</title>
<!-- TemplateEndEditable -->
<!-- TemplateBeginEditable name="head" -->
<!-- TemplateEndEditable -->
<link href="css/stylesheet.css" rel="stylesheet" type="text/css"><!--[if lt IE 9]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<script src="SpryAssets/SpryMenuBar.js" type="text/javascript"></script>
<link href="SpryAssets/SpryMenuBarVertical.css" rel="stylesheet" type="text/css">
</head>

<body>

<div class="container">
  <header>
    <a href="#"><img src="bilder/logo.png" alt="Hier Logo einfügen" width="220" height="90" id="Insert_logo" style="background: #C6D580; display:block;" /></a>
  </header>
  <div class="sidebar1">
    <ul id="MenuBar1" class="MenuBarVertical">
    <li><a href="index.php">--->Startseite</a></li>
    <li><a href="index.php?page=gb">--->G&auml;stebuch</a></li>
    <li><a href="index.php?page=contact">--->Kontakt</a></li>
    <li><a class="MenuBarItemSubmenu" href="index.php?page=medien">--->Medien</a>
        <ul>
          <li><a href="index.php?page=medien">Videos</a></li>
          <li><a href="index.php?page=medien">Bilder</a></li>
          <li><a href="index.php?page=medien">Musik</a></li>
        </ul>
      </li>

    </ul>
<aside>
      <p><strong>Urheberrech</strong></p>
      <h5>Die durch die Seitenbetreiber erstellten Inhalte und Werke auf     diesen Seiten         unterliegen dem deutschen Urheberrecht. Die   Vervielfältigung,   Bearbeitung, Verbreitung und         jede Art der   Verwertung außerhalb der Grenzen des Urheberrechtes   bedürfen           der schriftlichen Zustimmung des jeweiligen Autors bzw.   Erstellers.   Downloads         und Kopien dieser Seite sind nur für den privaten,   nicht   kommerziellen         Gebrauch gestattet. Soweit die Inhalte auf   dieser Seite nicht vom   Betreiber erstellt wurden,         werden die   Urheberrechte Dritter beachtet. Insbesondere werden   Inhalte Dritter   als solche         gekennzeichnet. Sollten Sie trotzdem auf eine     Urheberrechtsverletzung aufmerksam werden, bitten wir um einen     entsprechenden Hinweis.         Bei Bekanntwerden von Rechtsverletzungen   werden wir derartige   Inhalte umgehend entfernen. <a href="http://hwexxy.me.gp/disclaimer.php">mehr...</a></h5>
</aside>
  <!-- end .sidebar1 --></div>
  <div class="content">
<?PHP
if(isset($_GET['page']) && !empty($_GET['page'])) { // überprüfen, ob die GET-Variable verfügbar ist
    include('./pages/'.gP($_GET['page'])); // include...
}
else {
    include('./pages/home.php');
}
?>
  </div>
  
  <aside>
    <h4>Kein Impressum!</h4>
    <p>Wie sich aus § 55 I Rundfunkstaatsvertrag (RStV) ergibt, trifft einen   Anbieter somit nur dann keine Impressumspflicht und er kann seine   Webseite völlig anonym ins Internet stellen, wenn sein Angebot   ausschließlich persönlichen oder familiären Zwecken dient.</p>
  </aside>
  <footer>
  <center>| Copyright 2011 | hwexxy.my.gp is powered by Hwexxy - Alle Rechte vorbehalten | Design © Hwexxy |
  <script type="text/javascript" src="http://www.ipcounter.de/count_js.php?u=68104077&amp;color=pink"></script>|</center></footer>
  <!-- end .container --></div>
<script type="text/javascript">
var MenuBar1 = new Spry.Widget.MenuBar("MenuBar1", {imgRight:"SpryAssets/SpryMenuBarRightHover.gif"});
</script>
</body>
</html>

Natürlich brauchst du dafür im Hauptverzeichnis einen Ordner namens pages.
Ausserdem noch diverse Dateien, z.B. eine home.php (Startseite), error.php (Fehlerseite), gb.php (Gästebuch) und andere Seiten, welche in deiner Navigation stehen. :) (Die Seiten müssen nicht unbedingt .php als Endung haben :D)

Freundliche Grüsse,
Spartan-117

P.S. Die passwort.txt zu löschen ist ein guter Anfang. :D

€: Wie in der PN geschrieben wäre es vorteilhaft, wenn du den Code auch zu verstehen versuchst... ;)
 
Warum nicht einfach so? das müsste er verstehen und sicher ist das :)
Ein Mix aus if und switch.


PHP:
<?php 
 
if(isset($_GET['nav'])) {
 
   $nav = trim($_GET['nav']);
 
  switch($nav) {
  case 'kontakt': 
  if(file_exists('dir/bla.inc.php')) {
  include 'dir/bla.inc.php'; 
  }
  break;
  case 'feedbacks': 
  if(file_exists('dir/blu.inc.php')) {
  include 'dir/blu.inc.php'; 
  } 
  break;
...
....
 
 
usw..
 
...
 
?>

Einfaches Konstrukt, du prüfst ob es für das case eine Datei gibt, wenn nicht kannst du z.B. eine Fehlermeldung ausgeben oder was auch immer machen.
Du kannst entweder in jedem case mit 'else' reagieren oder am Schluss global. Wenn etwas kommt was garnicht existiert, da kannst du auch drauf reagieren, und zwar mit 'default' am Schluss oder einfach garnichts machen.
Du kannst das natürlich noch weiter absichern.

Ist denke ich etwas verständlicher für dich, und genauso sicher wie die array Sache die natürlich schöner ist.

Zusätzlich würde ich IMMER mit htaccess die Sache maskieren, also das im Brower nicht sowas steht: index.php?nav=kontakt

sondern einfach das
kontakt

oder das
kontakt.html

oder das
/kontakt/

oder eventl. das
mail_an_den_webmaster
 
Zuletzt bearbeitet:
Okay. das htaccsess dazu in der lage sind wusste ich nicht.

Ich habe sie immer für 404 oder Passwort Geschütze Bereiche genutzt.

Hättest du vielleicht eben ein Keyword oder einen Link zu dem Thema mit dem maskieren?

/E

Noch eine frage wenn ich den Content von der Startseite in die Index schreibe tauscht der Content auf jeder Seite auf.
Wie fixe ich das?
oder wie richte ich eine startseite.php ein die in die Index sofort beim aufrufen der Seite includet wird und beim klick auf eine andere Seite wieder verschwindet?

/E2
Liegt das am Freehoster das es solange dauert bis das Javascript für das Submenü geladen ist?
 
Zuletzt bearbeitet:
Die erste Frage habe ich nicht verstanden.

Die zweite:
Du möchtest das sich z.B. eine News sofort beim Start der Domain automatisch includiert, richtg?

PHP:
#.htaccess bsp. für die Sache oben.
 
Options +FollowSymlinks
RewriteEngine On
RewriteBase /
 
RewriteRule ^mail$ index.php?nav=contact [L]

Der Link: <a href="mail">Kontakt</a> lautet dann einfach nur mail
 
mit dem PhP code hat sich die erste Frage erledigt :)
Habe nach einem Beispiel gefragt oder wonach ich suchen muss damit ich etwas finden kann.

Zu zwei:
Ja so in der Art.

Wenn ich die Domain aufrufe direkt startseite.php includiert wird.

Momentan muss ich auf die Domain und dann auf Startseite klicken damit die Startseite angezeigt wird.
denn alles was ich in die Index.php schreibe bleibt auch drin wenn ich auf Kontakt gehen.

auch an dich, oder alle anderen.
Ihr habt alle mehr Kenntnisse als ich, wer also Lust hat mir mal 10-20Minuten zu Helfen, kann mich gerne in Skype adden.
wäre echt nice von euch!
 
Zuletzt bearbeitet:
PHP:
#In dem Konstrukt der fürs einfügen verantwortlich ist.
#Wenn du das mit switch case machst, dann schreibe
#entweder...
 
case '': 
 include 'startseite.php'; 
break;
 
oder ans Ende
 
default:
 include 'startseite.php'; 
break;
 
oder auch beides....
 
#Wenn du es mit if else machst dann...noch ein elseif
#oder als letztes das mit else...
 
elseif($_GET['nav'] == "") {  //kleiner Patzer beseitigt, wobei du das auch als letztes, als else nehmen kannst.
include_once('startseite.php');
}
 
#Kannst aber auch am Anfang sofort mit empty prüfen.
#Da du ja weisst das du die Startseite zuerst haben willst.
 
Zuletzt bearbeitet:
@Spartan: Von solchen Directory Scans halte ich wenig. Das Problem dabei ist nämlich, dass jede PHP-Datei im Verzeichnis sofort zugängig ist.. und zwar unabhängig davon ob das gewüscht ist. Backups z.B.
Außerdem bitte nicht vergessen das komplette Verzeichnis per htaccess zu sperren falls es aus dem Web erreichbar ist, sonst können hässliche Dinge passieren.

@Belee: Die if/switch Konstruktion ist sehr umständlich. Immer wenn neue Seiten dazu kommen musst du dann die Datei modifizieren. Das würde im Normalfall niemand so machen. Üblich ist es solche Funktionen über die Datenbank abzuwickeln. So würde es auch ein CMS tun.
 
Halte ich nix von @ice..das ist eine Navi, wenn diese von der DB abhängig ist und die DB ausfällt, wie navigierst du dann auf der Seite?

Auch finde ich das bis 20-30 Links absolut nicht umständlich. DB schön und gut nur man sollte jetzt nicht auf Teufel komm raus alles darin verfrachten, das ist meiner Meinung nach auch ein Fehler. Aber jeder wie er mag. Beides bzw. alle 3 Methoden funktionieren und erfüllen den Zweck, letztendlich muss jeder selbst wissen wie er das bei sich umsetzen möchte.
 
Zuletzt bearbeitet:
@IceMatrix: Deshalb ja auch ein eigenes Verzeichnis, in welchem nur die Seiten gespeichert sind und keine BackUps o.ä. :)
Trotzdem könnte man die BackUps in einem Unterverzeichnis ablegen, da diese im aktuellen Script nicht eingelesen werden. ;)

Ausserdem sollte man noch z.B. ein define('INCLUDE','Blubb') in der index.php setzen welches danach in jeder Datei mit defined('INCLUDE') überprüft wird. (Zur Erkennung, ob die Datei auch wirklich eingebunden wird)

@Belee: Bei deinem Konstrukt geht jedoch die dynamik verloren, d.h. man kann die Seiten nicht einfach einfügen, sondern muss in der index.php ein neues case-Konstrukt machen, was auf Dauer ziemlich umständlich werden kann. ;)
 
Richtig, doch ich denke immer noch. Jemand der erst anfängt versteht das erst einmal eher als deinen Code, welcher meiner Meinung nach doch schon jemand sucht der genau weiß was da passiert.
Und hier geht es doch jetzt nicht darum was besser ist sondern um dem Menschen da oben etwas zu geben womit er selbst erst einmal was anfangen und verstehen kann. Später kann er dann doch selbst die Sache verbessern, doch dazu muss er halt klein anfangen. Du kannst einem Azubi nicht sofort einen Daimler hinstellen und sagen das dies und jenes ist defekt, mach fertig.
 
Belee schrieb:
Warum nicht einfach so? das müsste er verstehen und sicher ist das :)
Ein Mix aus if und switch.

wenn man es selbst programmiert, weiß man auch, dass die Dateien zum inkludieren existieren (oder man merkt es gleich), da kann man sich dann auch den file_exists-Check sparen. Vor allem weil wenn die Datei nicht existiert gar nichts inkludiert wird und das noch "mysteriöser" aussieht:

PHP:
<?php 
 
$nav = (isset($_GET['nav'])) ? trim($_GET['nav']) : '';
 
switch($nav) {
  case '':
    require_once '/inc/home.inc.php';
    break;
  case 'poll':
    require_once '/inc/poll.inc.php';
    break;
  // ...
  default:
    header("HTTP/1.1 404 Not Found");
    require_once '/inc/404.inc.php';
    break;
}
 
?>


Belee schrieb:
das ist eine Navi, wenn diese von der DB abhängig ist und die DB ausfällt, wie navigierst du dann auf der Seite?
wenn die Datenbank ausfällt hast du deutlich größere Probleme als deine Navigation :lol:
Sofern deine Seite nicht aus statischem Inhalt besteht, wird sowieso kaum noch Inhalt da sein.
Die Wahrscheinlichkeit, dass die DB alleine abstürzt ist auch deutlich geringer, als dass es gleich den ganzen Server erwischt.
 
Also MySQL möchte ich erstmals nicht verwenden.

An das Thema traue ich mich noch nicht wirklich dran.


Und der Code von Spartan ist momentan am verständlichsten.
Also ich versteh was man passiert und so.

Das kann ich beim code von Belee und ice nicht.


Wobei ich auch sagen muss das der code von Mr.Snoot Funktioniert
PHP:
<?php

  if(isset($_GET['seite']))
  {
    include($_GET['seite'] . ".php");
  }

?>

Ich werde jetzt mal versuchen Spartans code einzubauen.
Ergänzung ()

Also der Code von Spartan Funktioniert so nicht.
 
<||><Som3><||> schrieb:
Und der Code von Spartan ist momentan am verständlichsten.
Also ich versteh was man passiert und so.
<||><Som3><||> schrieb:
Ergänzung ()

Also der Code von Spartan Funktioniert so nicht.
soviel zu verstanden ....

<||><Som3><||> schrieb:
Wobei ich auch sagen muss das der code von Mr.Snoot Funktioniert
erlaubt aber eben jede Seite einzubinden, die jemand in der Browser-URL eingibt. Deine Besucher sind dir nicht alle wohlgesonnen und werden auch böse Dinge ausprobieren: Remote file inclusion

<||><Som3><||> schrieb:
Das kann ich beim code von Belee und ice nicht.
PHP: switch - Manual
Es wird einfach geschaut welche Seite angefordert wurde und dementsprechend die Datei includiert. Mach dich mit dem switch-Statement vertraut, es ist nur eine deutliche Versimpelung einer IF-Kette ;)



Wenn du nur Code kopierst, kommst du nicht weit. Du musst ihn voll verstehen!
 
Zuletzt bearbeitet:
Oh tut mir leid, hatte im Code noch ein "public" drin..

So müsste es funktionieren:
PHP:
<?PHP
header('Content-Type: text/html; charset=UTF-8'); // Umlaute richtig anzeigen
$Pages = array(); // Array, welches die erlaubten Seitennamen enthält (Anfangs jedoch leer)

function registerPages() {
    global $Pages;
    $pageHandle = opendir('./pages/');
    while($phPage = readdir($pageHandle)) {
        if($phPage != '.' && $phPage != '..' && $phPage != '.htaccess' && $phPage && is_dir('./pages/'.$phPage)===false) { /* Hier wird geprüft, dass keine Ordner ausgewählt werden, ausserdem keine [I].[/I] , [I]..[/I] oder [I].htaccess[/I] */
            $phKey = substr($phPage,0,strpos($phPage,'.')); // Dateinamen (ohne .php)
            $Pages[$phKey] = $phPage; /* Dateiname (ohne .php) ist der Schlüssel zum echten Dateinamen (mit .php) */
        }
    }
    closedir($pageHandle);
}

registerPages(); // Array füllen

function cP($page) { // überprüft ob eine solche Datei verfügbar ist
    global $Pages;
    if(is_file('./pages/'.$Pages[$page])) {
        return true;
    }
    else {
        return false;
    }
}

function gP($page) { // falls die Datei vorhanden ist, wird der Name der Datei ausgegeben, sonst eine Fehlerseite
    global $Pages;
    if(cP($page)) {
        return $Pages[$page]; // richtigen Dateinamen ausgeben
    }
    else {
        return 'error.php'; // Fehlerseite ausgeben (Name auch änderbar)
    }
}
?>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<!-- TemplateBeginEditable name="doctitle" -->
<title>Hwexxy</title>
<!-- TemplateEndEditable -->
<!-- TemplateBeginEditable name="head" -->
<!-- TemplateEndEditable -->
<link href="css/stylesheet.css" rel="stylesheet" type="text/css"><!--[if lt IE 9]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<script src="SpryAssets/SpryMenuBar.js" type="text/javascript"></script>
<link href="SpryAssets/SpryMenuBarVertical.css" rel="stylesheet" type="text/css">
</head>

<body>

<div class="container">
  <header>
    <a href="#"><img src="bilder/logo.png" alt="Hier Logo einfügen" width="220" height="90" id="Insert_logo" style="background: #C6D580; display:block;" /></a>
  </header>
  <div class="sidebar1">
    <ul id="MenuBar1" class="MenuBarVertical">
    <li><a href="index.php">--->Startseite</a></li>
    <li><a href="index.php?page=gb">--->G&auml;stebuch</a></li>
    <li><a href="index.php?page=contact">--->Kontakt</a></li>
    <li><a class="MenuBarItemSubmenu" href="index.php?page=medien">--->Medien</a>
        <ul>
          <li><a href="index.php?page=medien">Videos</a></li>
          <li><a href="index.php?page=medien">Bilder</a></li>
          <li><a href="index.php?page=medien">Musik</a></li>
        </ul>
      </li>

    </ul>
<aside>
      <p><strong>Urheberrech</strong></p>
      <h5>Die durch die Seitenbetreiber erstellten Inhalte und Werke auf     diesen Seiten         unterliegen dem deutschen Urheberrecht. Die   Vervielfältigung,   Bearbeitung, Verbreitung und         jede Art der   Verwertung außerhalb der Grenzen des Urheberrechtes   bedürfen           der schriftlichen Zustimmung des jeweiligen Autors bzw.   Erstellers.   Downloads         und Kopien dieser Seite sind nur für den privaten,   nicht   kommerziellen         Gebrauch gestattet. Soweit die Inhalte auf   dieser Seite nicht vom   Betreiber erstellt wurden,         werden die   Urheberrechte Dritter beachtet. Insbesondere werden   Inhalte Dritter   als solche         gekennzeichnet. Sollten Sie trotzdem auf eine     Urheberrechtsverletzung aufmerksam werden, bitten wir um einen     entsprechenden Hinweis.         Bei Bekanntwerden von Rechtsverletzungen   werden wir derartige   Inhalte umgehend entfernen. <a href="http://hwexxy.me.gp/disclaimer.php">mehr...</a></h5>
</aside>
  <!-- end .sidebar1 --></div>
  <div class="content">
<?PHP
if(isset($_GET['page']) && !empty($_GET['page'])) { // überprüfen, ob die GET-Variable verfügbar ist
    include('./pages/'.gP($_GET['page'])); // include...
}
else {
    include('./pages/home.php');
}
?>
  </div>
  
  <aside>
    <h4>Kein Impressum!</h4>
    <p>Wie sich aus § 55 I Rundfunkstaatsvertrag (RStV) ergibt, trifft einen   Anbieter somit nur dann keine Impressumspflicht und er kann seine   Webseite völlig anonym ins Internet stellen, wenn sein Angebot   ausschließlich persönlichen oder familiären Zwecken dient.</p>
  </aside>
  <footer>
  <center>| Copyright 2011 | hwexxy.my.gp is powered by Hwexxy - Alle Rechte vorbehalten | Design © Hwexxy |
  <script type="text/javascript" src="http://www.ipcounter.de/count_js.php?u=68104077&amp;color=pink"></script>|</center></footer>
  <!-- end .container --></div>
<script type="text/javascript">
var MenuBar1 = new Spry.Widget.MenuBar("MenuBar1", {imgRight:"SpryAssets/SpryMenuBarRightHover.gif"});
</script>
</body>
</html>

Wenn es aus irgend einem Grund trotzdem nicht funktionieren sollte, bitte eine Fehlerbeschreibung und ggf. Fehlercode posten. ;)
 
Zurück
Oben