Groessere if(); abfrage funktioniert nicht

loki2002

Erfahrenes Mitglied
Hi,

ich habe folgende session variablen registered.. "userlevel" .. nun moechte ich eine if abfrage machen und zwar so..

Code:
if($userlevel=="rookie" and $s="sub1" xor $s="sub5" xor $s="sub7") {

echo"hier hat nur rookie zugang";
exit;

}

hier soll halt ueberprueft werden ob $s == sub1 oder sub5 etc gewaehlt worden ist... und zugang nur fuer level==rookie

nun ist das problem das $userlevel=="elite" zb. das gleiche zusehen bekommt, dass sollte aber nicht der fall sein.. was mach ich falsch... bzw.. "xor" ist doch eigentlich ein "entweder/oder" operator, oder liege ich da falsch?

Danke schonmal fuer die hilfe.. :-)
 
ich hab keine ahnung, ob das funktioniert, aber es wäre logisch.

PHP:
if($userlevel=="rookie" && ($s="sub1" || $s="sub5" || $s="sub7"))

das mit den klammern eben.. ist nur ne idee...^^
 
PHP:
function code(){
   auszuführender code
}



if($userlevel=="rookie" && $s="sub1"){
   code();
}

if($userlevel=="rookie" && $s="sub5"){
   code();
}

if($userlevel=="rookie" && $s="sub7"){
   code();
}

Is nur sone idee zum umschreiben
müsste klappen
 
@brÅinstorm

ah richtig da waren ja uch noch die || ..aus den guten alten javascript zeiten.. *g* .. ich probiers mal morgen.. erstmal danke !

@BlackJack

auch Dir Danke fuer deine Idee, aber genau dieses wollte ich vermeiden.. sprich fuer jede abfrage eine eigene if abfrage .. :-) ..bin ein bisschen faul in der beziehung.. hehe
 
da waren ja uch noch die || ..aus den guten alten javascript zeiten..
tz.. das ist alles nur von c abgeguckt.

sprich fuer jede abfrage eine eigene if abfrage
wieso eigentlich if? für sowas ist switch prima geeignet:
Code:
if ($userlevel == "rookie")
{
    switch ($s)
    {
        case "sub1": code(); break;
        case "sub5": code(); break;
        case "sub7": code(); break;
        case default: /* alles andere */ break;
    }
}

auch wenn ich das genau so machen würde, wie brÅinstorm. ;)
 
@asphyxia

yep, Deine Variante funktioniert super.. Danke!

@brÅinstorm

irgendwie funktioniert das garnicht.. nun werden alle $s angezeigt.. egal ob $s=="sub9" etc.. aber was solls .. jetzt funktioniert es ja. :-)

Danke @all
 
uups..
da fällt mir doch gerade auf, dass das auch so sein müsste..

PHP:
if($userlevel=="rookie" && ($s=="sub1" || $s=="sub5" || $s=="sub7"))

aber es ist ja eh schon gelöst
 
Zurück