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 编写大型网站问题集
May 07 PHP
Php Image Resize图片大小调整的函数代码
Jan 17 PHP
php的chr和ord函数实现字符加减乘除运算实现代码
Dec 05 PHP
将word转化为swf 如同百度文库般阅读实现思路及代码
Aug 09 PHP
php教程之phpize使用方法
Feb 12 PHP
php实现通过cookie换肤的方法
Jul 13 PHP
PHP信号量基本用法实例详解
Feb 12 PHP
Zend Framework教程之模型Model基本规则和使用方法
Mar 04 PHP
删除PHP数组中头部、尾部、任意元素的实现代码
Apr 10 PHP
PHP新特性之字节码缓存和内置服务器
Aug 11 PHP
PHP通过GD库实现验证码功能示例
Feb 23 PHP
php实现的生成排列算法示例
Jul 25 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 Ajax中文乱码问题解决方法
2009/02/27 PHP
一个好用的PHP验证码类实例分享
2013/12/27 PHP
php封装的图片(缩略图)处理类完整实例
2016/10/19 PHP
Yii2实现跨mysql数据库关联查询排序功能代码
2017/02/10 PHP
Thinkphp 3.2框架使用Redis的方法详解
2019/10/24 PHP
游戏人文件夹程序 ver 4.03
2006/07/14 Javascript
通过javascript设置css属性的代码
2009/12/28 Javascript
js实现在文本框光标处添加字符的方法介绍
2012/11/24 Javascript
Ext JS 4实现带week(星期)的日期选择控件(实战一)
2013/08/21 Javascript
node.js中的fs.mkdir方法使用说明
2014/12/17 Javascript
Jquery遍历Json数据的方法
2015/04/20 Javascript
JS实现动态移动层及拖动浮层关闭的方法
2015/04/30 Javascript
原生js实现简单的Ripple按钮实例代码
2017/03/24 Javascript
angular4 如何在全局设置路由跳转动画的方法
2017/08/30 Javascript
微信小程序手机号码验证功能的实例代码
2018/08/28 Javascript
10个最受欢迎的 JavaScript框架(推荐)
2019/04/24 Javascript
ElementUI多个子组件表单的校验管理实现
2019/11/07 Javascript
Python多线程实例教程
2014/09/06 Python
Python中获取对象信息的方法
2015/04/27 Python
Python脚本暴力破解栅栏密码
2015/10/19 Python
pyqt5简介及安装方法介绍
2018/01/31 Python
Python微医挂号网医生数据抓取
2019/01/24 Python
python自动化测试之DDT数据驱动的实现代码
2019/07/23 Python
python画蝴蝶曲线图的实例
2019/11/21 Python
详解python常用命令行选项与环境变量
2020/02/20 Python
python之MSE、MAE、RMSE的使用
2020/02/24 Python
python实现打砖块游戏
2020/02/25 Python
一款纯css3实现简单的checkbox复选框和radio单选框
2014/11/05 HTML / CSS
英国领先品牌手动工具和电动工具供应商:Tooled Up
2018/11/24 全球购物
怎样比较两个类型为String的字符串
2016/08/17 面试题
中海讯通笔试题
2015/09/15 面试题
文职个人求职信范文
2013/09/23 职场文书
2014年中班下学期工作总结
2014/12/11 职场文书
新教师个人总结
2015/02/06 职场文书
python实现图片批量压缩
2021/04/24 Python
Spring整合Mybatis的全过程
2021/06/28 Java/Android