Zitat Zitat von Spark Amandil Beitrag anzeigen
Code:
include($page);
Bitte nicht, da könnte man ja _alles_ includen (also der User per Manipulation).
Besser wäre imho: include('./pages/'. stripsplashes($page).'.php');

So können nur php Seiten innerhalb des Unterverzeichnisses 'pages' aufgerufen werden. Bei den Links muss man nun halt die Endung weglassen. Also: <a href="?page=home">My Home</a> <!-- führt zu ./pages/home.php -->

Auch sachen wie <a href="?page=../../index">My Home</a> gehen nicht mit meiner Methode (dank stripsplashes).

Zusätzlich würde ich eine überprüfung auf vorhandensein einbauen:
Code:
if (file_exists('./pages/'. stripsplashes($page).'.php')) {
  include('./pages/'. stripsplashes($page).'.php');
}
else {
  echo "404: Unterseite nicht gefunden.";
  echo "Bitte begeben Sie sich auf <a href='index.php'>die Hauptseite</a>";
}
Damit der User nicht eventuelle PHP Fehler sehen muss.