Jump to content
  • Advertisement
Sign in to follow this  
lack o comments

[web] Empty QueryString in PHP

This topic is 4495 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Very simple question, well... it should be anyway. How do I check for an empty query string in PHP. I just wasted a few hours looking up information of the $_SESSION variable which I can't even seem to access. I'm starting to bald over this. [edit] Ah, found the isset() function. Nevermind. [Edited by - lack o comments on July 2, 2006 12:02:48 PM]

Share this post


Link to post
Share on other sites
Advertisement
well say you want to find if there is any value in the string $user_name all you do is:

if($user_name)
{
echo "You have a username.";
}

then if you want to do something if there is no value to it

if(!$user_name)
{
echo "You do not have a username. Please go back and input one.":
}

Share this post


Link to post
Share on other sites
Quote:
Original post by Raz Malone
well say you want to find if there is any value in the string $user_name all you do is:

if($user_name)
{
echo "You have a username.";
}

then if you want to do something if there is no value to it

if(!$user_name)
{
echo "You do not have a username. Please go back and input one.":
}


Note that the above code will work, but will generate a warning about an undeclared variable (if you have warnings enabled, which I recommend for testing/design purposes)

You should use :

if(isset($variable))

instead...

Share this post


Link to post
Share on other sites
Yeah, I come from a ASP background where this wouldn't even be an issue.

Apparently, there must be a setting in the PHP server to automatically fill out the $_SERVER array, namely $_SERVER['QUERY_STRING']. I haven't had time to figure out how to do this on my development computer, but the actual web host has it set.

The problem is, on my server if I attempt to check the contents of $_SERVER, it will tell me nothing is set and spit errors. I got around this by simply using "isset()" instead of checking for a value. (I need to know when the query string is empty when a page loads so I can go to the default home page).
However, on the host's server $_SERVER is already filled out and "isset()" always returns true even if the element is empty.

To get around this I used:

if(isset($_SERVER['QUERY_STRING']))
{
if($_SERVER['QUERY_STRING'] != "") {$PageID = $_SERVER['QUERY_STRING'];}
else {$PageID = "Home";}
}
else {$PageID = "Home";}


Is that a good idea?

While I'm here, I have another issue. The host has the simple PHP tags enabled. which is conflicting with the XML at the top of my web pages
<?xml version="1.0" encoding="utf-8"?>


It keeps trying to read it as PHP script. Is there anyway from my standpoint I can fix this?

Share this post


Link to post
Share on other sites
PHP relies on the web server for the $_SERVER array. If you are having problems with that, I would solve it in a common.inc.php file like:

if(!isset($_SERVER['QUERY_STRING'])) $_SERVER['QUERY_STRING'] = "";

Then the rest of your code can just assume it is there. You should try to keep your page code as clean and trim as possible.

Regarding the <? problem, see http://us2.php.net/manual/en/ini.core.php#ini.short-open-tag.

Share this post


Link to post
Share on other sites
Quote:

While I'm here, I have another issue. The host has the simple PHP tags enabled. which is conflicting with the XML at the top of my web pages



<?
echo "<?xml version='1.0' encoding='utf-8'?>";
?>


Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!