note 62848 modified in function.setcookie by danbrown
| From: | danbrown@php.net | Date: | Sun, 17 May 2009 17:58:34 +0000 |
| Subject: | note 62848 modified in function.setcookie by danbrown | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-155046@lists.php.net to get a copy of this message | ||
Firefox is following the real spec and does not decode '+' to space...in fact it further
encodes them to '%2B' to store the cookie. If you read a cookie using javascript and
unescape it, all your spaces will be turned to '+'.
To fix this problem, use setrawcookie and rawurlencode:
<?php
setrawcookie('cookie_name', rawurlencode($value), time()+60*60*24*365);
?>
The only change is that spaces will be encoded to '%20' instead of '+' and will
now decode properly.
--was--
Firefox is following the real spec and does not decode '+' to space...in fact it further
encodes them to '%2B' to store the cookie. If you read a cookie using javascript and
unescape it, all your spaces will be turned to '+'.
To fix this problem, use setrawcookie and rawurlencode:
setrawcookie('cookie_name', rawurlencode($value), time()+60*60*24*365);
The only change is that spaces will be encoded to '%20' instead of '+' and will
now decode properly.
http://php.net/manual/en/function.setcookie.php