if post waarde is niet 9, dan foutmelding, werkt niet :S

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Bart Huisman

Bart Huisman

03/10/2010 15:08:16
Quote Anchor link
wat is er mis met dit stukje code?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
if(isset($_POST["submit"]) == TRUE){

    if(preg_match("/^[-a-zA-Z- ]{1,50}$/", $_POST["naam"]) == FALSE){
    $error = "Je naam is niet of verkeerd ingevoerd";
    }


    else if(preg_match("/^[-^!#$%&'*+\/=?`{|}~.\w]+@[-a-zA-Z0-9]+(\.[-a-zA-Z0-9]+)+$/", $_POST["email"]) == FALSE){
    $error = "Je hebt een ongeldig e-mail adres ingevoerd";
    }


    else if($_POST["commentaar"] == ""){
    $error = "Je hebt geen commentaar ingevoerd";
    }

    
    else if(!$_POST["som"] == "9"){
    $error = "je hebt niet 9 ingevuld bij de spam beveiliging";
    }


    else{
    mysql_query("INSERT INTO gastenboek (naam,email,commentaar,datum,zichtbaar) VALUES ('" . slashes($_POST["naam"]) . "','" . slashes($_POST["email"]) . "','" . slashes($_POST["commentaar"]) . "','" . $datum . "','" . slashes($_POST["zichtbaar"]) . "')") or die(mysql_error());
    header("Location: ok.php");
    exit();
    }

?>


als ik nu 7 invul bij post dan plaatst hij het bericht zonder foutmelding. zou toch niet mogen lijkt me? :S
als ik de code verander en het uitroepteken weghaal, dan geeft hij de foutmelding wel als ik 9 invul, dus dan gaat de vergelijking opeens wel goed.

Wie weet wat hier mis gaat?

Bart
Gewijzigd op 03/10/2010 16:00:23 door Bart Huisman
 
PHP hulp

PHP hulp

02/05/2024 07:47:07
 

03/10/2010 15:14:12
Quote Anchor link
Gebruik s.v.p. [code en [/code] tags hier op het forum.
 
Bart Huisman

Bart Huisman

03/10/2010 15:16:22
Quote Anchor link
ik zag geen kop staan voor code, wel voor quote enzo, dus wist niet welk woord er werd gebruikt. zou misschien handig zijn als daar ook een knop voor kwam ;) maar zal m ff aanpassen
 
Thomas de Roo

Thomas de Roo

03/10/2010 15:20:18
Quote Anchor link
Is het niet elseif(conditie){
} ipv else if(conditie){
}
 
Bart Huisman

Bart Huisman

03/10/2010 15:27:25
Quote Anchor link
volgens mij maakt het niet uit of je het met of zonder spatie doet?
heb in iedergeval even geprobeerd, maar spaties er tussenuit helpt niet.
 
Thomas de Roo

Thomas de Roo

03/10/2010 15:31:07
Quote Anchor link
else if(!$_POST["som"] == "9"){
moet zijn
else if($_POST["som"] != "9"){
Gewijzigd op 03/10/2010 15:31:30 door Thomas de Roo
 

03/10/2010 15:32:54
Quote Anchor link
Controleren of een form gepost is met if($_SERVER['REQUEST_METHOD'] == 'POST').
Je kunt niet verschillende checks die niks met elkaar te maken hebben in één stoppen. Dit geheel is niet logisch.
Zie ook operators, regel 15 is vaag.
 
Bart Huisman

Bart Huisman

03/10/2010 15:40:04
Quote Anchor link
aaah, ik heb nu ff wt er over gelezen op php.net. ik dacht namelijk al dat ik wel eens dat uitroepteken in het midden van de vergelijking had staan. maar nu tijdens de php les op school moest hij aan het begin van de vergelijking, dus ik vroeg nog, moet hij niet bij de =? zei die leraar van niet, maar het is zo dat een uitroepteken aan het begin van een vergelijking alleen een true / false kan beoordelen. de uitleg van php.net voor het geval googlers op dit topic uitkomen:
Quote:

You can also write it like this :
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
if(!call()==TRUE) // or if(!call())
{
// do something here
}
// here '!' will invert 'FALSE' (from call()) into 'TRUE'
?>

/!\ WARNING /!\
The '!' only work with booleans !
Check http://fr.php.net/manual/en/language.types.boolean.php to know if you can use '!'

If you want to compare two strings and use '!' be careful how you use it !!!!
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
$string1
= "cake";
$string2 = "foo";

if(!$string1==$string2)
{

echo "cake is a lie";
}

//this will ALWAYS fail without exception because '!' is applied to $string1 and not to '$string1==$string2'

//to work, you have to do like this

if(!($string1==$string2))
{

echo "cake is a lie";
}

//it will display 'cake is a lie' because ($string1==$string2) return FALSE and '!' will invert it into TRUE
?>

For array/float, it's the same !


Toevoeging op 03/10/2010 15:57:09:

Karl Karl op 03/10/2010 15:32:54:
Controleren of een form gepost is met if($_SERVER['REQUEST_METHOD'] == 'POST').
Je kunt niet verschillende checks die niks met elkaar te maken hebben in één stoppen. Dit geheel is niet logisch.
Zie ook operators, regel 15 is vaag.

wat bedoel je hier precies mee? ik heb
if(isset($_POST["submit"]) == TRUE){
dit is toch maar 1 ding die ik controleer? ik controleer eerst of post sowieso wel bestaat, voordat ik ga controleren of de post waarden wel kloppen...
Gewijzigd op 03/10/2010 15:51:14 door Bart Huisman
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.