«
PHP中的Sessions

时间:2008-5-31    作者:Deri    分类: 分享


   <p>  PHP session变量的作用是:存储用户的session信息,或者改变用户的session设置。Session变量储存了一个单一用户的信息,它可以被所有的页面使用。</p><p>  PHP Session变量</p><p>  当你在自己的计算机上运行一个应用程序时,你打开它,对他做一些改变,然后关闭它,这个过程和session很相似。计算机知道你是谁,知道你什么时候启动了应用程序,什么时候关闭了应用程序。但在互联网上,会出现这样一个问题:因为HTTP地址不可能永久的保留下来,所以服务器很难辨认你是谁,你在干什么。</p><p>  PHP Session允许你在服务器上储存用户信息(如:用户名[username]、购物清单[shopping]等等),从而解决了这个问题。然而,session信息也是临时存在的,当你离开这个网站时,他会被自动删除。如果你想永久保留这些信息,你可以尝试着把它储存在数据库中。</p><p>  Session通过为每个访问者创建一个独立的ID(UID)并储存基于UID的变量来运行。UID既存储在cookie中,又在URL中展现出来。</p><p>  启动PHP Session</p><p>  在你将用户信息存入PHP Session之前,你必须先启动Session。</p><p>  注意:session_start()函数必须写在<html>标签之前:</p><code><?php session_start(); ?><br /><html><br /><body></body><br /></html></code><p>  上述代码将在服务器上注册一个用户的session,允许你储存用户信息,并为用户session指定一个UID。</p><p>  储存一个Session变量</p><p>  储存和获取session变量的最佳方法是使用PHP $_SESSION变量:</p><code><?php<br />session_start();<br />// store session data<br />$_SESSION['views']=1;<br />?><html><br /><body><?php<br />//retrieve session data<br />echo "Pageviews=". $_SESSION['views'];<br />?></body><br /></html></code><p>  结果:</p><p>  Pageviews=1</p><p>  在上述案例中,我们建立了一个简易的页面计数器。Isset()函数检查“views”变量是否已经被设置。如果“views”变量已经被设置了,我们会增加我们的计数。如果“views”变量不存在,我们会先创建一个“views”变量,并把“1”赋给它。</p><code><?php<br />session_start();<br />if(isset($_SESSION['views'])) <br />$_SESSION['views']=$_SESSION['views']+1;<br />else <br />$_SESSION['views']=1;echo "Views=". $_SESSION['views'];<br />?></code><p>  删除Session</p><p>  如果你希望删除一些session数据,你可以使用unset()函数或session_destroy()函数。</p><p>  Unset()函数的作用是释放指定的session变量:</p><code><?phpunset($_SESSION['views']);<br />?></code><p>  你也可以使用session_destroy()函数将session全部删除:</p><code><?php<br />session_destroy();<br />?></code><p>  注意:session_destroy()会重新设置你的session,你会丢失所有已保存的session数据。</p>