Reputation: 8274
How to use PHP to check form field for specific value?
The value '7' would need to be inserted or else the form field will be invalid; so invalid with all other numbers then 7.
if(empty($_POST['captcha']))
{
$this->add_error("Did you solve the captcha?");
$ret = false;
}
Works to check if any value -- but I need to specify, must be 7.
if(strlen($_POST['captcha']) =!7) // tried this but form completely died or disappeared
{
$this->add_error("Did you solve the captcha?");
$ret = false;
}
Upvotes: 0
Views: 1338
Reputation: 173572
There are two things to note here:
You shouldn't use empty()
here, because "0"
is considered empty as well and it seems like it could be the answer of an equation; use isset()
instead to just check whether the value is part of the request.
You're trying to check the length of $_POST['captcha']
instead of comparing its value.
So:
if (!isset($_POST['captcha']) || $_POST['captcha'] != 7) {
$this->add_error('Did you solve the captcha?');
$ret = false;
}
Upvotes: 2
Reputation: 219834
You have two problems:
=!
should be !=
. See comparison operators.
if(strlen($_POST['captcha']) != 7)
You also need to turn on error reporting.
Upvotes: 1