[PHP/n00b] controle probleem

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • KnEuTeR
  • Registratie: Mei 2000
  • Laatst online: 24-02-2024

KnEuTeR

iedereen heeft een handelsmerk

Topicstarter
argh ik ben een beetje in de war met dit n00b-achtige probleem, ik heb een stuk code en die mag alleen uitgevoerd worden als een variabele a, b, c of d is, maar ik kom echt niet meer uit de controle?!

PHP:
1
if ($HTTP_POST_VARS["vraag1"] == "a" or "b" or "c" or "d")


dit is dus altijd TRUE :{

moet ik het met AND doen ofzo?! :?

Computers ain't that smart, Whatever man built could be taken apart


Acties:
  • 0 Henk 'm!

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 29-05 22:54
KnEuTeR schreef op 17 november 2002 @ 21:08:
argh ik ben een beetje in de war met dit n00b-achtige probleem, ik heb een stuk code en die mag alleen uitgevoerd worden als een variabele a, b, c of d is, maar ik kom echt niet meer uit de controle?!

PHP:
1
if ($HTTP_POST_VARS["vraag1"] == "a" or "b" or "c" or "d")


dit is dus altijd TRUE :{

moet ik het met AND doen ofzo?! :?
wat er gebeurt is dit

PHP:
1
2
3
4
5
$HTTP_POST_VARS["vraag1"] == "a" // = True als $HTTP_POST_VARS["vraag1"]  dus "a" is. anders false

"b" // = Altijd True, een lege string is volgens mij False en de rest True

// voor de rest zie b


en dan

PHP:
1
if(False/True or True or True or True)


daar komt idd altijd true uit

zo zou ik het doen

PHP:
1
if ($HTTP_POST_VARS["vraag1"] == "a" or $HTTP_POST_VARS["vraag1"] == "b" or $HTTP_POST_VARS["vraag1"] == "c" or $HTTP_POST_VARS["vraag1"] == "d")


Ik raad je ook aan eens een boek te gaan lezen over programmeren

Noushka's Magnificent Dream | Unity


Acties:
  • 0 Henk 'm!

  • thomaske
  • Registratie: Juni 2000
  • Laatst online: 17-09 07:55

thomaske

» » » » » »

mooier:

PHP:
1
2
3
4
5
$allowed_values = array ("a", "b", "c", "d");

if (in_array($HTTP_POST_VARS["vraag1"], $allowed_values)) {
  //--- joepie
}


HTH! :)

Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."


Acties:
  • 0 Henk 'm!

Verwijderd

Mooier, maar bloater ;) Ik zou voor een switch gaan:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
switch($HTTP_POST_VARS['vraag1'])
{
    case 'a':
    case 'b':
    case 'c':
    case 'd':
        // $HTTP_POST_VARS['vraag1'] is a, b, c of d
        break;
    default:
        // $HTTP_POST_VARS['vraag1'] is iets anders
        break;
}


Duidelijker, leesbaarder en de snelheid is vergelijkbaar met een if.

Acties:
  • 0 Henk 'm!

  • KnEuTeR
  • Registratie: Mei 2000
  • Laatst online: 24-02-2024

KnEuTeR

iedereen heeft een handelsmerk

Topicstarter
ik heb em nu zo:

PHP:
1
2
3
4
5
6
7
8
        if ($HTTP_POST_VARS["vraag1"] == "a" or $HTTP_POST_VARS["vraag1"] == "b" or $HTTP_POST_VARS["vraag1"] == "c" or $HTTP_POST_VARS["vraag1"] == "d")
            {
                //code antwoord is goed
            }
        else
            {
                //code antwoord is fout
            }


maar nog word er ALTIJD de code uitgevoerd dat hij goed is :{ :?

Computers ain't that smart, Whatever man built could be taken apart


Acties:
  • 0 Henk 'm!

  • KnEuTeR
  • Registratie: Mei 2000
  • Laatst online: 24-02-2024

KnEuTeR

iedereen heeft een handelsmerk

Topicstarter
hm laat ook maar ik, ik had niet zoveel moeten drinken gisteravond |:(

EDIT2:
dit slaat op wat ik geedit heb, het probleem is nog steeds niet opgelost

Computers ain't that smart, Whatever man built could be taken apart


Acties:
  • 0 Henk 'm!

Verwijderd

Gebruik || ipv van or.

Acties:
  • 0 Henk 'm!

  • KnEuTeR
  • Registratie: Mei 2000
  • Laatst online: 24-02-2024

KnEuTeR

iedereen heeft een handelsmerk

Topicstarter
helpt niet

hoe kan dit nou weer?!

Computers ain't that smart, Whatever man built could be taken apart


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 16-09 09:15

Janoz

Moderator Devschuur®

!litemod

Zet gewoon ff goed haakjes neer.. Je kunt eigenlijk nooit teveel haakjes gebruiken.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • thomaske
  • Registratie: Juni 2000
  • Laatst online: 17-09 07:55

thomaske

» » » » » »

werkt mijn in_array oplossing niet?

Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."


Acties:
  • 0 Henk 'm!

  • KnEuTeR
  • Registratie: Mei 2000
  • Laatst online: 24-02-2024

KnEuTeR

iedereen heeft een handelsmerk

Topicstarter
thomaske schreef op 17 november 2002 @ 21:30:
werkt mijn in_array oplossing niet?
nope, werkt ook niet, het moet ook werken als er helemaal NIKS is ingevuld, en al zou dat bij jouw oplossing erin zitten, het werkt alsnog zowieso niet.

dit erbij zetten:

PHP:
1
or !isset($HTTP_POST_VARS["vraag1"])


werkt ook niet :'(

Computers ain't that smart, Whatever man built could be taken apart


Acties:
  • 0 Henk 'm!

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 22:59

chem

Reist de wereld rond

je wil dus, dat als de var a-d is, dat het hij true geeft?
PHP:
1
2
3
4
5
6
7
8
if(in_array($HTTP_POST_VARS["vraag1"],range('a','d'))
{
    return true;
}
else
{
    return false;
}

Klaar voor een nieuwe uitdaging.


Acties:
  • 0 Henk 'm!

Verwijderd

PHP:
1
2
3
4
5
6
7
8
<?
if(in_array($HTTP_POST_VARS["vraag1"], {"a", "b", "c", "d"}))
{
   print "goed";
} else {
   print "fout";
}
?>

zou toch moeten werken :?
Weet je zeker dat het een POST var en geen GET var is? (maw heb je in je formpje wel neergezet METHOD="POST")

Acties:
  • 0 Henk 'm!

Verwijderd

Als mijn switch ook niet werkt ligt de fout zeker weten ergens anders... Echo al je variabelen eens!

Acties:
  • 0 Henk 'm!

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Verwijderd schreef op 17 november 2002 @ 21:21:
Mooier, maar bloater ;) Ik zou voor een switch gaan:

Duidelijker, leesbaarder en de snelheid is vergelijkbaar met een if.
Dat komt omdat het ook gewoon syntaxtische suiker is voor een if/else. Talen die (pre)compilen zullen een switch dan ook omzetten naar het equivalent if/else statement

Acties:
  • 0 Henk 'm!

Verwijderd

Probeer
$_POST['vraag1'];
eens ipv
$HTTP_POST_VARS['vraag1 '];

En haal je de data uit een form met: method="post" ?
Zoja, bestaat 'vraag1' als veld?

Acties:
  • 0 Henk 'm!

Verwijderd

Glimi schreef op 18 November 2002 @ 20:21:
[...]

Dat komt omdat het ook gewoon syntaxtische suiker is voor een if/else. Talen die (pre)compilen zullen een switch dan ook omzetten naar het equivalent if/else statement
Dat bedoelde ik ook ;)
Pagina: 1