由于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实例——购物车

PHP会话技术的更多相关文章

  1. 会话技术( Cookie ,Session)

    会话技术:    会话:浏览器访问服务器端,发送多次请求,接受多次响应.直到有一方断开连接.会话结束.        解决问题:可以使用会话技术,在一次会话的多次请求之间共享数据.           ...

  2. Java Web之会话技术

    客户端与服务器通信过程中,会产生一些数据.比如,A和B分别登陆了某宝购物网站,A买了一个Android手机,B买了一个iPhone手机,当结账时,web服务器需要分别对用户A和B的信息分别保存.根据J ...

  3. JavaWeb学习之转发和重定向、会话技术:cookie、session、验证码实例、URLConnection使用(下载网页)(4)

    1.转发和重定向 HttpServletResponse response 转发: RequestDispatcher dispatcher = request.getRequestDispatche ...

  4. JSP入门&会话技术

    一.JSP    1.jsp技术        jsp是sun提供动态web资源开发技术.为了解决在Servlet中拼写html内容css.js内容十分不方便的问题,sun提供了这样一门技术.如果说S ...

  5. JavaWeb基础: 会话技术简介

    会话技术 用户使用Web应用的过程实际是调用了一系列的Servlet来组合处理请求,从而完成整个业务流.不同Servlet组合起来为用户服务的时候就会遇到一个数据共享和传输的问题,如何让多个Servl ...

  6. servlet会话技术:Cookie

    什么是会话会话可以简单理解为:用户开一个浏览器访问某个网站,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话.会话过程中需要解决的一些问题每个用户在使用浏览器与服务器进 ...

  7. Java实战之04JavaWeb-03会话技术

    一.会话技术简介 1.什么是会话,为什么需要会话技术? 会话:从打开一个浏览器,访问某个网站,到关闭这个浏览器的这个过程称为一次会话.http协议是状态的. 2.会话技术的分类 客户端存储技术:Coo ...

  8. 会话技术之Cookie 和 Session

    为什么要使用会话技术 会话从字面上来说就是,就是两个人说话,也就是两个人交流,那么这里说的是计算机web端的交流,因为互联网是基于HTTP传输信息的,而http传输是无状态协议,缺少状态,意味着如果后 ...

  9. SESSION会话技术

    以下对session会话技术详解: 要了解点http协议理解更佳--->http请求头和http相应头 在session_start的时候,浏览器会向服务器发出请求 在请求的同时,如果是第一次a ...

  10. cookie会话技术

    会话技术 B/S请求是无状态无记忆的,脚本与脚本之间是没有联系的,导致不能进行连续的业务逻辑 Cookie技术:将会话数据保存在浏览器端 原理:服务器向浏览器发送指令,用来管理存储在浏览器端的cook ...

随机推荐

  1. spring boot定时任务解析

    在SpringBoot中定时任务一般使用的是@Scheduled注解. @Scheduled 1.注解内容: @Target({ElementType.METHOD, ElementType.ANNO ...

  2. java学习补全 1

    CLASSPATH java执行命令时利用此路径加在需要的.class文件 字符串常量就是String 类的匿名对象 String类在直接复制的情况下只会保留一块堆内存 a="hhh&quo ...

  3. 洛谷P2196 挖地雷 [2017年4月计划 动态规划13]

    P2196 挖地雷 题目背景 NOIp1996提高组第三题 题目描述 在一个地图上有N个地窖(N<=20),每个地窖中埋有一定数量的地雷.同时,给出地窖之间的连接路径.当地窖及其连接的数据给出之 ...

  4. python 单元测试之初次尝试

    python 语言中有很多单元测试框架和工具,而unittest单元测试框架作为标准python语言中的一个模块.是其他框架和工具的基础.想要进行单元测试,我们需要使用到unittest框架中的功能. ...

  5. C# 配置文件 Appconfig

    WinForm或WPF应用程序有时候需要保存用户的一些配置就要用到配置文件,而微软为我们的应用程序提供了Application Configuration File,就是应用程序配置文件,可以很方便的 ...

  6. python中的True和False

    返回真假时,需要为: return True return False

  7. 三分钟学会在ASP.NET Core MVC 中使用Cookie

    一.Cookie是什么? 我的朋友问我cookie是什么,用来干什么的,可是我居然无法清楚明白简短地向其阐述cookie,这不禁让我陷入了沉思:为什么我无法解释清楚,我对学习的方法产生了怀疑!所以我们 ...

  8. HTML文档与盒子模型

    关于HTML 百度百科里是这么说的:超文本标记语言,即HTML(Hypertext Markup Language),是用于描述网页文档的一种标记语言. 为什么叫用于“描述”网页文档的“标记”语言呢? ...

  9. vue+axios 对restful 请求封装

    礼拜天来公司整理项目,项目是最近开始重构的,里面的各种http请求接口是restful结构的(为了提升项目的比格),整理一下笔记 [restful介绍][1]博主讲的很详细 技术栈: vue + vu ...

  10. iOS Status Bar变换

    http://www.cocoachina.com/ios/20160718/17020.html 背景 iOS 中经常会有需要在某个界面改变状态栏颜色或者某个界面隐藏状态栏的需求.而改变状态栏颜色和 ...