Day29 Session 的使用-2

因为开启Session,所以原本abc页面的验证是用Cookie,现在要更改为验证Session存在是否。
PS.只要用到Session,都需要session_start();

  • a.php
<?php
	session_start();
	//获取sessionid
	echo session_id();
	if(isset($_SESSION['user']['islogin']) && $_SESSION['user']['islogin'] ==  true){
		//已经登录
		echo '亲爱的'.$_SESSION['user']['name'].'会员,欢迎您回来<br/>';
		echo '这是a页面<br/>';
		echo '<a href="index.php">去首页</a><br/>';
		echo '<a href="b.php">去b页面</a><br/>';
		echo '<a href="c.php">去c页面</a><br/>';
	}else{
		//用户没有登录
		echo '对不起,您无权访问3S後自动跳转到登录页面';
		echo '<meta http-equiv="refresh" content="3;url=./login.html">';
	}
  • b.php
<?php
	session_start();
	echo session_id();
	if(isset($_SESSION['user']['islogin']) && $_SESSION['user']['islogin'] ==  true){
		//已经登录
		echo '亲爱的'.$_SESSION['user']['name'].'会员,欢迎您回来<br/>';
		echo '当前是b页面<br/>';
		echo '<a href="index.php">去首页</a><br/>';
		echo '<a href="a.php">去a页面</a><br/>';
		echo '<a href="c.php">去c页面</a><br/>';
	}else{
		//用户没有登录
		echo '对不起,您无权访问3S後自动跳转到登录页面';
		echo '<meta http-equiv="refresh" content="3;url=./login.html">';
	}
  • c.php
<?php
	session_start();
	echo session_id();
	if(isset($_SESSION['user']['islogin']) && $_SESSION['user']['islogin'] ==  true){
		//已经登录
		echo '亲爱的'.$_SESSION['user']['name'].'会员,欢迎您回来<br/>';
		echo '当前是c页面<br/>';
		echo '<a href="index.php">去首页</a><br/>';
		echo '<a href="a.php">去a页面</a><br/>';
		echo '<a href="b.php">去b页面</a><br/>';
		echo '<a href="logout.php">退出登录</a>';
	}else{
		//用户没有登录
		echo '对不起,您无权访问3S後自动跳转到登录页面';
		echo '<meta http-equiv="refresh" content="3;url=./login.html">';
	}
  • logout.php
<?php
//退出登录操作  原本只有cookie的时候
// setcookie('islogin',null,time()-1,'/');
// setcookie('name',null,time()-1,'/');


//现在
session_start();
//1.清除当前session数组中的值
$_SESSION['user'] = array(); //设置空数组=清空里面的值
//获取session的名称
//echo session_name();exit;
//2.让sessionid失效
setcookie(session_name(), null, time() - 1, '/');
//删除session文件
session_destroy();

echo '<script>alert("已退出");location="./login.html"</script>';

Session的配置文件相关选项

php.ini档案打开有Session配置的资讯

简述一下

  • session.save_handler = files 设定session文件的存储方式
  • session.save_path="C:\xampp\tmp" session文件保存的路径
  • session.use_cookies = 1 设定是否使用cookie来存储session的id
  • session.use_only_cookies = 1 设定SESSION是否只用cookie
  • session.name = PHPSESSID session名称
  • session.auto_start = 0 设置是否自动开启session
  • session.cookie_lifetime = 0 设定session使用cookie的有效生存时间,0 表示关闭浏览器前有效
  • session.cookie_path = / 设置session使用cookie的有效路径
  • session.cookie_domain = 设置SESSION使用cookie的有效域名 (空 表示当前域名有效)
  • session.cookie_httponly = 设置session使用cookie是否指允许使用http协议
  • session.serialize_handler = php session串行化的方式
  • session.gc_probability = 1 垃圾回收机制的除数
  • session.gc_divisor = 1000 垃圾回收机制的被除数
    例如我们有1000个会员登入,那就会引发这个机制。
  • session.gc_maxlifetime = 1440 session垃圾回收的最大时间。
  • session.use_trans_sid = 0 session是否使用传输方式传session的id
  • session.trans_sid_tags = "a=href,area=href,frame=src,form=" session可以传输id的方式

<<:  Day29 :【TypeScript 学起来】React + TypeScript 实作简单 Todo App Part2

>>:  D34 - 用 Swift 和公开资讯,打造投资理财的 Apps { 台股申购功能扩充.5 }

Day8 - pandas(3)DataFrame索引与loc、iloc

DataFrame索引: DataFrame在使用索引时,必须填入栏位名称 那我们如果只想选取某个r...

DAY9-OH CRUD.

前言: 上一篇的最後我们提到今天要来补完Update和Delete,可是阿森不想让所有人都可以控制...

中央处理单元 (CPU) 的立即寻址(Immediate addressing)模式中,指令本身指定了的运算元

-计算机架构 CPU 指令将值加载到寄存器中进行计算是很常见的。CPU 的寻址模式意味着 CPU ...

Progressive Web App 用户端储存简介 (13)

什麽是用户端储存 (Client-side storage) 对一个 App 来说,为了达到某些目的...

[Day19] THM Archangel

URL : https://tryhackme.com/room/archangel IP : 1...