Day28 Session 的使用-1

Session的使用方法

  1. Session的操作跟数组的操作时一样。
  2. 在页面中如果使用Session,那麽必须在页面开始处先开启Session
    • session_start();
  3. 设置或者获取sessionid,通过函数
    • sessionid();
  4. 添加session
    • $_SESSION['下标'] = 值;
  5. 修改session
    • $_SESSION['下标'] = 新值;
  6. 删除session
    1. 删除session的变量值(保留数据类型,不直接用unset)
      • $_SESSION = array();
    2. 删除所有session信息(包括文件)一般使用於退出操作
        1. 使客户端COOKIE中的SESSIONID过期。
        1. 清空页面SESSION的变量值
        1. 摧毁服务器的SESSION文件
  7. 使用session
    • 查看全部SESSION信息
      • var_dump()或者print_r();
    • 使用其中sesssion的某个元素
      • $_SESSION['下标'];

Cookie 与 Session 跨页面使用,所以需要的时候,要开启session
二为数组,因为把相同的存在一起,改天有甚麽购物车就又是另外一组

现在我们要来做一点小更改,把纯Cookie的操作变为Session操作,怕大家弄混,所以不只会说哪里做变更,还有整个档案都会附上

  • login.html
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>文档</title>
</head>
<body>
<form action="login.php" method="post">
用户名:<input type="text" name="name" id=""><br/>
密码:
<input type="password" name="pwd" id=""><br/>
<input type="submit" value="登录">
</form>
</body>
</html>
  • login.php
    这边变更session_start(); 开启session,以及创造二维数组$_SESSION['user']['islogin'],把与user有关的存在一起,改天有甚麽购物车就又是另外一组数组。
<?php
	//手动开启session
	session_start();
    if ($_POST['name'] == 'winnie' && $_POST['pwd'] == 'admin') {
	$_SESSION['user']['islogin'] = true;
	$_SESSION['user']['name'] = $_POST['name'];
	$_SESSION['user']['pwd'] = $_POST['pwd'];
	//var_dump($_COOKIE);
	//登录成功
	echo '<script>alert("登录成功");location="./index.php"</script>';
} else {
	//登录失败跳转注册页面
}
  • index.php
<?php
	//开启session
	session_start();
	echo session_id();
	//var_dump($_COOKIE);
	//首页
	if(isset($_SESSION['user']['islogin']) && $_SESSION['user']['islogin'] ==  true){
		//已经登录
		echo '亲爱的'.$_SESSION['user']['name'].'会员,欢迎您回来<br/>';

		echo '<a href="a.php">去a页面</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">';
	}
    ```

我们实际跑一次可以看到Session_ID,还有在浏览器的Session储存
![](https://i.imgur.com/CFBXBlX.png)


<<:  [Day 29] Reactive Programming - RSocket (Hello World) Part 1

>>:  Day29-浅谈 React Concurrent Mode & 相关功能(Fiber、Suspense、useTransition、useDeferredValue)

Day2 React是什麽呢?

React是由facebook推出的前端函式库 (library),主要使用语言是Javascrip...

[Lesson24] Kotlin - 条件

if-else Kotlin的条件判断叙述比较特别,它能够用 if-else 赋值给变数 val r...

Expression 与 Statement

表达式 (Expression) A unit of code that results in a ...

Day 07:测试

前言 如果没有好的测试习惯,会造成很多可怕的事情: 系统直接死掉,使用人数归零,被迫加班。 旧的东西...

Day15. Inheritance & Super - Ruby 继承 part2

在 Day2 提到过,Ruby为单一继承的语言。若我们要实现多重继承的话,我们在 Day14 提到可...