Zitat:
Ich habe es so versucht, aber irgendwo steckt da der Wurm drin:
<?
switch ($tour)
{
case $line[Datei]:
include ("touren/$line[Datei]");
break;
}
|
das kann nicht funktionieren, weil case einen festen wert für den vergleich haben will.
das was du da jetzt gecodet hast erfordert doch überhaupt keinen switch, da kannst du doch gleich im include den dateinnamen dynamisch zusammensetzen:
include ("touren/$line[Datei]");
welchen sinn soll dabei noch der switch haben?
wenn es dir um die sicherheit geht, damit man keinen dateinamen übergeben kann, der z.b. in höhere verzeichnisse wechselt und dort sensible daten ausliest, dann überprüfe doch einfach den dateinamen mit einer regex, ob er wirklich nur aus dateiname plus -endung besteht, oder lösche einfach alle versuche das verzeichnis zu wechseln, aus dem string raus ("../" durch "" ersetzen); bzw. frage einfach ab, ob der dateiname einen slash enthält - wenn ja, gib eine meldung aus, anderfalls include die datei.
dann kann nur auf dateien innerhalb des verzeichnisses touren zugegriffen werden.