• PHP会话技术


    由于HTTP协议是无连接、无状态的,所以HTTP协议无法记住客户端的信息。为了弥补HTTP协议的这两种不足,所以出现了会话技术。

    1 Cookie技术

    1.1 什么是Cookie

    服务器端,将能够唯一标识用户的数据保存在客户端的一种方式。之后,浏览器在每次请求时,都会自动携带给服务器。

    1.2 Cookie应用场景

    因为Cookie文件是保存到浏览器端的,其每次随身携带cookie数据到服务器,中途容易被其他脚本拦截,所以Cookie不安全,通常用来保存一些不重要的数据。如:登录时间。

    1.3 Cookie的基本使用

    1.3.1 增加cookie数据

    <?php
    // 增加一个Cookie
    setcookie('book', 'xiaoaojianghu', time()+3600);

    1.3.2 删除cookie数据

    <?php
    // 删除一个Cookie
    setcookie('book', '', time()-1);
    unset($_COOKIE['book']);

    1.3.3 修改cookie数据

    <?php
    // 修改一个Cookie
    setcookie('book', 'tianlongbabu', time()+3600);

    1.3.4 读取cookie数据

    <?php
    // 读取Cookie数据
    echo '<pre>';
    var_dump($_COOKIE['book']);

    1.4 Cookie的使用细节

    setcookie有7个参数:

    参数1:cookie的名字

    参数2:cookie的值

    参数3:有效期

    参数4:有效路径

    参数5:有效域,用来设置cookie在哪个域名下有效

    参数6:是否只能在HTTPS协议下传输

    参数7:是否只在HTTP协议下

    • 浏览器一般只允许存放300个cookie文件,每个站点最多20个,每个cookie的大小限制在4k左右
    • setcookie前面不能有任何的输出

    2 Session技术

    2.1 什么是Session

    session也是会话技术的一种,session以cookie为基础,将重要的数据保存到服务器,同时,将能够唯一标识这份数据的数据以cookie的形式保存到客户端。

    2.2 Session的应用场景

    验证码、防跳墙、购物车

    2.3 Session的基本使用

    2.3.1 增加session

    <?php
    session_start();
    $_SESSION['sex'] = female;

    2.3.2 删除session

    <?php
    session_start();
    unset($_SESSION['sex']);
    session_destroy(); // 删除session文件

    2.3.3 修改session

    同2.3.1

    2.3.4 查询session

    <?php
    session_start();
    echo '<pre>';
    var_dump($_SESSION);

    2.4 Session实例——防跳墙

    防止用户未经登录就进入我们的后台。直接登录index.php会报错。

    form.html代码如下:

    <!DOCTYPE html>
    <html lang="en">
    <head>
    	<meta charset="UTF-8">
    	<title>文件上传</title>
    </head>
    <body>
    	<form action="check.php" method="post">
    		用户名:<input type="text" name="user"><br>
    		密码:<input type="password" name="pass"><br>
    		<input type="submit" value="提交">
    	</form>
    </body>
    </html>

    check.php代码如下:

    <?php
    // 接收表单提交的用户名密码
    $user = $_POST['user'];
    $pass = $_POST['pass'];
    // 暂时给定合法用户为 张三 admin
    if($user == 'admin' && $pass == 'admin'){
    	session_start();
    	$_SESSION['user'] = $user;
    	header("Refresh:3;url=index.php");
    	echo "登录成功";
    	exit();
    }else{
    	header("Refresh:3;url=form.html");
    	echo '登录失败';
    	exit();
    }

    index.php代码如下:

    <?php
    session_start();
    
    if(!isset($_SESSION['user'])){
    	header('Refresh:2;url=form.html');
    	echo '非法访问,小心我告你';
    	exit();
    }
    echo '后台首页';

    2.5 Session实例——购物车

  • 相关阅读:
    jquery过滤特殊字符及js字符串转为数字
    jquery.validate.js表单验证
    jquery 判断checkbox状态
    jquery.lazyload.js 图片延迟加载
    ASP.NET MVC 中使用用户控件——转
    ASP.NET MVC3关于生成纯静态后如何不再走路由直接访问静态页面--收藏没测
    jquery.validation.js 表单验证
    jquery表单验证插件 jquery.form.js-转
    .net 获取客户端Ip地址
    在IE中MVC控制器中返回JSON格式的数据时提示下载
  • 原文地址:https://www.cnblogs.com/falling-maple/p/9383625.html
Copyright © 2020-2023  润新知