• Advertisement
Sign in to follow this  

[PHP] Usage of $_GET(), getting a query string

This topic is 3102 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

	if (!isset($_GET['storevisitor']))
		echo('No parameter.\n<br />');
	else if (is_null($_GET['storevisitor']))
		echo('storevisitor is null.');
	else if ($_GET['storevisitor']) == '1')	// GIVES ERROR HERE (LINE #6)
		echo('Storing IP.\n<br />');
	else
		echo('IP won\'t be stored.');


I try to access the PHP page with this query string:
http://localhost/?storevisitor=1
And this is the error message given:
Parse error: syntax error, unexpected T_IS_EQUAL in C:\Development\Server\DocumentRoot\index.php on line 6
What do you think the problem is? [Edited by - ApochPiQ on July 26, 2009 12:56:32 PM]

Share this post


Link to post
Share on other sites
Advertisement
hi,

the parenthesis is the error i think

should be


else if (($_GET['storevisitor']) == '1') // GIVES ERROR HERE (LINE #6)
echo('Storing IP.\n<br />');



Share this post


Link to post
Share on other sites
Opps, ok, I feel stupid...

I want to ask one more question which would make more sense:
Why doesn't my code ever print "storevisitor is null." message?

When I send a query string like
http://localhost/?storevisitor
it displays the message "IP won't be stored." instead of "storevisitor is null.".

How can I detect when a query string variable is sent without a value assigned to it?

Share this post


Link to post
Share on other sites
maybe your should try



if (!isset($_GET['storevisitor']))
echo('No parameter.\n<br />');
else if (empty($_GET['storevisitor']))
echo('storevisitor is null.');
else if ($_GET['storevisitor']) == '1') // GIVES ERROR HERE (LINE #6)
echo('Storing IP.\n<br />');
else
echo('IP won\'t be stored.');


Share this post


Link to post
Share on other sites
I tried empty() but this time
http://localhost/?storevisitor
and
http://localhost/?storevisitor=0
are assumed to be same by my code.

But they are different obviously.
How can I detect this difference.
I'm just curious, I won't use it in my code but I want to learn it anyway.

Thanks in advance.

Share this post


Link to post
Share on other sites
Quote:
Original post by Konfusius
Test for $_GET['storevisitor'] === ''.

I didn't work.
Your syntax looks like to be incorrect?

Thank you anyway.

Share this post


Link to post
Share on other sites
theres discussion of this problem if you look at the comments in this page

http://us3.php.net/manual/en/function.empty.php

or you could do


if (!isset($_GET['storevisitor']))
echo('No parameter.\n<br />');
else if (empty($_GET['storevisitor']) && $_GET['storevisitor']!=0)
echo('storevisitor is null.');
else if ($_GET['storevisitor']) == '1')
echo('Storing IP.\n<br />');
else
echo('IP won\'t be stored.');

Share this post


Link to post
Share on other sites
Final form of my code, and it works:
	if (!isset($_GET['storevisitor']))
echo('No parameter.\n<br />');
else if (strlen($_GET['storevisitor']) == 0)
echo('storevisitor is empty.\n<br />');
else if ($_GET['storevisitor'] == '0')
echo('IP won\'t be stored.\n<br />');
else
echo('Storing IP.\n<br />');



It works now but, I don't think that using strlen() is a professional approach to the problem.
Is there any alternative you guys can suggest?


EDIT: Thank you biggy, your last code is also a good alternative.

Share this post


Link to post
Share on other sites
Quote:
Original post by Battousai
Quote:
Original post by Konfusius
Test for $_GET['storevisitor'] === ''.

I didn't work.
Your syntax looks like to be incorrect?

Thank you anyway.
This is a bug in the GDNet forum software; two quote charactes ('') are displayed as one. His code should have read $_GET['storevisitor'] === '' (hit "Edit" on his post to see). [smile]

Share this post


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

  • Advertisement