当前位置: 首页 > 图文教程 > 网络编程 > PHP > PHP中Session的概念

PHP
mysql 字段类型说明
mysql 搜索之简单应用
mysql 全文搜索 技巧
escape unescape的php下的实现方法
解决php中Cannot send session cache limiter 的问题的方法
php 中的str_replace 函数总结
php下的权限算法的实现
php下实现折线图效果的代码
php中的MVC模式运用技巧
什么是MVC,好东西啊
Windows下IIS6/Apache2.2.4+MySQL5.2+PHP5.2.1安装配置方法
不错的PHP学习之php4与php5之间会穿梭一点点感悟
MySQL授权问题总结
站长助手-网站web在线管理程序 v1.0 下载
MySQL GBK→UTF-8编码转换
中国站长站 For Dede4.0 采集规则
Win2003下IIS+PHP+MySQL+Zend配置步骤详解
Discuz板块横排显示图片的实现方法
测试您的 PHP 水平的题目
PHP5.2下chunk_split()函数整数溢出漏洞 分析

PHP中Session的概念


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 215 ::
收藏到网摘: n/a

什么是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。