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安装全攻略:APACHE
Oct 09 PHP
用ADODB来让PHP操作ACCESS数据库的方法
Dec 31 PHP
php email邮箱正则
Oct 08 PHP
php把数据表导出为Excel表的最简单、最快的方法(不用插件)
May 10 PHP
CodeIgniter读写分离实现方法详解
Jan 20 PHP
php无法连接mysql数据库的正确解决方法
Jul 01 PHP
PHP运行模式汇总
Nov 06 PHP
ThinkPHP使用getlist方法实现数据搜索功能示例
May 08 PHP
Win10 下安装配置IIS + MySQL + nginx + php7.1.7
Aug 04 PHP
php unlink()函数使用教程
Jul 12 PHP
PHP微商城开源代码实例
Mar 27 PHP
php7中停止php-fpm服务的方法详解
May 09 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
linux下删除7天前日志的代码(php+shell)
2011/01/02 PHP
基于PHP实现假装商品限时抢购繁忙的效果
2015/10/16 PHP
PHP 验证身份证是否合法的函数
2017/02/09 PHP
PHP实现自动发送邮件功能代码(qq 邮箱)
2017/08/18 PHP
extjs 学习笔记(三) 最基本的grid
2009/10/15 Javascript
日历查询的算法 如何计算某一天是星期几
2012/12/12 Javascript
javascript中加号(+)操作符的一些神奇作用
2014/06/06 Javascript
点击表单提交时出现jQuery没有权限的解决方法
2014/07/23 Javascript
JavaScript中判断原生函数检查function是否是原生代码
2014/09/09 Javascript
原生js制作日历控件实例分享
2016/04/06 Javascript
JavaScript中数组去除重复的三种方法
2016/04/22 Javascript
深入理解JS addLoadEvent函数
2016/05/20 Javascript
nodeJs内存泄漏问题详解
2016/09/05 NodeJs
微信小程序-图片、录音、音频播放、音乐播放、视频、文件代码实例
2016/11/22 Javascript
简单实现jQuery多选框功能
2017/01/09 Javascript
简单易懂的天气插件(代码分享)
2017/02/04 Javascript
微信小程序中使用Promise进行异步流程处理的实例详解
2017/08/17 Javascript
AnglarJs中的上拉加载实现代码
2018/02/08 Javascript
mpvue性能优化实战技巧(小结)
2019/04/17 Javascript
js getBoundingClientRect使用方法详解
2019/07/17 Javascript
解决vue语法会有延迟加载显现{{xxx}}的问题
2019/11/14 Javascript
JavaScript随机数的组合问题案例分析
2020/05/16 Javascript
vue使用Sass时报错问题的解决方法
2020/10/14 Javascript
详解Vue2的diff算法
2021/01/06 Vue.js
[01:50]2014DOTA2西雅图邀请赛 专访欢乐周宝龙
2014/07/08 DOTA
python连接mongodb操作数据示例(mongodb数据库配置类)
2013/12/31 Python
Python复制Word内容并使用格式设字体与大小实例代码
2018/01/22 Python
Python中return函数返回值实例用法
2020/11/19 Python
单位委托书
2014/10/15 职场文书
2014年居委会工作总结
2014/12/09 职场文书
清洁工个人工作总结
2015/03/05 职场文书
培训班开班主持词
2015/07/02 职场文书
2016保送生自荐信范文
2016/01/29 职场文书
《七律·长征》教学反思
2016/02/16 职场文书
Spring Data JPA框架的核心概念和Repository接口
2022/04/28 Java/Android
Go结合Gin导出Mysql数据到Excel表格
2022/08/05 Golang