第11讲 会话管理-session

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
程 序 设 计 基 础
第11讲 会话管理-Session
程 序 设 计 基 础
本节目标
什么是Session,Session能做什么
启动session、应用session和删除session的方法
运用session技术开发Web网站
程 序 设 计 基 础
cookie和session的作用
见session示例3文件夹的index.php
程 序 设 计 基 础
Session中保存数组
在数据库操作时,可以将数据保存到当前的session中,并以数组的方式 存储,这样可以方便地在程序中调用这些数据. 建立session_page1.php <?php //开始一个session会话 session_start();
程 序 设 计 基 础
Session编码与解码(自学)
session_encode():序列化当前session中的所有数据 session_decode():将被序列化的session数据还原
<?php session_start(); $_SESSION["login_flag"]=true; $_SESSION["name"]="raymond"; $_SESSION["age"]=29; $string=session_encode(); echo $string; session_unset(); session_decode($string); print_r($_SESSION); ?>
见session示例5文件夹的index.php
程 序 设 计 基 础
简单购物车网页
使用session完成简单购物车功能:
程 序 设 计 基 础
小结
Session在网站上的应用与功能: Session是在一个网站上跟踪用户的通用工具 在一个访问周期内,通过Session_ID,能够有效的识别 用户
程 源自文库 设 计 基 础
应用Session
举例: 利用session制作一个简单的计数器:在开始情况下,计数器值 为1,当用户再次浏览该页面时,计数器加1 思路: 1.将计数器的变量储存在session中,初始值为1 2.每刷新一次本页面,session变量值递增1 3.在浏览器上显示用户访问本网页的次数
程 序 设 方法一:使用session_start()函数启动会话 计 格式: 基 session_start() 础
启动Session
方法二:利用php.ini设置文件启动会话 方法:在php.ini里设置参数session.auto_start, 将此参数设为1,当连接到服务器后session的功 能将自动开启
//创建一个数组 $my_array = array('小猫', '小狗', '麻雀', '鹦鹉', '老虎', '袋鼠', '山羊', '猴 子'); //把数组放在session[animals]数组中 $_SESSION['animals'] = $my_array;
//打印信息 echo '将数组放在Session中已经完毕'; ?>
见session示例stu文件夹的index.html
程 序 设 计 基 础
修改Session内容
同修改变量的值. 举例:如果事先已经访问过page1.php,已经运行了 $_SESSION[“name”]=“raymond” 我们就可以对name做一修改: <?php session_start(); $_SESSION[„name‟] = „王江'; echo $_SESSION['name']; ?>
注意:当用户关闭了浏览器,中断连接后,系统会根据php.ini文件中的 session_lifetime参数的设置销毁当前session数据.
程 序 设 计 基 础
改变SessionID过期时间
修改php.ini文件 session.cookie_lifetime=0 (默认值:浏览器关闭后,session立即过期) 如果想在Session结束后保持5分钟,设置该参数为: session.cookie_lifetime=300 注意:需要重新启动Apache服务
程 序 设 计 基 础
Session会话过程
连线
创建一个SessionID
断开
创建另一个SessionID
重新连线
Session就是从用户访问页面开始,到断开与网站的连接为止,形成一个 Session的会话周期.
每一次用户连接时,PHP自动生成一个唯一的SessionID标识当前用户..
SessionID可以保存在客户端或通过URL传送给用户,随着会话结束被 删除.
见session示例1文件夹的index.php 同时打开两个浏览器均运行该程序,查看结果并分析
程 序 设 计 基 础
举例:把上次课任务中提交的内容使用session记录,并 添
加另一php页面,在其中显示session记录的内容。 思路: 1.填写信息。 2.提交表单,并使用session记录表单内容。 3.编写另一php页面,显示session记录。
程 序 设 计 基 础
查看当前SessionID
每个会话都具有唯一的SessionID,用来跟踪来自不同的客户端,它是一个 较长的字符串,通过PHP的一页一页之间的连续传递,使Session得以维持, 查看其值的操作如下: <?php session_start(); echo “您当前的sessionID为:”. session_id(); //通过session_id()函数读取ID值 ?>
程 序 设 计 基 础
也可以使用二维数组的方式读取session数组中的数据
<?php //开始会话 session_start();
// 显示数组一个单元的内容 echo $_SESSION['animals'][3]; ?>
程 序 设 计 基 础
Session安全(自学)
为了防止SessionID被盗用,这个ID每次请求时可以立即销毁,使旧的值失 效,然后重新生成一个新的SessionID. <?php session_start(); if (!empty($_SESSION)) { // 如果SESSION不存在r session_regenerate_id(TRUE); //重建SESSION ID } ?> 当使用IE的”后退”按钮时,这个请求会使用过时的Session_ID,如果别人 仍使用这个Session_ID假冒请求,就会被限制.
程 序 设 计 基 础
作业
完成本节示例 预习P92页 $_COOKIE
程 序 设 计 基 础
Session中保存数组
建立session_page2.php <?php // 开始会话 session_start(); // 遍历这个Session数组 foreach($_SESSION['animals'] as $key=>$value) { //打印数组的键名和值 echo '$_SESSION['."'".$key."'".'] 的值为 '."'".$value."'".' <br />'; } ?> 见session示例4文件夹(分别在同一个会话周 期内执行session_page1.php和 session_page2.php文件)
在有些网站下载东西需要会员先登陆。http协议本身是无 状态的,无法得知顾客是否已经登陆,怎么办呢?cookie 和session就可以知道。 网上购物,购物车怎么知道顾客挑选过哪些商品呢? cookie和session也可以记录。
cookie和session就是能够记录顾客状态的技术。
程 序 设 计 基 础
销毁当前SessionID会话
当用户点击”退出登录”链接或按钮时,应强制销毁session <?php session_start(); session_unset(); //销毁所有的session变量数据 session_destroy(); //销毁当前session ?> 注意:可以将上述程序段放入函数中,便于实现调用
相关文档
最新文档