if post waarde is niet 9, dan foutmelding, werkt niet :S
Code (php)
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
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();
}
?>
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
code en [/code] tags hier op het forum.
Gebruik s.v.p. [ 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
} ipv else if(conditie){
}
heb in iedergeval even geprobeerd, maar spaties er tussenuit helpt niet.
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.
Quote:
You can also write it like this :
/!\ 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 !!!!
For array/float, it's the same !
You can also write it like this :
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
if(!call()==TRUE) // or if(!call())
{
// do something here
}
// here '!' will invert 'FALSE' (from call()) into 'TRUE'
?>
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)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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
?>
$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.
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