if abfrage: bin ich zu blöd ?

Chino

Erfahrenes Mitglied
hm, ich hab bestimmt ein dickes brett vorm kopf aber dennoch hab ich folgendes prob:

PHP:
if($server != "" || $port != "" || $user != "" || $pass != "") { 
	
	(hier steht noch anderer code, der ausgefüht wird, den lass ich aber jetzt mal weg)
	echo "alles wurde ausgefüllt";
	
}else if{
	
	include("error.php");
}

is doch eigentlich ganz logisch ? nur wenn der user alle felder ausgefüllt hat, dann wird der code ausgefüht, ansonsten wird die datei "error.php" includet. so, das tut es aber nicht. sobald nur ein feld ausgefüllt ist, wird die obere schleife durchlaufenen ... :rolleyes:

HELP !
 
negativ, hatte ich schon versucht.

ich hab so ne abfrage schon tausendmal gemacht, bisher hats immer geklappt. was soll denn an so einem winzigem script falsch sein ?
 
das ist falsch:

}else if{ <--- da fehlt doch ne if-bedingung oder irre ich mich da?

include("error.php");
}
 
ups, das stimmt. aber auch nur mit }else{ oder mit }else if($server == "" || $port == "" || $user == "" || $pass == "") (also das gegenteil von oben) geht es nicht.
 
ersetze die || durch && (es sollen ja alle ausgefüllt werden, nicht blos eins).

|| steht für logisches ODER (übrigens äquivalent zu OR, nur andere priorität), während && für logisches UND steht.

ausserdem darf beim else {} clause nur dann ein if kommen, wenn du eine bedingung brauchst.
 
muss ich das versehen ?

folgendes script

PHP:
if($server == "" || $port == "" || $user == "" || $pass == "") {
	
	include("error.php");
	
} else {	
	echo "alles ausgefüllt";	
}
?>

GEHT ! also die abfrage reihenfolge im script geändert. nur, warum geht das SO aber andersrum nicht ?
 
logik-fehler

Code:
if($server != "" || $port != "" || $user != "" || $pass != "")

sobald eine der variablen nicht leer ist, ist die bedingung wahr, weil alles mit OR verknüpft ist. du willst doch nur in den oberen code, wenn _alle_ variablen einen inhalt haben, oder versteh ich dich da falsch?

Code:
if (! ($server == "" || $port == "" || $user == "" || $pass == ""))
oder
Code:
if ($server != "" && $port != "" && $user != "" && $pass != "")
 
GEHT ! also die abfrage reihenfolge im script geändert. nur, warum geht das SO aber andersrum nicht ?

weil so die error.php eingebunden wird, wenn eine der variablen leer ist. wenn eine der teilbedingungen wahr ist, ist die gesamte bedingung wahr, weil alles mit OR verbunden ist.
 
weil so die error.php eingebunden wird, wenn eine der variablen leer ist. wenn eine der teilbedingungen wahr ist, ist die gesamte bedingung wahr, weil alles mit OR verbunden ist.

jau, is wohl heut nich mein tag ... ;)
 
Zurück