帝国软件
  设为首页 加入收藏 关于我们
 
解密帝国网站管理系统
栏 目:
 
您的位置:首页 > 技术文档 > PHP编程
PHP4中的SESSION管理
作者:匿名 发布时间:2002-12-21 来源:Linuxaid
PHP4的新特性中最引人注目就是对SESSION的管理功能.当别人访问你的站点时,你可以把变量保存到SESSION对象中,从而实现许多新的功能.



什么是SESSION



如果你还不太清楚,先我来解释一下什么是SESSION.一个SESSION在别人访问你的网站是开始,在他离开网站是结束.当然你也可以在程序里终止它.基本上,COOKIE与浏览器联系在一起的,一些服务器上的资源用来保存SESSION的变量.默认情况下,PHP4用文件来保存这些变量.当然,从理论上来讲,也可以用数据库或共享的内存来保存.



所有使用PHP4的SESSION特性的网页都必须调用session_start()函数,让PHP4引擎装入与SESSION相关的信息 到内存中.session_start函数会尝试从COOKIE或当前HTTP的请求的参数中寻找SESSION的ID.如果没找到,就会建立一个新的SESSION对象.



什么是SESSION变量



SESSION的变量其实就是一个普通的全局变量.当以SESSION变量的方式注册(声明)时,所有使用PHP4的SESSION功能的网页都可以访问它的值.要把一个变量注册为SESSION变量,只要先给这个变量赋值,然后调用session_register("变量名").在后续的使用SESSION功能(通过session_start)的网页中,"变量名"这个变量在无须重新注册为SESSION变量,它就象一个普通的变量,而它的值就是前面赋给它的.在程序中改变这个变量的值,它会自动重新注册和保存,且在它后续的网页中可以正常使用.



那么,它能做什么呢?



问得好!有很多办法可以使用SESSION管理和SESSION变量.这里,我举一个例子来说明.假如你正在建立一个虚拟社区的站点,你可能要跟踪当前经过论证的用户名以及他有多少新的消息等信息.为了降低数据库的负载,你要用其他办法来保存这些信息.有两种办法:



使用三个COOKIE

authenticatied_user - 当前经过论证的用户名

num_message - 他有多少新的消息

expire_time - COOKIE的过期时限

使用SESSION,注册三个SESSION变量

第一个方法有很大的安全隐患,别人可以伪造COOKIE,然后用另一个帐号去访问系统.再说,所有的信息都通过HEADER()函数实现,比较麻烦.另外,当用户的浏览器拒绝接受其中的一个COOKIE是,整个数据就不完整了.



用SESSION,只要一个COOKIE,就能保存所有的信息.安全性也好一点.



不足之处



使用任何服务器端的脚本语言,SESSION都可以提供一个非常自由,灵活和强大的功能.但在PHP4中的SESSION有一些限制: -不能把对象(Objects)本身保存在SESSION里 -保存在SESSION里的数据的效率不是很高,因为PHP4用文件来保存SESSION的信息.



  
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
 ·Windows 98下安装Apache(PWS) PH  (2005-03-12)
 ·RedHat上安装 apache + gd1.8.3   (2005-03-11)
 ·PHP4.04在英文win2000下的安装  (2005-03-11)
 ·PHP4.03在linux下的安装  (2005-03-11)
 ·PHP4.04在win98下的安装  (2005-03-11)
 ·PHP4.23在WindowsXP下的IIS和Apa  (2005-03-11)
 ·apache2.0.39 php4.2.3在windows  (2005-03-11)
 ·PHP4(windows版本)中的COM函数  (2005-03-11)
 ·让你的PHP4和PHP5共存...  (2005-03-11)
 ·在Windows中安装Apache2和PHP4的  (2005-03-11)

   栏目导行
  PHP编程
  ASP编程
  ASP.NET编程
  JAVA编程
   站点最新
·致合作伙伴的欢迎信
·媒体报道
·帝国软件合作伙伴计划协议
·DiscuzX2.5会员整合通行证发布
·帝国CMS 7.0版本功能建议收集
·帝国网站管理系统2012年授权购买说
·PHPWind8.7会员整合通行证发布
·[官方插件]帝国CMS-访问统计插件
·[官方插件]帝国CMS-sitemap插件
·[官方插件]帝国CMS内容页评论AJAX分
   类别最新
·Windows下集成安装Apache,PHP,MYSQ
·Mysql注入:SQL Injection with MyS
·PHP 的来龙去脉
·PHP 的功能概述
·PHP与其它CGI的比较
·PHP 的编译配置详细选项
·php.ini 配置详细选项
·如何写作PHP程序
·Hello,World
·嵌入方法
 
关于帝国 | 广告服务 | 联系我们 | 程序开发 | 网站地图 | 留言板 帝国网站管理系统