5月21 回话控制SESSION COOKIE
百科
HTTP普及(无状态性)
超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。
一:SESSION的定义及特点
定义:
Session,在计算机中,尤其是在网络应用中,称为“会话”。在计算机专业术语中,Session是指一个终端用户与交互系统进行通信的时间间隔,通常指从注册进入系统到注销退出系统之间所经过的时间以及如果需要的话,可能还有一定的操作空间。
具体到Web中的Session指的就是用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览这个网站所花费的时间。因此从上述的定义中我们可以看到,Session实际上是一个特定的时间概念。
需要注意的是,一个Session的概念需要包括特定的客户端,特定的服务器端以及不中断的操作时间。A用户和C服务器建立连接时所处的Session同B用户和C服务器建立连接时所处的Session是两个不同的Session。(摘自百度百科)
特点:
1.存储在服务端的(服务器上),
2每个人存一份,
3可以存储任意类型的数据,
4默认的过期时间15分钟
会加重服务端的服务开销,但是安全性高
用法及注意事项
无论什么时候用到SESSION时都需要在php的最顶端开启才可以使用:session_start();
eg:
<?php
session_start();//开启session
$_SESSION["uid"] = "zhangsan";//写入session
echo $_SESSION["uid"];//获取session数据
?>
代码中的实例:jk.php
<?php session_start();//开启SESSION要写在php代码的最顶端$_SESSION["uid"] = "张三";//写入SESSION echo $_SESSION["uid"];?> <a href="jk1.php">跳转</a>
跳转页面:jk1.php
<?php session_start();echo $_SESSION["uid"];//不关浏览器页面时就不会报错,?>
实施跳转时候能获取到第一个页面存入的zhangsan,但是直接点开第二个时候会报错,但是只要有浏览器的页面开着再去浏览第二个时会取到
SESSION的案例应用
1.登录界面显示要求:
登录页面:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>登录</title> </head><body> <form action="login3chuli.php" method="post"><div>用户名:<input type="text" name="uid" /></div><div>密码:<input type="text" name="pwd" /></div><div>登录:<input type="submit" value="登录" /></div> </form> </body> </html>
View Code
登录处理页面:
<?php session_start(); include("../DBDA.php"); $db = new DBDA();$uid = $_POST["uid"]; $pwd = $_POST["pwd"];$sql = "select count(*) from Users where Uid = '{$uid}' and Pwd = '{$pwd}'";$r = $db->StrQuery($sql);//登录成功返回1if($r==1) {$_SESSION["uid"] = $uid;header("location:main3.php"); } else {header("location:login3.php"); }
View Code
主页面:主要是返回用户者的信息:特别注意安全性,因此会加判断
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>登录返回用户名</title> </head><body> <?php session_start(); //直接输出虽然可以看到,但是也会有告诉直接登录主界面查看信息 //要加个判断 if(empty($_SESSION["uid"])) {header("location:login3.php"); }echo $_SESSION["uid"];?> </body> </html>
View Code
2.添加购物车案例
显示水果所有的信息:showlist4.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>显示水果的所有信息</title> </head><body> <table width="100%" border="1" cellpadding="0" cellspacing="0"><tr><td>水果名称</td><td>水果价格</td><td>水果产地</td><td>水果库存</td><td>操作</td></tr> <?php include("../DBDA.php"); $db = new DBDA();$sql = "select * from fruit"; $attr = $db->Query($sql);foreach($attr as $v) {echo "<tr><td>{$v[1]}</td><td>{$v[2]}</td><td>{$v[3]}</td><td>{$v[4]}</td><td><a href='addgwc4.php?code={$v[0]}'>加入购物车</a></td></tr>"; } ?> </table> <a href="gouwuche4.php">查看购物车</a></body> </html>
View Code
购物车详细信息内容列表:gouwuche4.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>购物车详细信息</title> </head><body> <table width="100%" border="1" cellpadding="0" cellspacing="0"><tr><td>水果名称</td><td>水果价格</td><td>数量</td></tr><?php session_start(); include("../DBDA.php"); $db = new DBDA();$attr = $_SESSION["sg"];foreach($attr as $v) {$sql = "select Name,Price from fruit where Ids = '{$v[0]}'"; $arr = $db->Query($sql);echo "<tr><td>{$arr[0][0]}</td><td>{$arr[0][1]}</td><td>{$v[1]}</td></tr>"; }?> </table> </body> </html>
View Code
添加购物车处理:addgwc4.php
<?php session_start();$code = $_GET["code"];//如果是第一次点击的时候session里面没有值直接将数组的值传过去 if(empty($_SESSION["sg"])) {$attr = array(array($code,1));$_SESSION["sg"] = $attr; } else {//第n次点击 n!=1$attr = $_SESSION["sg"];//将session中的值取出交给数组//但是也分情况,当水果存在或水果不存在//判断水果是否存在,写方法的if(iscunzai($code))//点击同样的 {foreach($attr as $k=>$v){if($v[0]==$code)//判断水果的代号$v[0]是否等于传过去的code {$attr[$k][1] = $v[1]+1;//$v[1]是其数量 } }$_SESSION["sg"] = $attr;}else{$arr = array($code,1);array_push($attr,$arr);$_SESSION["sg"] = $attr;} }function iscunzai($c)//需要的是code的值进行判断 {$attr = $_SESSION["sg"];$b = false;//定义bool型的变量foreach($attr as $v){$b = $b || in_array($c,$v);}return $b; }header("location:showlist4.php");
View Code
运行结果:
二:COOKIE的定义及特点
定义:
“Cookie”是小量信息,由网络服务器发送出来以存储在网络浏览器上,从而下次这位独一无二的访客又回到该网络服务器时,可从该浏览器读回此信息。这是很有用的,让浏览器记住这位访客的特定信息,如上次访问的位置、花费的时间或用户首选项(如样式表)。Cookie 是个存储在浏览器目录的文本文件,当浏览器运行时,存储在 RAM 中。一旦阁下从该网站或网络服务器退出,Cookie 也可存储在计算机的硬驱上。当访客结束其浏览器对话时,即终止的所有 cookie。
特点:
1存储在客户端,
2每个人存一份,
3只能存储字符串,
4默认永不过期的
因此相对于SESSION来说相对安全性要低
用法:不会在当前页面查看数据
<?Php
setcookie("uid","zhangsan");//设置cookie
echo $_COOKIE["uid"];//当前会延迟取值的时间,第一次刷新失败,后几次是好的
?>
代码中实例操作:
<?php//setcookie("uid","zhangsan");//设置cookie //echo $_COOKIE["uid"];//会延迟取值的时间,第一次刷新失败,后几次是好的setcookie("uid","zhangsan");//其他页面可以取到?> <a href="jk1.php">跳转</a>
跳转页面:
<?phpecho $_COOKIE["uid"];//不关浏览器页面时就不会报错,?>
转载于:https://www.cnblogs.com/Duriyya/p/5516783.html
5月21 回话控制SESSION COOKIE相关推荐
- PHP学习之会话控制session、cookie
会话控制是一种面向连接的可靠通信方式,通常根据会话控制记录判断用户登录的行为.比如:网购和处理邮件时,你可能需要访问多个页面,但只要你不退出,在同一个系统上,多个页面之间互相切换时,还能保持用户的登录 ...
- 面试经历---YY欢聚时代(2015年11月21日上午初试、25日下午复试)
YY欢聚时代一年多前去面试过一次,当时鄙视了,在现在的公司呆了1年半了,感觉做得很不爽,而且薪资又不满意,所以想找个新工作,就想去YY面试. 下面将两次YY面试的经历写出来,包括一次初试和一次复试的面 ...
- 分享Silverlight/WPF/Windows Phone一周学习导读(11月21日-11月27日)
分享Silverlight/WPF/Windows Phone一周学习导读(11月21日-11月27日) 本周Silverlight学习资源更新 Silverlight 利用Telerik导出到Wor ...
- 04、JavaWeb-JSP+Session+Cookie
JSP-01 只有Servlet能够跟客户端做响应 当访问jsp时候,可以自动的将jsp转换为servlet,将jsp中的html代码全部拷贝出来,自动生成一个servlet 既然jsp文件和html ...
- “决胜算力时代 ”AI算力高端闭门分享会(7月21日)
2018年07月21日,"决胜算力时代 "AI算力高端闭门分享会将在北京天使汇极客咖啡举办.本次沙龙是由 CSDN 发起,由CTO俱乐部,深脑链.AI科技大本营和区块链大本营协办. ...
- 四、Web服务器——Session Cookie JSP入门 学习笔记
今日内容 1. 会话技术1. Cookie2. Session 2. JSP:入门学习 会话技术 1. 会话:一次会话中包含多次请求和响应.* 一次会话:浏览器第一次给服务器资源发送请求,会话建立,直 ...
- 7月21日王者服务器维修,2020年7月21日王者荣耀世冠杯,GOG2:0EMC,实力碾压运营滴水不漏...
原标题:2020年7月21日王者荣耀世冠杯,GOG2:0EMC,实力碾压运营滴水不漏 7月21日王者荣耀世界冠军杯中的比赛第一场为两支境外的队伍GOG和EMC的比赛,下面就让我们来看一下这场精彩的比赛 ...
- 【历史上的今天】5 月 21 日:Simula 67 发布;微软推出 Xbox One;计算机先驱诞生日
整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来. 今天是 2022 年 5 月 21 日,在 1997 年的今天,国产 VCD 首次占据市场主导地位.VCD 影碟机自 19 ...
- 互联网日报 | 6月28日 星期一 | B站成立哔哩哔哩快乐奖学金;百度成立独立芯片公司昆仑芯;FF将于7月21日纳斯达克上市...
今日看点 ✦ 阿里CCO推出"百分百计划",全面升级淘宝天猫服务体验 ✦ 百度芯片业务成立独立芯片公司,第二代芯片下半年量产 ✦ FF与PSAC合并上市文件生效,将于7月21日纳斯 ...
最新文章
- 在数据科学人才教育中不断前行: 《大数据系统基础A、B》课程实践项目中期答辩顺利举行...
- .NET 将文本转换成语音 (转)
- 《JAVA与模式》之工厂方法模式
- 接连三次霸榜GitHub,这个国产GitHub项目是真的强...
- 如何成为一个Linux内核开发者
- c 语言比较三个字符串,C语言字符篇(三)字符串比较函数
- 60-10-050-命令-kafka-broker-api-versions.sh
- 解决Vscode提示bodyparser已被弃用的问题
- everything 全盘文件查找工具及正则表达式的使用
- java前端传汉字到后端出现乱码解决办法
- Mac读写NTFS移动硬盘
- 这种技术能够替代 Android 原生开发?
- 一年风雨几度寒,一杯浊酒敬虎年
- 源码解析-偏向锁撤销流程解读
- 电影票房预测-kaggle项目Python项目
- 密码学Kerberos协议理解
- gitlab中文网的使用_GitLab使用流程及手册
- 计算机网络——虚拟机网络的三种模式介绍-桥接模式-NAT模式-仅主机模式
- Element表格出现闪动问题
- 请叫我程序员!(一)
热门文章
- SVM中引入拉格朗日对偶理解
- android 存储私有文件,是否可以只在Android应用程序的私有目录中保存图像,而不是设备的内部或任何外部存储?...
- Leetcode--8
- LeetCode —— 71.简化路径(Python3)
- leetcode —— 面试题67. 把字符串转换成整数
- 吴恩达深度学习 —— 2.10 m个样本的梯度下降
- linux命令sort的用法,linux之sort命令的用法
- [gtest][001] A quick introduction to the Google C++ Testing Framework
- 5调色板怎么打开_CAD打开较大的图纸就卡死的解决方法
- g++ linux 编译开栈_使用g++编译器扩大程序可用栈空间