php之session熟悉了解

概念了解:

session在web主要指用户在浏览某个网站,从进入该网站到关闭这个网站经过的这段时间。


工作原理:

1.启动seesion,服务端会传给浏览器一个键值为PHPSESSID的唯一标识存储在本地的cookie中,同时会在服务器相应目录下根据键值生成一个对应的session文件

设置session值后,值就存在该session文件中

2.服务器php脚本读取session值的话,浏览器传回键值的唯一标识,通过启动session,然后根据键值可以从session文件中加载已经存储的变量

3.当php脚本执行结束时,未被销毁的session变量会被自动保存在本地一定路径下唯一标识的session文件中,路径可以通过php.ini中的session.save_path设定


1.设置session值,得先启动session,后设置

session_start();
$_SESSION['name'] = 'wyz';

2.读取session值

session_start();
echo $_SESSION['name'];


3.删除session

a.针对单个

unset($_SESSION['name']);

b.针对所有

session_destroy();


4.设置session的唯一标识值cookie在浏览器上的保留时间,也可以说设置存放session值的时间

session_start(); 
$_SESSION['name'] = 'wyzss';
$lifeTime = 24 * 3600;
setcookie(session_name(), session_id(), time() + $lifeTime, "/");


注:设置php.ini下的gc_maxlifetime只能保证session生存的最短时间


严格限制session在30分钟后过期:
1.设置客户端cookie的lifetime为30分钟;
2.设置session的最大存活周期也为30分钟;
3.为每个session值加入时间戳,然后在程序调用时进行判断;

$_SESSION['expiretime'] = time() + 3600;
if(isset($_SESSION['expiretime'])) {
	if($_SESSION['expiretime'] < time()) {
		unset($_SESSION['expiretime']);
		header('Location: logout.php?TIMEOUT'); // 登出
		exit(0);
	} else {
		$_SESSION['expiretime'] = time() + 3600; // 刷新时间戳
	}
}





你可能感兴趣的:(php之session熟悉了解)