Webhilfe.info/board

Normale Version: Problem mit: PHP-SWITCH
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo!

Ich habe mit PHP ein "switch" gecodet, dass jeweils die Variable "category" und "showhtml" ändert.

Das "category" gibt den Pfad zum entsprechenden Ordner an und das "showhtml" gibt den Dateinamen im entsprechenden Ordner an.

Hier erstmal der PHP-Code:
PHP-Code:
<?php
switch($category){
case 
'main'$cat "main";
break;
case 
'intern'$cat "intern";
break;
default: 
header("Location: ?category=main&showhtml=index");
break;
}

switch(
$showhtml){
case 
'index': include(''.$cat.'/index.php');
break;
case 
'home': include(''.$cat.'/home.php');
break;
default: 
header("Location: ?category=main&showhtml=index");
break;
}
?>
Der "index"-Case ist für die "main"-Kategorie und der "home"-Case für die "intern"-Kategorie.

Wenn ich aber jetzt z.B. ?category=main&showhtml=home aufrufe, macht er dass, was er nicht machen sollte. Er versucht, eine home.php aus dem Ordner "main" zu includieren, obwohl es die nicht gibt und deshalb kommt dann klarerweise eine Fehlermeldung, dass es diese Seite nicht gibt.

Ich will aber, dass was auch immer man mit den zwei Variablen macht, man immer auf die Defaultseite weitergeleitet wird, sofern etwas mit den Variablen nicht stimmt.

Kann mir da bitte jemand helfen?
Ich verstehe um ehrlich zu sein deinen Code sowie deine ausführungen nicht ganz. Wenn du mal dein Beispiel simulierst, dann sollte dir klar sein, das er beide Var's besetzt und somit ist das kein Fehler sondern ein programmierer Fehler.

Mach das ganze doch nur mit einem switch in dem du dann u.U. noch ein zweites einbaust. Aber so wie du das machst müsstest du jetzt entweder die Vars prüfen oder noch anderer Bedingungen einbaun!
Bau dich noch eine kleine Überprüfung ala if(file-exists(datei)) rein. Wenn die Datei vorhanden ist dann kann sie geöffnet werden, wenn nicht ab zur Defaultseite.
Referenz-URLs