PHP || if, elseif, else Problem

kreilinger

Ensign
Registriert
Aug. 2004
Beiträge
221
hallo, habe folgenden code zum testen geschrieben:

PHP:
<?php
	if ($p == "start") {
		include('index.html'); }
	elseif ($p == "aktuelles") {
		include('html/aktuelles.html'); }
	elseif ($p == "wus") {
		include('html/wus.html'); }
	elseif ($p == "wissenswertes") {
		include('html/wissenswertes.html'); }
	elseif ($p == "anfahrt") {
		include('html/anfahrt.html'); }
	elseif ($p == "links") {
		include('html/links.html'); }
	elseif ($p == "links" && $sub =="1") {
		include('html/linkformular.html'); }

   else
{
   echo '<h1>keine oder falsche variable</h1>';
}

?>

wenn ich nun die adresse (www.meinedomain.com/switch.php?p=links) aufrufe, wird die seite links.html includet.

will ich jetzt aber dies seite linkformular.html aufrufen, so schreibe ich folgendes (www.meinedomain.com/switch.php?p=links&sub=1)

so müsste ich doch eigentlich zur seite linkformular kommen, oder?

oder ist mir ein fehler im code unterlaufen?

danke im voraus!
 
AW: PHP || if, elseif, else......PROBLEM

Ich bin nicht sicher, aber ich denke der Fehler könnte daher kommen, dass du sozusagen wiedersprüchliche Anweisungen herusgibst.

Denn diese Abfrage ist ja erfüllt auch wenn da noch ein Sub hintendranhängt

elseif ($p == "links") {
include('html/links.html'); }

Also konkurriert sie mit dieser Abfrage die nachher kommt

elseif ($p == "links" && $sub =="1") {
include('html/linkformular.html'); }

Ich bin nur momentan unsicher, ob die zweite Abfrage überhaupt noch durchlaufen wird wenn die erste schon 'positiv' ist oder ob die zweite einfach nicht mehr ausgeführt werden kann weil die erste bereits ein Gegenteiliges Kommando ausgegeben hat.


Aber wie gesagt, sicher bin ich mir überhaupt nicht.
 
AW: PHP || if, elseif, else......PROBLEM

ja, hört sich irgentwie logisch an aber.....

wie kann ich es dann anstellen, dass wenn 2 variablen übereinstimmen eine bestimmte seite (linkformular.html) ausgegeben wird?

lg
 
AW: PHP || if, elseif, else......PROBLEM

genau das ist der fehler.
einfach die reihenfolge ändern

elseif ($p == "links" && $sub =="1") {
include(
'html/linkformular.html'); }
elseif ($p == "links") {
include(
'html/links.html'); }

oder

elseif ($p == "links" && $sub !="1") {
include(
'html/links.html'); }
elseif ($p == "links" && $sub =="1") {
include(
'html/linkformular.html'); }


oder das if "links" verschachteln, oder oder
 
danke, der tipp mit dem "vertauschen" hats gebracht!

ist ja auch irgendwie logsich........ :D
 
hi, nutz doch dafür die "case"-schleife von PHP bewirkt das gleiche ist aber einfacher ^^
 

Ähnliche Themen

Antworten
10
Aufrufe
1.523
+ BELA B. +
B
Antworten
10
Aufrufe
1.366
Mr. Snoot
M
Zurück
Oben