Re: $_POST bug?
| From: | Eugene Lee | Date: | Thu, 13 Nov 2003 09:27:49 +0000 |
| Subject: | Re: $_POST bug? | ||
| References: | 1 2 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-169457@lists.php.net to get a copy of this message | ||
On Thu, Nov 13, 2003 at 04:04:16AM -0500, Jake McHenry wrote:
:
: print_r($_POST) shows me that $_POST has the single 0 value. I solved
: my problem, instead of having just if ($_POST['test']), I changed it
: to if ($_POST['test'] != ""). Right after I posted, I tried this, and
: a couple other things.. The problem only happens when I don't have any
: conditions within the ().
That's due to PHP's automatic type conversion. In other words, certain
string values can get evaluated to either a boolean TRUE or FALSE. So
you have to do explicit tests.
For example, what does this code snippet do?
if ($_POST['test'])
{
do_right();
}
else
{
do_wrong();
}
If $_POST['test'] has an empty string, it calls do_wrong().
If $_POST['test'] has the string "0", it still calls do_wrong().
http://www.php.net/manual/en/language.types.boolean.php#language.types.boolean.casting
Your move to change your if-statement is a good start to doing the right
thing. The next step is to scrub your $_POST data and make sure that it
is valid.