ID: 36946
Updated by: [EMAIL PROTECTED]
Reported By: kirlo at gmx dot de
Status: Bogus
Bug Type: *URL Functions
Operating System: windows & debian
PHP Version: 5.1.2
New Comment:
Don't urldecode $_GET variables and keep in mind taht most servers have
an URL lenght limit.
Previous Comments:
------------------------------------------------------------------------
[2006-04-02 13:37:51] kirlo at gmx dot de
ok, this time i took the string and used base64 encoding and then i
urlencoded that base64 output. i sent this "double encoded" string to
the server via POST/GET and there i used this script:
<?php
echo base64_decode(urldecode($_GET[vari]));
?>
and nothing changed. the first lines are ok but then the text is messed
up.
(you might think, that the base64 encoding function on my client
application does not work properly, but as i mentioned before i've
already tested the output with other base64 decoder and they hat no
problems)
------------------------------------------------------------------------
[2006-04-02 13:24:30] [EMAIL PROTECTED]
You must use urldecode() on the data you're sending through GET/POST.
No bug here.
------------------------------------------------------------------------
[2006-04-02 13:18:23] kirlo at gmx dot de
yes, we've already tried urlencoding as an alternative and urldecode
works.
but there's still the base64_decode bug when you send the data via POST
or GET.
as i mentioned before, it worked under php4 and the earlier php5
versions.
------------------------------------------------------------------------
[2006-04-02 13:08:42] [EMAIL PROTECTED]
What if you use urlencode($data) ?
------------------------------------------------------------------------
[2006-04-02 12:10:02] kirlo at gmx dot de
well that's mysterious - this script will work without any problems
(put my base64encoded.txt into the scriptdir):
<?php
$fp = fopen ("base64encoded.txt", "r");
$str = fread ($fp, filesize ("base64encoded.txt"));
fclose ($fp);
echo base64_decode($str);
?>
but if you send the string via POST or GET, you'll get this output,
where the text ist messed up (copy the content of base64encoded.txt and
put it behind yourscript.php?vari= ):
<?php
echo base64_decode($_GET[vari]);
?>
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/36946
--
Edit this bug report at http://bugs.php.net/?id=36946&edit=1