Cookie与Session详解编程语言

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

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论