malfunction equality operators

PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!

Moderator: General Moderators

Post Reply
kloassie
Forum Newbie
Posts: 1
Joined: Sat Oct 13, 2007 8:56 am

malfunction equality operators

Post by kloassie »

Hi people,

i have something really weird going on.

i have a html from that posts to a php-file
in the php i have the following:

if($_POST['name'] !== "") {
// some echoing and mysql connecting code
}

at home everything works perfectly, but the stupid thing is
that at my work, the if-statement ALWAYS executes, wether i post a name or not...

when i change it into

if($_POST['name'] != "") {
// some echoing and mysql connecting code
}

the if~ NEVER executes at my work...

both at home as at my work i use phpdev423, so PHP 4.2.3
at my home i have normal Windows XP running,
at my work Windows 2000 with multiple user accounts

anybody can tell me what is causing this problem?

thanks for all help,

Klaas
User avatar
feyd
Neighborhood Spidermoddy
Posts: 31559
Joined: Mon Mar 29, 2004 3:24 pm
Location: Bothell, Washington, USA

Post by feyd »

Use isset() or empty() instead.
markg85
Forum Commoner
Posts: 32
Joined: Sat Dec 03, 2005 6:49 pm

Post by markg85 »

or is_string() in this case..

Code: Select all

if (is_string(....) && !empty(....))
{

}
that checks to see if it's a string and to see if it's not an empty string.
User avatar
John Cartwright
Site Admin
Posts: 11470
Joined: Tue Dec 23, 2003 2:10 am
Location: Toronto
Contact:

Post by John Cartwright »

markg85 wrote:or is_string() in this case..

Code: Select all

if (is_string(....) && !empty(....))
{

}
that checks to see if it's a string and to see if it's not an empty string.
Actually, is_string() will always evalulate to true on post elements, since all the data are string. Secondly, if the data is missing from the post, is_string() will throw an error, therefore the empty() call should always be first. In this case, only calling empty() is fine.
User avatar
superdezign
DevNet Master
Posts: 4135
Joined: Sat Jan 20, 2007 11:06 pm

Post by superdezign »

markg85 wrote:or is_string() in this case..
I tend to use is_scalar() instead of is_string(). All scalar values are automatically typecasted into strings when used as a string.
Post Reply