include übergabewerte Problem

djbergo

Erfahrenes Mitglied
Hallo Leute,

Ich habe folgendes Problem:

Wenn ich eine Seite ansteuern möchte wie z.B. index.php?id=news
funktioniert dies zwar, aber wenn ich ausversehen newws eingebe bekomme ich eine Fehlermeldung die bis zum grund meiner Webseite reicht. Wie kann ich es machen, dass bei falscheingabe auf eine von mir zugewiesene Seite verwiesen wird?

Hier einmal der Code:

PHP:
<?
if(empty($_GET[id])){
$_GET[id] = "news/index";
}
include $_GET[id].".php";
?>
 
Das ist nicht so leicht da du ja definieren musst wie falsch etwas geschrieben sein kann damit es immer noch zugeordnet werden kann. Was du aber machen könntest ist bei falscheingabe einfach auf die Startseite weiterleiten bzw eine Fehlerseite ausgeben. Dazu könntest du ja schonmal mit der Funktion [phpf]file_exists[/phpf] arbeiten.
Ausserdem sollte man sämtliche Daten aus sicherheitsgründen, die der User verändern kann, überprüfen.
 
Du koenntest mit file_exists() ueberpruefen ob die zu includende Datei auch wirklich existiert.
Zusaetzlich koenntest Du noch mit is_readable() ueberpruefen ob diese Datei auch gelesen werden kann.

(!) Weiterhin besteht bei Dir die Gefahr des Cross-Site-Scripting, vorausgesetzt allow_url_fopen (bzw. allow_url_include ab PHP 5.2) ist on.
 
Zurück