Jump to content

  • Log In with Google      Sign In   
  • Create Account

We're offering banner ads on our site from just $5!

1. Details HERE. 2. GDNet+ Subscriptions HERE. 3. Ad upload HERE.


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


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
10 replies to this topic

#1 hkBattousai   Members   -  Reputation: 168

Like
0Likes
Like

Posted 26 July 2009 - 03:43 AM

	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]

Sponsor:

#2 biggy   Members   -  Reputation: 154

Like
0Likes
Like

Posted 26 July 2009 - 03:52 AM

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 />');





#3 hkBattousai   Members   -  Reputation: 168

Like
0Likes
Like

Posted 26 July 2009 - 04:00 AM

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?

#4 biggy   Members   -  Reputation: 154

Like
0Likes
Like

Posted 26 July 2009 - 04:14 AM

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.');




#5 hkBattousai   Members   -  Reputation: 168

Like
0Likes
Like

Posted 26 July 2009 - 04:26 AM

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.

#6 demonkoryu   Members   -  Reputation: 976

Like
0Likes
Like

Posted 26 July 2009 - 04:30 AM

Test for $_GET['storevisitor'] === ''.

#7 hkBattousai   Members   -  Reputation: 168

Like
0Likes
Like

Posted 26 July 2009 - 04:32 AM

Quote:
Original post by Konfusius
Test for $_GET['storevisitor'] === ''.

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

Thank you anyway.

#8 biggy   Members   -  Reputation: 154

Like
0Likes
Like

Posted 26 July 2009 - 04:37 AM

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.');



#9 hkBattousai   Members   -  Reputation: 168

Like
0Likes
Like

Posted 26 July 2009 - 04:39 AM

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.

#10 benryves   Members   -  Reputation: 1997

Like
0Likes
Like

Posted 26 July 2009 - 05:17 AM

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]

[Website] [+++ Divide By Cucumber Error. Please Reinstall Universe And Reboot +++]

#11 ApochPiQ   Moderators   -  Reputation: 16378

Like
0Likes
Like

Posted 26 July 2009 - 06:56 AM

Please do not mark threads as "solved" in the General Programming forum. Also, you may want to place future PHP-related questions in the Web Development forum.

Thanks! [smile]




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS