PHP-会话控制

一.cookie

是一种将用户的数据记录在客户端的技术。

cookie数据以键值对的形式保存到客户端,当再次访问同一个服务器中的其它页面时,就会自动携带cookie数据一起访问,服务器重新对登录者的身份进行验证,而不需要用户每访问该服务器的一个页面都登录一次。

设置cookie:

bool setcookie(string name,string value,int expiretime,string path,string domain,bool secure)

参数说明:

name ---名称

value ---可以是数字或者字符串形态

exprietime----生存时间 (Unix时间戳,从nuix纪元开始的秒数,如 time()+60*60*24  为1天后失效)

path------在服务器端的指定路径,只有该路径下的页面存取此cookie

domain-----指定该cookie所属服务器的网址 ,如:要设置在example.com域名下的所有子域都有效,就设置为“.example.com”

secure-----指定cookie是否通过https连接传送 默认为false

<?php
	setcookie("haolei","q23442",time()+3600*24,"/",".xinxiaonet.com",1);
?>
说明:如果需要向客户端设置多个cookie,可以多次调用setcookie()函数来实现,但如果两次设置相同名称的cookie则后者会把前者覆盖

读取cookie

从php5以后,任何从客户端发来的cookie信息都被保存在$_COOKIE数组中

<?php
print_r($_COOKIE);
?>

数组形态的cookie

cookie也可以利用多维数组的形式,将多个内容值储存在相同cookie名称下

<?php
	setcookie("xin[username]","haolei");
	setcookie("xin[pwd]","bjjkf");
	setcookie("xin[time]",1);
?>


删除cookie

1.setcookie("cookiename");

2.setcookie("cookiename","",time()-1);


二:session

在客户端仅保存由服务器为用户创建的一个sessionID,而服务器端保存session变量的值。

当用户向服务器发出请求时,服务器首先会检查这个客户端的请求中是否已经包含了一个sessionID。如果包含,说明之前已经为该用户创建过session,则按照sessionID把session变量值检索出来。如果请求中不包含sessionID,则为该用户创建一个session,并且把生成sessionID在本次响应中保存在客户端。

session的生命周期:

1.当客户端与服务器端失去连接(网络中断、浏览器关闭、服务器关闭)时,session自动失效

2.session有效期限到期,不管客户端浏览器是否关闭,session都会失效 (修改php.ini 中的session.cookie.lifetime=0  单位/秒)

php.ini文件中相关session的配置:



bool session_start();

如果使用的是基于cookie的session,在使用该函数开启session之前不能有任何输出

注册session

session_start();
$_SESSION["username"]="haolei";
$_SESSION["password"]="asdfasdf";
销毁session

1.bool session_destroy();//

2.unset($_SESSION["$name"])  //删除session中注册的变量

3.$_SESSION=array()  //将$_SESSION的值修改为空数组

php session 默认是基于cookie的,sessionID被存储在客户端的cookie中,所以销毁session时也需要清除cookie中的sessionID :

<?php
	session_start();
	$_SESSION=array();
	if(isset($_COOKIE["session_name()"])){
		setcookie("session_name()","",time()-1);
	}
	session_destroy();
?>



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值