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 实例化类的一点摘记
Mar 23 PHP
PHP在字符串中查找指定字符串并删除的代码
Oct 02 PHP
php获取用户IPv4或IPv6地址的代码
Nov 15 PHP
PHP 验证码不显示只有一个小红叉的解决方法
Sep 30 PHP
php获取目录所有文件并将结果保存到数组(实例)
Oct 25 PHP
php中HTTP_REFERER函数用法实例
Nov 21 PHP
Laravel 5 框架入门(三)
Apr 09 PHP
thinkphp微信开之安全模式消息加密解密不成功的解决办法
Dec 02 PHP
PHP7正式版测试,性能惊艳!
Dec 08 PHP
PHP使用redis消息队列发布微博的方法示例
Jun 22 PHP
PHP使用PDO、mysqli扩展实现与数据库交互操作详解
Jul 20 PHP
php判断数组是否为空的实例方法
May 10 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实现的在线人员函数库
2008/04/09 PHP
解决ThinkPHP关闭调试模式时报错的问题汇总
2015/04/22 PHP
yii2.0整合阿里云oss的示例代码
2017/09/19 PHP
Javascript实例教程(19) 使用HoTMetal(6)
2006/12/23 Javascript
JavaScript 通过模式匹配实现重载
2010/08/12 Javascript
读jQuery之五(取DOM元素)
2011/06/20 Javascript
js setTimeout 参数传递使用介绍
2013/08/13 Javascript
JS图片定时翻滚效果实现方法
2016/06/21 Javascript
DOM 事件的深入浅出(二)
2016/12/05 Javascript
JavaScript正则表达式和级联效果
2017/09/14 Javascript
vue实现长图垂直居上 vue实现短图垂直居中
2017/10/18 Javascript
Vue 项目中遇到的跨域问题及解决方法(后台php)
2018/03/28 Javascript
vue移动端路由切换实例分析
2018/05/14 Javascript
快速解决brew安装特定版本flow的问题
2018/05/17 Javascript
Layui给数据表格动态添加一行并跳转到添加行所在页的方法
2018/08/20 Javascript
一篇文章,教你学会Vue CLI 插件开发
2019/04/17 Javascript
JavaScript enum枚举类型定义及使用方法
2020/05/15 Javascript
微信小程序实现多选框功能的实例代码
2020/06/24 Javascript
探索node之事件循环的实现
2020/10/30 Javascript
Python中的闭包实例详解
2014/08/29 Python
Python中使用logging和traceback模块记录日志和跟踪异常
2019/04/09 Python
python虚拟环境完美部署教程
2019/08/06 Python
使用Tkinter制作信息提示框
2020/02/18 Python
python+opencv实现移动侦测(帧差法)
2020/03/20 Python
Python使用requests模块爬取百度翻译
2020/08/25 Python
html5清空画布方法(三种)
2017/10/16 HTML / CSS
继电保护工岗位职责
2014/01/05 职场文书
《匆匆》教学反思
2014/02/22 职场文书
物理教育专业求职信
2014/06/25 职场文书
政工例会汇报材料
2014/08/26 职场文书
家庭财产分割协议范文
2014/11/24 职场文书
客户经理岗位职责
2015/01/31 职场文书
甜美蛋糕店的创业计划书模板,拿来即用!
2019/08/21 职场文书
分析JVM源码之Thread.interrupt系统级别线程打断
2021/06/29 Java/Android
redis的list数据类型相关命令介绍及使用
2022/01/18 Redis
【TED出品】天梯非主流开心游1700 划水骑士
2022/03/31 魔兽争霸