note 47591 added to function.urlencode
| From: | wesam23 at yahoo dot com | Date: | Mon, 22 Nov 2004 12:47:11 +0000 |
| Subject: | note 47591 added to function.urlencode | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-80859@lists.php.net to get a copy of this message | ||
I have problem when using special charactes e.g. $,#, etc when redirecting in link with GET
variable.
for a variable that will hold "me & friend". it will cause misinterpreting when using
GET method:
<?
$val="me & friend";
?>
<a href="test.php?info=<?=$val?>">Click here</a>
you will not get the expected value in test.php, to solve this I suggested the following function
which will encode the variable to make it suitable for GET method.
function encodeURLx($instr)
{
for($i=0;$i<strlen($instr);$i++)
{
$ch=substr($instr,$i,1);
switch($ch)
{
case chr(9):
case chr(32):
case chr(34):
case chr(44):
case chr(40):
case chr(41):
case chr(58):
case chr(59):
case chr(60):
case chr(62):
case chr(64):
case chr(124):
case chr(47):
case chr(92):
case chr(35):
case chr(37):
case chr(38):
case chr(43):
case chr(61):
case chr(63):
$hx= "%" . sprintf("%0x",ord($ch));
$tmp.=$hx;
break;
default:
$tmp.=$ch;
}
}
return $tmp;
}
$val=encodeURLx($val);
----
Manual Page -- http://www.php.net/manual/en/function.urlencode.php
Edit -- http://master.php.net/manage/user-notes.php?action=edit+47591
Delete -- http://master.php.net/manage/user-notes.php?action=delete+47591&report=yes
Reason: bad code -- http://master.php.net/manage/user-notes.php?action=delete+47591&report=yes&reason=bad+code
Reason: spam -- http://master.php.net/manage/user-notes.php?action=delete+47591&report=yes&reason=spam
Reason: useless example -- http://master.php.net/manage/user-notes.php?action=delete+47591&report=yes&reason=useless+example
Reason: contains commercial links -- http://master.php.net/manage/user-notes.php?action=delete+47591&report=yes&reason=contains+commercial+links
Reason: useless note -- http://master.php.net/manage/user-notes.php?action=delete+47591&report=yes&reason=useless+note
Reject -- http://master.php.net/manage/user-notes.php?action=reject+47591&report=yes
Search -- http://master.php.net/manage/user-notes.php