PHP程序设计基础(微课版)(第2版)课件 2.PHP SESSION会话_第1页
PHP程序设计基础(微课版)(第2版)课件 2.PHP SESSION会话_第2页
PHP程序设计基础(微课版)(第2版)课件 2.PHP SESSION会话_第3页
PHP程序设计基础(微课版)(第2版)课件 2.PHP SESSION会话_第4页
PHP程序设计基础(微课版)(第2版)课件 2.PHP SESSION会话_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

7.2PHPSession陈学平012Session2.1Session简介Session是什么Session一般译作会话,比方,在web应用的用户看来,他打开浏览器访问一个电子商务站点,登录、并完毕购物直到关闭浏览器,这是一个会话。2.1Session简介Session的原理Session的基本原理是服务端为每个session维护一份会话信息数据,而client和服务端依靠一个全局唯一的标识(也就是sessionid)来访问会话信息数据。用户访问web应用时,服务端程序决定何时创建session。2.1Session简介Sessionid的传递client和服务端之间的通信是通过sessionid建立联系的,那么sessionid是怎样传递的呢?用户端与服务端的web通信协议是http协议。而通过http取得用户数据惯用的三种方法各自是:POST方法、GET方法还有Cookie。而PHP默认传递方法正是Cookie,也是最佳方法。仅仅有在client不支持Cookie的时候(比方:浏览器禁用了Cookie功能)才会通过GET或POST方法来传递sessionid,即通过在URL的query_string部分传递sessionid。不建议使用GET方法传递參数,由于那样容易泄露信息。2.1Session简介2.2php中如何启动Session会话Session的设置与Cookie不同,必须先行启动,在PHP中必须调用session_start()函数,以便让PHP核心程序将和Session相关的内建环境变量预先载入到内存中。使用session_start()函数启动会话,语法格式如下的形式:1session_start(void);//创建Session,开始一个会话,进行Session初始化session_start()这个函数没有参数,且返回值均为TURE。该函数有两个主要的作用,仪式开始一个会话,而是返回已经存在的会话。注意:通常,session_start()函数在页面开始位置调用,然后会话变量被登录到数据$_SESSION。7.2.3php中如何注册和读取Session会话2.1Session简介注册Session会话在php中使用Session变量,除了必须要启动,还要经过一个注册的过程,注册和读取Session变量,都要通过访问$_SESSION数组完成。必须在调用session_start()函数开启Session之后才能使用。与$HTTP_SESSION_VARS不同,$_SESSION总是具有全局的范围,因此不要对$_SESSION使用global关键字。在$_SESSION关联数组中的键名具有和PHP中普通变量名相同的命名规则。会话变量被创建后,全部保存在数组$_SESSION中。通过数组$_SESSION创建一个会话变量很容易,只要直接给该数组添加一个元素就好了。比如如下的实例会启动会话,创建一个Session变量并赋予一个空值,代码是如下的:执行脚本以后,Session变量就会被保存在服务器端的某一个文件夹中。2.1Session简介实例2Session注册会话实例代码如下:上面的实例中Session注册了两个变量,如果在服务器中找到为该用户保存Session变量的文件,打开后可以看到如下的内容:username|s:6:"sky";uid|i:1:"1";//保存用户Session中注册的两个变量的内容2.1Session简介读取Session会话首先需要判断会话变量是否有一个会话ID存在,如果不存在,就创建一个,并且使其能够通过全局数组$_SESSION进行访问;如果已经存在,则将这个已经创建的会话变量载入以提供给用户使用。例如:判断存储用户名的Session会话变量是否为空,如果不为空,则将该会话变量赋予$my_value,其代码显示如下:实例3读取Session会话实例代码如下:下面给出一个完整的实例2.1Session简介实例4session使用完整示例该实例由两个页面构成实例代码如下:session1.php<?phpif(isset($_POST['submit'])){session_start();//开始建立一个会话$_SESSION['season']=$_POST['season'];//存储会话数据header("Location:session2.php");//应特别注意header()里的格式问题2.1Session简介实例4session使用完整示例}?><b>存储会话</b><hr/>选择需要设置的数据:<formname="form1"method="post"action=""id="form1"><selectname="season"id="season_select"><optionvalue="春天">春天</option>2.1Session简介实例4session使用完整示例<optionvalue="夏天">夏天</option><optionvalue="秋天">秋天</option><optionvalue="冬天">冬天</option></select><br/><br/><br/><inputtype="submit"name="submit"value="submit"/></form>2.1Session简介实例4session使用完整示例SESSION2.PHP代码如下session_start();//建立或者继续一个会话$season=$_SESSION['season'];//读取会话数据echo"<b>读取会话</b><br/><br/>";switch($season){case'春天';echo'现在是绿意盎然的春天!';break;case'夏天';<?php2.1Session简介实例4session使用完整示例echo'现在是热情四溢的夏天!';case'秋天';echo'现在是丰收果实的秋天!';break;case'冬天';echo'现在是白雪皑皑的冬天!';break;default;echo'对不起,会话中没有数据或者不存在该对话!';break;2.1Session简介实例4session使用完整示例}?>测试一下效果如图7-1、7-2所示。打开session1.php测试图7-1存储会话提交后结果2.1Session简介实例4session使用完整示例图7-2读取会话7.2.4php中如何删除和销毁Session当使用完一个Session变量后,可以将其删除;当完成一个会话以后,也可以将其销毁。如果用户想退出Web系统,就需要为他提供一个注销的功能,把他的所有信息在服务器中销毁。2.1Session简介实例4session使用完整示例删除会话的主要有删除单个会话、删除多个会话和结束当前会话有3种方式,下面就3种方式分别作一个简单的介绍。2.1Session简介删除单个会话删除单个会话即删除单个会话的变量、同数组的操作一样,直接注销$_SESSION数组的某个元素即可。$_SESSION['user']变量,可以使用unset()函数,代码如下所示:注意:使用unset()函数时,要注意$_SESSION数组中元素不能省略,即不可以一次注销整个数组,这样会禁止整个会话的功能,如unset($_SESSION)函数会将全局变量$_SESSION销毁,而且没有办法将其回复,用户也不能再注册$_SESSION变量。如果要删除多个或者全部会话,可采用下面的两种方法。2.1Session简介删除多个会话如果想把某个用户在Session中注册的所有变量都删除,也就是删除多个会话即一次注销所有的会话变量,可以通过将一个空的数组赋值给$_SESSION来实现,其代码显示如下:2.1Session简介结束当前会话如果整个会话已经结束,首先应该注销所有会话变量,然后使用session_destroy()函数清除结束当前的会话,并清空会话中的所有资源,彻底销毁Session,其代码如下显示:前面的讲解可以总结出Session的删除和注销过程需要好几个步骤。下面将通过一个实例,提供完整的代码,运行该脚本后就可以关闭Se

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论