PHP
downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

socket_get_status> <setcookie
Last updated: Fri, 10 Jul 2009

view this page in

setrawcookie

(PHP 5)

setrawcookieSend a cookie without urlencoding the cookie value

Descrierea

bool setrawcookie ( string $name [, string $value [, int $expire= 0 [, string $path [, string $domain [, bool $secure= false [, bool $httponly= false ]]]]]] )

setrawcookie() is exactly the same as setcookie() except that the cookie value will not be automatically urlencoded when sent to the browser.

Parametri

For parameter information, see the setcookie() documentation.

Valorile întroarse

Întoarce valoarea TRUE în cazul succesului sau FALSE în cazul eşecului.

Istoria schimbărilor

Versiunea Descriere
5.2.0 The httponly parameter was added.

Vedeţi de asemenea



socket_get_status> <setcookie
Last updated: Fri, 10 Jul 2009
 
add a note add a note User Contributed Notes
setrawcookie
Anonymous
10-Apr-2008 09:01
For PHP 4 systems you can use...
<?php
header
('Set-Cookie: name=value');
?>

... but it seems to be difficult to obtain the results without PHP's automatic URL decoding :o(
subs at voracity dot org
12-Dec-2006 01:31
setrawcookie() isn't entirely 'raw'. It will check the value for invalid characters, and then disallow the cookie if there are any. These are the invalid characters to keep in mind: ',;<space>\t\r\n\013\014'.

Note that comma, space and tab are three of the invalid characters. IE, Firefox and Opera work fine with these characters, and PHP reads cookies containing them fine as well. However, if you want to use these characters in cookies that you set from php, you need to use header().
Brian
10-Mar-2006 07:56
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.

socket_get_status> <setcookie
Last updated: Fri, 10 Jul 2009
 
 
show source | credits | stats | sitemap | contact | advertising | mirror sites