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来自动调用不同服务器上的flash
Oct 09 PHP
php通用防注入程序 推荐
Feb 26 PHP
用PHP的超级变量$_GET获取HTML表单(Form) 数据
May 07 PHP
很让人受教的 提高php代码质量36计
Sep 05 PHP
php使用curl和正则表达式抓取网页数据示例
Apr 13 PHP
php中json_encode UTF-8中文乱码的更好解决方法
Sep 28 PHP
PHP5.3安装Zend Guard Loader图文教程
Sep 29 PHP
PHP curl伪造IP地址和header信息代码实例
Apr 27 PHP
微信支付开发交易通知实例
Jul 12 PHP
php观察者模式应用场景实例详解
Feb 03 PHP
Yii Framework框架使用PHPExcel组件的方法示例
Jul 24 PHP
如何用PHP实现多线程编程
May 26 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
destoon文章模块调用企业会员资料的方法
2014/08/22 PHP
PHP使用DirectoryIterator显示下拉文件列表的方法
2015/03/13 PHP
Zend Framework教程之Zend_Config_Ini用法分析
2016/03/23 PHP
PHP正则表达式过滤html标签属性(DEMO)
2016/05/04 PHP
支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
2018/02/23 PHP
PHP addAttribute()函数讲解
2019/02/03 PHP
用jscript启动sqlserver
2007/06/21 Javascript
extjs 学习笔记 四 带分页的grid
2009/10/20 Javascript
jQuery对象和DOM对象的相互转化实现代码
2010/03/02 Javascript
面向对象Javascript核心支持代码分享
2012/05/23 Javascript
通过$(this)使用jQuery包装后的方法或属性
2014/05/18 Javascript
浅谈javascript中call()、apply()、bind()的用法
2015/04/20 Javascript
JavaScript实现网站访问次数统计代码
2015/08/12 Javascript
jQuery中使用animate自定义动画的方法
2016/05/29 Javascript
Angular在一个页面中使用两个ng-app的方法(二)
2017/02/20 Javascript
JSONP跨域请求
2017/03/02 Javascript
Python中使用Beautiful Soup库的超详细教程
2015/04/30 Python
详解Python中的日志模块logging
2015/06/19 Python
Python中http请求方法库汇总
2016/01/06 Python
python 链接和操作 memcache方法
2017/03/04 Python
Python生成随机密码的方法
2017/06/16 Python
python并发编程之线程实例解析
2017/12/27 Python
python操作excel的方法(xlsxwriter包的使用)
2018/06/11 Python
Python实现的字典排序操作示例【按键名key与键值value排序】
2018/12/21 Python
对python列表里的字典元素去重方法详解
2019/01/21 Python
啥是佩奇?使用Python自动绘画小猪佩奇的代码实例
2019/02/20 Python
详解Python_shutil模块
2019/03/15 Python
Python各种扩展名区别点整理
2020/02/27 Python
Python接口测试文件上传实例解析
2020/05/22 Python
python实现mean-shift聚类算法
2020/06/10 Python
Pytorch 使用CNN图像分类的实现
2020/06/16 Python
python 用opencv实现霍夫线变换
2020/11/27 Python
业务总经理岗位职责
2014/02/03 职场文书
变长双向rnn的正确使用姿势教学
2021/05/31 Python
java设计模式--原型模式详解
2021/07/21 Java/Android
最新最全的手机号验证正则表达式
2022/02/24 Javascript