php cookie用法
代码如下 复制代码
setcookie('mycookie','value');
//函数原型:int setcookie(string name,string value,int expire,string path,string domain,int secure)
echo($mycookie);
echo($http_cookie_vars['mycookie']);
echo($_cookie['mycookie']);
删除cookie
(1)调用只带有name参数的setcookie();
(2)使失效时间为time()或time-1;
代码如下 复制代码
setcookie('mycookie');或setcookie('mycookie','');或setcookie(mycookie,false);
//setcookie('mycookie','',time()-3600);
echo($http_cookie_vars['mycookie']);
print_r($_cookie);
建议删除方法:
代码如下 复制代码
setcookie('mycookie','',time()-3600);
php提供一个很好用的函数mktime()。
你只要按顺序传送给mktime()你希望表示的小时,分钟,秒数,月份,日期,及年份,
mktime()就会返回该日期自1970年1月1日的总秒数。
因此,如果需要模拟 y2k 问题:
代码如下 复制代码
$y2k = mktime(0,0,0,1,1,2000);
setcookie('name','value',$y2k);
setcookie('name', 'value', time+3600);
setcookie('name', 'value', $y2k, '~/myhome', '.domain.com');
获取cookie过期时间的办法
代码如下 复制代码
$expire = time() + 86400; // 设置24小时的有效期
setcookie (var_name, var_value, $expire); // 设置一个名字为var_name的cookie,并制定了有效期
setcookie (var_name_expire, $expire, $expire); // 再将过期时间设置进cookie以便你能够知道var_name的过期时间
注:
在发送 cookie 时,cookie 的值会自动进行 url 编码。接收时会进行 url 解码。
如果你不需要这样,可以使用 setrawcookie() 代替。
php设置、获取与删除cookie
代码如下 复制代码
//--------设置cookie,1小时后过期------//
setcookie('testcookie','hello word 秦迷',time()+3600);
//setrawcookie不进行url编码
header('content-type: text/html');
//查看发送的报头
var_dump(headers_list());#array(2) { [0]=> string(85) set-cookie: testcookie=hello+word+%c7%d8%c3%d4; expires=tue, 19-apr-2011 10:06:14 gmt [1]=> string(23) content-type: text/html }
echo '
';
echo $_cookie['testcookie'];#hello word 秦迷
//兼容旧版本(淘汰)
if(isset($http_cookie_vars[testcookie])){
echo $http_cookie_vars[testcookie];
}
echo '
';
//输出所有 cookie
print_r($_cookie);#array ( [key] => value [testcookie] => hello word 秦迷 )
?>
$value)
{
echo $name : $value
;
/**
* two : twoval
* one : oneval
*/
}
}
//设置过期,删除cookie
//setcookie('testcookie', '', time() - 3600);
//setcookie('cookie[one]', '', time() - 3600);
方法一:
在php里cookie的使用是有一些限制的。
1、使用setcookie必须在标签之前
2、使用setcookie之前,不可以使用echo输入内容
3、直到网页被加载完后,cookie才会出现
4、setcookie必须放到任何资料输出浏览器前,才送出
由于上面的限制,在使用setcookie()函数时,学会遇到 “undefined index”、”cannot modify header information – headers already sent by”…等问题,解决办法是在输出内容之前,产生cookie,可以在程序的最上方加入函数 ob_start();
ob_start :打开输出缓冲区
函数格式:void ob_start(void)
说明:当缓冲区激活时,所有来自php程序的非文件头信息均不会发送,而是保存在内部缓冲区。为了输出缓冲区的内容,可以使用ob_end_flush()或flush()输出缓冲区的内容。
方法二:
解决warning: cannot modify header information – headers already sent by ……
前几天装了个php的大头贴系统测试,发现报错warning: cannot modify header information – headers already sent by ….今天又装openads,还是出现这个问题。怒了。上网找了半天,有人说要在文件开头写上ob_start();,结果失败。后来打开 php.ini 然后把 output_buffering 设为 on 。重起appache,ok。看来这才是解决办法。
特别注意:如果使用utf-8编码,一定要去掉utf-8中的bom,这都是因为utf-8编码文件含有的bom原因,而php4,5都是不支持bom的。去掉bom,可以用notepad++打开转换一下。切记,切记,切记!(这问题害我折腾了半天。)
方法三:
当前设置的cookie 不是立即生效的,而是要等到下一个页面时才能看到.这是由于在设置的这个页面里
cookie由服务器传递给客户浏览器,在下一个页面浏览器才能把cookie从客户的机器里取出传回服务器的原
因。在同一个页面设置cookie,实际是从后往前,所以如果要在插入一个新的cookie之前删掉一个,你必须
先写插入的语句,再写删除的语句,否则可能会出现不希望的结果。
删除一个cookie时,该cookie的值在当前页面仍然是有效的,也就是值还是存在的,在下次请求该页面或其它页面时就不会存在了。也就是说php的cookie相关操作都是异步的,当前面设置或删除了cookie,要等到下次请求时才能正确反应出来。
删除cookie时最好不要用setcookie(cookie名)这种方法,这样很容易删除整个cookie数组,具体我不细说了,注意就行了,删除cookie的最好方法是设有效时间为过去,当浏览器发现cookie有效期过后会确发删除cookie事件,还有一点要注意的时,设置cookie时有几个参数,删除时也要有几个参数,否则容易出错。
http://www.bkjia.com/phpjc/632799.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/632799.htmltecharticlecookie是一个用于存储信息到客户端浏览器中的我们可以利用cookie来记录用户的一些相关信息,像站长统计代码就基于cookie与ip来实现的,下面...
