PHP中Session的概念


Posted in PHP onOctober 09, 2006

什么是Session呢?Session直接翻译成中文比较困难,一般都译成时域。在计算机专业术语中,Session是指一个终端用户与交互系统进行通信的时间间隔,通常指从注册进入系统到注销退出系统之间所经过的时间。具体到Web中的Session指的就是用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览这个网站所花费的时间。因此从上述的定义中我们可以看到,Session实际上是一个特定的时间概念。
  需要注意的是,一个Session的概念需要包括特定的客户端,特定的服务器端以及不中断的操作时间。A用户和C服务器建立连接时所处的Session同B用户和C服务器中建立连接时所处的Sessions是两个不同的Session。
  那什么是Session的解决方案呢?我们知道,用户访问一个网站时往往需要浏览许多网页。对于一个通过PHP构筑的网站来说,用户在访问的过程中需要执行许多的PHP脚本。然而由于HTTP协议自身的特点,用户每执行一个PHP脚本都需要和Web服务器重新建立连接。又由于无状态记忆的特点,此次连接无法得到上次连接的状态。这样,用户在一个PHP脚本中对一个变量进行了赋值操作,而在另外一个PHP脚本中却无法得到这个变量的值。例如,用户在负责登录的PHP脚本中设置了$user="wind",却无法在另一个PHP脚本中通过调用$user来获得“wind”这个值。也就是说,在PHP中无法设置全局变量。每个PHP脚本中所定义的变量都是只在这个脚本内有效的局部变量。
  Session解决方案,就是要提供在PHP脚本中定义全局变量的方法,使得这个全局变量在同一个Session中对于所有的PHP脚本都有效。上面我们提到了,Session不是一个简单的时间概念,一个Session中还包括了特定的用户和服务器。因此更详细地讲,在一个Session定义的全局变量的作用范围,是指这个Session所对应的用户所访问的所有PHP。
  例如A用户通过Session定义了一个全局变量$user=“wind”中,而B用户通过Session定义的全局变量$user=“jane”。那么在A用户所访问的PHP脚本中,$user的值就是wind。

PHP 相关文章推荐
PHP.MVC的模板标签系统(四)
Sep 05 PHP
PHP 杂谈《重构-改善既有代码的设计》之一 重新组织你的函数
Apr 09 PHP
PHP之生成GIF动画的实现方法
Jun 07 PHP
php源码分析之DZX1.5加密解密函数authcode用法
Jun 17 PHP
PHP记录和读取JSON格式日志文件
Jul 07 PHP
Laravel5权限管理方法详解
Jul 26 PHP
php获取ip及网址的简单方法(必看)
Apr 01 PHP
laravel5实现微信第三方登录功能
Dec 06 PHP
PHP PDOStatement::getColumnMeta讲解
Feb 01 PHP
PHP开启目录引索+fancyindex漂亮目录浏览带搜索功能
Sep 23 PHP
浅谈laravel5.5 belongsToMany自身的正确用法
Oct 17 PHP
虚拟主机中对PHP的特殊设置
Oct 09 #PHP
用Flash图形化数据(二)
Oct 09 #PHP
用php来检测proxy
Oct 09 #PHP
如何将一个表单同时提交到两个地方处理
Oct 09 #PHP
PHP制作图型计数器的例子
Oct 09 #PHP
多php服务器实现多session并发运行
Oct 09 #PHP
提升PHP速度全攻略
Oct 09 #PHP
You might like
PHP怎样调用MSSQL的存储过程
2006/10/09 PHP
Base64在线编码解码实现代码 演示与下载
2011/01/08 PHP
PHP将回调函数作用到给定数组单元的方法
2014/08/19 PHP
php通过前序遍历树实现无需递归的无限极分类
2015/07/10 PHP
php实现微信支付之企业付款
2018/05/30 PHP
PHP pthreads v3下的Volatile简介与使用方法示例
2020/02/21 PHP
游戏人文件夹程序 ver 3.0
2006/07/14 Javascript
Node.js生成HttpStatusCode辅助类发布到npm
2013/04/09 Javascript
javascript内存管理详细解析
2013/11/11 Javascript
鼠标左键单击冲突的问题解决方法(防止冒泡)
2014/05/14 Javascript
从JQuery源码分析JavaScript函数的apply方法与call方法
2014/09/25 Javascript
jQuery多级弹出菜单插件ZoneMenu
2014/12/18 Javascript
JavaScript字符串常用类使用方法汇总
2015/04/14 Javascript
浅谈JavaScript中的作用域和闭包问题
2015/07/07 Javascript
在页面中输出当前客户端时间javascript实例代码
2016/03/02 Javascript
javascript 定时器工作原理分析
2016/12/03 Javascript
JS正则子匹配实例分析
2016/12/22 Javascript
Javascript实现数组中的元素上下移动
2017/04/28 Javascript
推荐VSCode 上特别好用的 Vue 插件之vetur
2017/09/14 Javascript
Node.js+jade抓取博客所有文章生成静态html文件的实例
2017/09/19 Javascript
jquery实现左右轮播图效果
2017/09/28 jQuery
跨域解决之JSONP和CORS的详细介绍
2018/11/21 Javascript
JavaScript数据结构与算法之二叉树实现查找最小值、最大值、给定值算法示例
2019/03/01 Javascript
vue的滚动条插件实现代码
2019/09/07 Javascript
过滤器vue.filters的使用方法实现
2019/09/18 Javascript
vue实现div单选多选功能
2020/07/16 Javascript
Vue2.0 $set()的正确使用详解
2020/07/28 Javascript
在Python中操作字典之clear()方法的使用
2015/05/21 Python
python读写LMDB文件的方法
2018/07/02 Python
python matplotlib实现双Y轴的实例
2019/02/12 Python
python for循环remove同一个list过程解析
2019/08/14 Python
django restframework serializer 增加自定义字段操作
2020/07/15 Python
使用PyCharm官方中文语言包汉化PyCharm
2020/11/18 Python
澳大利亚鞋仓库:Shoe Warehouse
2019/07/25 全球购物
实习班主任自我评价
2015/03/11 职场文书
Flink 侧流输出源码示例解析
2022/09/23 Servers