Cookie
1、创建Cookie
PHP中通过setcookie()函数创建cookie,在创建cookie之前必须了解的是,Cookie是HTTP头标的组成部分,而头标记必须在页面其他内容之前发送,它必须最先输出,即使在setcookie()函数前输出一个HTML标记或echo语句,甚至一个空行都会导致程序出错。
格式:
setcookie($name,$value,$expire,$path,$domain,$secure)
其中,$path指的是服务器路径,$secure规定是否通过安全的HTTPS来传输Cookie。实例如下所示:
<?php setcookie('PHPcookie', 'blog.ytso.com'); setcookie('PHPcookie', 'blog.ytso.com', time+3600);//设置cookie的有效时间1小时 setcookie('PHPcookie', 'blog.ytso.com', time+3600,' /cookie/',1); //设置有效时间为1小时;有效目录为'/cookie/',有效域名为'58lxqy.com'及其子域名 ?>
2、读取Cookie
<?php if(!isset($_COOKIE["visittime"])){ //判断cookie文件是否存在?如果不存在 setcookie("visittime",date("Y-m-d H:i:s")); //设置一个cookie的变量 echo "欢迎您第一次访问php100网站"; //输出字符串 }else{ //如果cookie存在 echo "您上次访问php100的时间为:".$_COOKIE["visittime"];//显示上次设置的cookie的值 setcookie("visittime",date("Y-m-d H:i:s"),time+3600);//设置新的cookie,失效时间为一个小时 echo "<br>";//换行 } echo "你本次访问php100的时间为:". $_COOKIE["visittime"];//输出当前访问时间 ?>
如果未设置Cookie到期时间,相应的Cookie在关闭浏览器后会自动删除。如果为Cookie设置了到期时间,浏览器将会记住Cookie数据,即
<?php if(!empty($_COOKIE['num'])){ $num=$_COOKIE['num']+1; }else{ $num=1; } setcookie("num",$num,time()+2678400); ?>
重新启动计算机,只要没到期,访问网站也会获得之前设置的信息。
3、删除Cookie
一种是使用setcookie()函数删除Cookie
setcookie("name","",time()-1);
将cookie的第二个参数设置为空,将三个参数Cookie的到期时间设置为小于系统的当前时间即可,上面把当前时间-1秒就得到过去的时间,从而删除Cookie。其实把过期时间设置为0,可以直接删除Cookie。
4、Cookie的生命周期
浏览器允许最多存储300个Cookie文件,而且每个Cookie文件支持的最大容量为3KB,每个域名最多支持20个Cookie。如果达到限制时,浏览器会自动地随机删除Cookie。
5、Cookie的综合应用,计算网站的月访问量
<?php if(!empty($_COOKIE['num'])){ //判断是否存在为num的cookie $num=$_COOKIE['num']+1; //如果存在访问量自动+1 }else{ $num=1; //否则,设置默认设置为1 } setcookie("num",$num,time()+2678400); //将访问量设置为Cookie,存储时间为31天 您是第<?php $num?>位访客 ?>
二、Session管理
1、了解Session
对比Cookie,会话文件中保存的数据是在PHP脚本中以变量的形式创建的,而创建会话变量在生命周期(20分钟)可以被跨页请求所引用。另外,Session是存储在服务器端的会话,相对安全,并且不像Cookie那样有长度的限制。另外Session会话用于存储用户的信息量比较少的情况,如果用户需要存储的信息量比较少,并且存储内容不需要长期存储,那么使用Session把信息存储在服务器端比较合适。
2、启动会话
通过session_start()启动会话,使用此函数之前浏览器不能有任何输出,否则会产生一个类似于如图10-7所示的错误。
通过session_register()函数创建会话,此函数是用来为会话加载一个变量来隐含地启动会话(不需要调用session_start()),但是要求设置
3、注册会话
把信息添加到全局数组$_SESSION中,如下所示:
<?php Session_start(); $_SESSION['name']="58lyqy.com"; ?>
4、使用会话,比较简单
5、删除会话
删除单个会话:unset($_SESSION[‘name’]);
删除多个会话:$_SESSION=array()
结束当前会话:session_destroy();
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/16467.html