Home  |  Linux  | Mysql  | PHP  | XML
From:Daniel Egeberg Date:Thu Mar 11 22:16:57 2010
Subject:Re: $_GET is Mangling Base64 value
On Thu, Mar 11, 2010 at 22:57, George Langley <george.langley@shaw.ca> wrote:
>        Hi all. Is there an issue with $_GET not handling a Base64-encoded value correctly? (PHP is 5.1.6)
>        Am receiving a Base64-encoded value:
>
> theurl.com/index.php?message=xxxxx
>
>  and retrieving it with $_GET:
>
> echo $_GET["message"];
>
> xxxxx is a Japanese phrase, that has been encoded into Base64. So is using the + symbol:
>
> ...OODq+OCou...
>
> but my $_GET is replacing the + with a space:
>
> ...OODq OCou...
>
> thus the base64_decode() is failing (displays diamonds with questions marks on my Mac).
>
>        The Base64-encoded string is 156 characters long, if that has any bearing. My test URL is 230 characters in total, less than the "old" 256 limit.
>        All I can find online is a reference that PHP will no longer assume that a space is a +:
>
> <http://ca3.php.net/manual/en/function.base64-decode.php#69298>
>
> but my problem is the opposite - the + symbols are there, but the GET is removing them.
>        (And to add a wrinkle, this then goes into a Joomla! page, whose getVar() command completely removes the +, so I couldn't even do a string replace, as I don't know where the + should have been!)
>
>        Tired of looking at the dark red spot on the wall! Thanks.

PHP does a urldecode() on GET parameters, which regards + as a space.
You should be able to get the information you need using
$_SERVER['QUERY_STRING'].

--
Daniel Egeberg
Navigate in group php.general at sever news.php.net
Previous Next


Your recent visits
Re: [PHP] $_GET is Mangling Base64 value
Re: [PHP] Re: PHP in HTML code
Re: [PHP] Re: PHP in HTML code



  
© No Copyright
You are free to use Anything, but please consult your advocate before doing so as this website
also list content from other sources which may be copyrighted.
Site Maintained by Zareef Ahmed
Powered By PHP Consultants