Query in Link SICHER! an DIV übergeben und dort anzeigen lassen

Cappaja

Erfahrenes Mitglied
Hallo,

inzwischen habe ich viele Foren durchstöbert und keine befriedigende Antwort erhalten. Ich habe ein Menü dessen Links in der Art index.php?page=test aufgebaut sind. nun könnte man ja wie folgt im entsprechenden DIV mittels include_once folgende Datei einbinden:

PHP:
if($_GET['page'] == "test")
{
include_once 'test.php';
}

1. Frage: ist dies absolut sicher?
2. Frage: gibt es eine elegantere Lösung ohne für jede Seite eine extra Fallunterscheidung machen zu müssen?
3. Frage: wie kann ich die zu ladenden Dateien in einem Ordner ablegen ohne sie unmittelbar auf derselben Ebene wie die index.php zu lagern?

Für eine kurze Hilfestellung wäre ich sehr dankbar

Gruß Cappaja
 
Am schönsten ist es meiner Meinung nach mit einer Whitelist... Und auch am sichersten.

PHP:
<?php
$pages = array(
  'test' => 'testordner/test.php',
  'test2' => 'test2.php'
);
if(isset($pages[$_GET['page']))
{
  include_once($pages[$_GET['page']);
}
else
{
  include_once('default.php');
}
?>
 
Hallo Felix,

erstmal Danke für den überaus guten Tipp. Allerdings funktionierte das Beispiel so bei mir nicht. Ich habe anstelle von in_array mit dem Befehl array_key_exists gearbeitet und so funktioniert es einwandfrei. Ich vermute das durch die Wertzuweisung mit dem Operator "=>" die Funktion in_array nicht richtig greift, so kam ich jedesmal in den else-Zweig. So funktioniert es nun:

PHP:
if(array_key_exists($_GET['page'], $whitelist))
	include_once $whitelist[$_GET['page']];
else
	include_once $whitelist['home'];

Gruß Cappaja
 
Zuletzt bearbeitet:
Zurück