Avatar billede fangel Nybegynder
24. august 2003 - 17:33 Der er 13 kommentarer og
1 løsning

mystik i farvandet - isset()

Hej

jeg har en variabel som _måske_ findes (jep, en form)

hvis denne variabel - $_POST['feltAdmin'] - er 'on', skal $admin få værdien 1, ellers 0...

dette ville jeg lave sådan her:

1: $admin = (isset($_POST['feltAdmin'])) : $_POST['feltAdmin'] ? 0;
2: if($admin == 'on') $admin = 1;

dette virker ikke optimalt...

prøv at lade være med at have variablen - så bliver $admin til "0" i linie 1, men efter linie 2 er den pludselig "1" - hvorfor søren gør den det?

Morten
Avatar billede limemedia Nybegynder
24. august 2003 - 17:40 #1
$admin = 0;
if (isset($_POST['feltAdmin']) && $_POST['feltAdmin'] == 'on') $admin = 1;
Avatar billede fangel Nybegynder
24. august 2003 - 17:42 #2
lj / lars => lang tid siden jeg har set dig på disse kanter!

ser lige om det virker

Morten
Avatar billede fangel Nybegynder
24. august 2003 - 17:43 #3
lj => hvorfor tænkte jeg mon ikke på det? men kan du sige hvorfor det andet ikke virkede?

Morten
Avatar billede limemedia Nybegynder
24. august 2003 - 17:48 #4
dea >> ja, jeg ved heller ikke hvorfor jeg er her... må vel kede mig *g* jeg kan ikke lige se hvad der er galt, men klokken er mange og øjnene er små
Avatar billede fangel Nybegynder
24. august 2003 - 17:50 #5
tja - japan er vel en _lidt_ anden tidszone - kan ikke lige overskue at regne ud hvad klokken er hos dig - men sikkert en del...

fik selv kun sovet 4 timer i nat, så det kan være det er derfor jeg ikke kan få noget til at lykkedes ;)

Morten
Avatar billede fangel Nybegynder
24. august 2003 - 17:55 #6
lj => nu jeg har fat i dig...

kan se du har skiftet fra ljweb.biz til ljweb.com - hvorfor egentligt det? ljweb.biz ejer du stadig, men der er en http_auth på den ;)

Morten
Avatar billede limemedia Nybegynder
24. august 2003 - 18:00 #7
øhh, den virker fint herfra ?
ljweb.biz blev købt, da mit .com blev holdt gidsel ved Communitech.net i USA. Jeg har fået den tilbage og kører igen alt primært fra mit .com domæne
Avatar billede fangel Nybegynder
24. august 2003 - 18:04 #8
ok - så er noget sammenhængen eller et eller andet - jeg havde testet det ret godt... (stiller kun spørgsmål når det er en nødvendighed - prøver mig lidt frem først)

Morten
Avatar billede detox Nybegynder
24. august 2003 - 18:09 #9
Måske:

echo intval('on');

kan give dig et svar på hvorfor din konstruktion fejler.
Avatar billede jakoba Nybegynder
24. august 2003 - 18:16 #10
I dit oprindelige havde du byttet om på ? og : i ?: operatoren.
Avatar billede fangel Nybegynder
24. august 2003 - 18:31 #11
jakob => det var en genskrivning, ikke en copy-past - så jeg tror ikke det var derfor

detox => måske på et andet tidspunkt

Morten
Avatar billede jakoba Nybegynder
24. august 2003 - 18:41 #12
pk, lad os tage den med logik:

1: $admin = (isset($_POST['feltAdmin'])) : $_POST['feltAdmin'] ? 0;
    // hvis der stpr noget ligemeget hvad i $_POST['feltAdmin'] får $admin samme værdi
    // det kan være 'on', 'off', 42, eller hvadsomhelst andet
    // hvis ikke får $admin værdien 0.

2: if($admin == 'on') $admin = 1;
    // Hvis $_POST['feltAdmin'] ondholdt noget OG det var 'on' bliver $admin til 1
    // ellers fortsætter admin med at være 'off', 42, ... og 0.

ku det forklare det du ser?
Avatar billede detox Nybegynder
24. august 2003 - 18:49 #13
jakoba -> Problemet er bare at selvom $_POST['feltAdmin'] ikke indeholder noget og $admin bliver sat til 0 i første omgang, vil den anden betingelse alligevel være sand. Der bliver nemlig ikke tjekket på type og intval('on') giver 0. Ergo 0 == 0 og $admin bliver sat til 1.
For at tjekke type skal man bruge:
if($admin === 'on') $admin = 1;
Avatar billede fangel Nybegynder
24. august 2003 - 19:09 #14
detox => ahhh... derfor - synes nok der var noget mystisk med i spillet ;) det var så straffen for ikke at lægge større vægt på forskellige typer...

Morten
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester