setcookie

(PHP 4, PHP 5, PHP 7)

setcookie���� Cookie

˵��

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

setcookie() ������ Cookie�����ʣ�µ� HTTP ͷһ���͸��ͻ��ˡ� ������ HTTP ͷһ���������ڽű������������֮ǰ���� Cookie������Э������ƣ��� ���ڲ����κ����֮ǰ������ <html> �� <head> ���߿ո񣩵��ñ�������

һ������ Cookie ���´δ�ҳ��ʱ����ʹ�� $_COOKIE ��ȡ�� Cookie ֵͬ��Ҳ������ $_REQUEST��

����

» RFC 6265 �ṩ�� setcookie() ÿ�������IJο���׼��

name

Cookie ���ơ�

value

Cookie ֵ�� ���ֵ�������û��ĵ�������𴢴�������Ϣ�� ���� name �� 'cookiename'�� ��ͨ�� $_COOKIE['cookiename'] ��ȡ����ֵ��

expire

Cookie �Ĺ���ʱ�䡣 ���Ǹ� Unix ʱ������� Unix ��Ԫ��������������ʱ�� 1970 �� 1 �� 1 �� 00:00:00���������� Ҳ����˵������������ time() �����Ľ������ϣ�����ڵ������� ����Ҳ������ mktime()�� time()+60*60*24*30 �������� Cookie 30 �����ڡ� ������ó��㣬���ߺ��Բ����� Cookie ���ڻỰ����ʱ���ڣ�Ҳ���ǹص������ʱ����

Note:

�����ע�⵽�ˣ�expire ʹ�� Unix ʱ������� Wdy, DD-Mon-YYYY HH:MM:SS GMT ���������ڸ�ʽ������Ϊ PHP �ڲ�����ת����

path

Cookie ��Ч�ķ�����·���� ���ó� '/' ʱ��Cookie ���������� domain ��Ч�� ������ó� '/foo/'�� Cookie ������ domain �� /foo/ Ŀ¼������Ŀ¼��Ч������ /foo/bar/���� Ĭ��ֵ������ Cookie ʱ�ĵ�ǰĿ¼��

domain

Cookie ����Ч����/�������� ���ó������������� 'www.example.com'������ʹ Cookie ���������������������������Ч������ w2.www.example.com���� Ҫ�� Cookie ������������Ч����������ȫ������������ֻҪ���ó������Ϳ����ˣ������������ 'example.com'����

�ɰ��������Ȼ��ʹ�÷����� » RFC 2109�� ��Ҫһ��ǰ�õĵ� . ��ƥ��������������

secure

������� Cookie �Ƿ����ͨ����ȫ�� HTTPS ���Ӵ����ͻ��ˡ� ���ó� TRUE ʱ��ֻ�а�ȫ���Ӵ���ʱ�Ż����� Cookie�� ������ڷ������˴���������󣬳���Ա��Ҫ�����ڰ�ȫ�����Ϸ��ʹ��� Cookie ��ͨ�� $_SERVER["HTTPS"] �жϣ���

httponly

���ó� TRUE��Cookie ����ͨ�� HTTP Э����ʡ� ����˼���� Cookie �޷�ͨ������ JavaScript �����Ľű����Է��ʡ� Ҫ��Ч���� XSS ����ʱ�������ȡ��Ϊ���ɽ����ô����ã���Ȼ���������������֧�֣����������˵�����������顣 PHP 5.2.0 ����ӡ� TRUE �� FALSE

����ֵ

����ڵ��ñ�������ǰ�Ͳ����������setcookie() �����ʧ�ܲ����� FALSE�� ��� setcookie() �ɹ����У����� TRUE����Ȼ��������˼�����û��Ƿ��ѽ��� Cookie��

����

���� Cookie �ļ������ӣ�

Example #1 setcookie() ��������

<?php
$value 
'something from somewhere';

setcookie("TestCookie"$value);
setcookie("TestCookie"$valuetime()+3600);  /* 1 Сʱ����  */
setcookie("TestCookie"$valuetime()+3600"/~rasmus/""example.com"1);
?>

ע�⣺�ڷ��� Cookie ʱ��ֵ�IJ��ֻᱻ�Զ� urlencode ���롣�յ� Cookie ʱ�����Զ����룬����ֵ���ɱ�� Cookie �����ϡ� ������뱻���룬����ʹ�� setrawcookie() ����——������ PHP �汾�� 5 �����ϡ� �ڽű���鿴���ǵIJ��� Cookie �����ݣ�ʹ�������һ�����ӣ�

<?php
// ��ӡһ�������� Cookie
echo $_COOKIE["TestCookie"];

//  debug/test �鿴���� Cookie ����һ�ַ�ʽ
print_r($_COOKIE);
?>

Example #2 setcookie() ɾ������

Ҫɾ��һ�� Cookie��Ӧ�����ù���ʱ��Ϊ��ȥ���Դ����������ɾ�����ơ� ���������չʾ�����ɾ���ϸ�������� Cookie��

<?php
// ���ù���ʱ��Ϊһ��Сʱǰ
setcookie("TestCookie"""time() - 3600);
setcookie("TestCookie"""time() - 3600"/~rasmus/""example.com"1);
?>

Example #3 setcookie() ������

ͨ���� array ��ǵ� Cookie ���ƣ�Ҳ���԰� Cookie ���ó����顣 ���������Ԫ�أ����԰����Ž� Cookie � �ű����յ�ʱ��Cookie �������ֵ����һ�����飺

<?php
// ���� Cookie
setcookie("cookie[three]""cookiethree");
setcookie("cookie[two]""cookietwo");
setcookie("cookie[one]""cookieone");

// ��ҳˢ�º󣬴�ӡ����������
if (isset($_COOKIE['cookie'])) {
    foreach (
$_COOKIE['cookie'] as $name => $value) {
        
$name htmlspecialchars($name);
        
$value htmlspecialchars($value);
        echo 
"$name : $value <br />\n";
    }
}
?>

�������̻������

three : cookiethree
two : cookietwo
one : cookieone

������־

�汾 ˵��
5.5.0 ���͸��ͻ��˵� Set-Cookie ͷ���ڻ���� Max-Age ���ԡ�
5.2.0 ��� httponly ������

ע��

Note:

Ҫ�ڵ��ñ�����ǰ������ݣ�����ʹ��������壺������������ڷ������ﻺ�������� ֱ���������͸�������� ���ڽű������ ob_start() �� ob_end_flush()�� ������ output_buffering php.ini ������������ļ��������ָ�

Note:

��� PHP ָ�� register_globals ���ó� on��Cookie ֵ���Զ����óɱ����� ��������������� $TestCookie�� �����Ƽ���ʹ�� $_COOKIE��

ע��ܿӣ�

  • ��ҳ�棨 Cookie �ɼ���ҳ�棩�´�ˢ��ǰ��Cookie ������Ч�� ���� Cookie �Ƿ��Ѿ��ɹ����ã���Ҫ���´�ҳ�����ʱ��Cookie ����ǰ��⡣ ����ʱ����ͨ�� expire �������õġ� ֱ�ӵ��� print_r($_COOKIE); ���Լ�� Cookie �Ǹ��ܺõķ�ʽ��
  • Ϊͬһ�������ٴ����� Cookie ǰ�������Ȱ���ɾ���� ���������ֵ�ǿ� string �� FALSE�����������������ϴε��� setcookie �Ծ�һ���� ��ָ�������ƻᱻԶ�̿ͻ���ɾ���� �ڲ���ʵ���ǣ���ֵ���ó� 'deleted'�����ҹ���ʱ����һ��ǰ��
  • ��Ϊ����ֵ�� FALSE �ᵼ�� Cookie ��ɾ��������Ҫ����ʹ�ò���ֵ�� ���淽ʽ��0 �� FALSE��1 �� TRUE��
  • Cookie ���ƿ������ó��������ƣ�PHP �ű���������飬 ���û�ϵͳ�ﴢ����ǵ����ֿ��� Cookie�� ���Կ���ʹ�� explode() Ϊһ�� Cookie ���ö�����ƺ�ֵ�� �����齫 serialize() ���ڴ˴�����Ϊ���ᵼ�°�ȫ©����

��ε��� setcookie() �ᰴ����˳��ִ�С�

�μ�