php 设置cookie函数setcookie详解

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


bool setcookie(string name,string value,int expire,string path,string domain,bool secure,bool $httponly);


其中:


name为cookie的名字,


value为cookie的值,


expire为过期时间的秒级时间戳(默认为0,代表内存cookie,关闭浏览器即失效)


path为cookie的路径,浏览器在发送cookie是只会发送对应路径及祖先级路径的cookie,如cookieA设置在根下,cookieB设置在/dir/下,访问dir的请求会带着cookieB和cookieA,但访问根路径的请求只会带着cookieA


domain为cookie的域名,只能设置为当前域或当前域的上级域。例如:一个在a.b.com的页面,可以设置domain为a.b.com,b.com,设置为a.b.com只能在a.b.com中访问cookie,若直接设置为b.com,则可以在其他b.com域下访问


secure为true会对cookie进行HTTPS加密传输


httponly为true时,只能通过请求发送cookie,使用javascript无法读取httponly的cookie,安全性更高






例如:


//http://a.php.com/cookie.php

$expire = time() + 60; // 设置1分钟的有效期

//$expire = time()-1; //设置删除cookie的有效期

$domain = "a.php.cn"; //当前域为a.php.cn 则只能设置a.php.cn 和 php.cn
$domain = "php.cn"; //给顶级域名设置cookie(跨子域设置cookie)。

//设置字符串的cookie:
$name = "bob";
$name2 = "wangsan2";
$name3 = "jerry3";


setcookie("name",$name,$expire,"/",$domain);
setcookie("name3",$name3,$expire,"/",$domain2);
setcookie("name2",$name2,$expire,"/",$domain2);


var_dump($_COOKIE['name']);
var_dump($_COOKIE['name2']);
var_dump($_COOKIE['name3']);
var_dump($_COOKIE['name5']);
var_dump($_COOKIE['name6']);


//设置数组的cookie:
$names = array("book","cnds","jerry","hub","wow","man","boys");
$names_s = serialize($names);
setcookie("names",$names_s,$expire,'/','php.cn');




//http://b.php.com/cookie.php


$expire = time() + 20;
//$expire = time()-1;


$domain1 = "b.php.cn";//当前域为b.php.cn 则只能设置b.php.cn 和 php.cn
$domain2 = "php.cn";


$name2 = "wangsan";
$name5 = "bob5";
$name6 = "jerry6";


setcookie("name",$name2,$expire,"/",$domain1);
setcookie("name5",$name5,$expire,"/",$domain2);
setcookie("name6",$name6,$expire,"/",$domain2);


var_dump($_COOKIE['name']);
var_dump($_COOKIE['name2']);
var_dump($_COOKIE['name3']);
var_dump($_COOKIE['name5']);
var_dump($_COOKIE['name6']);


$name_s = $_COOKIE['names'];  
$names = unserialize($name_s);
var_dump($names);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值