文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>cookie与session的区别及session_register()注册变量(初级)

cookie与session的区别及session_register()注册变量(初级)

时间:2006-11-03  来源:qintel

cookie与session的区别及session的启动session_register()注册s

1.cookie保存在客户端,而session的内容保存在服务器端,只是把一个session id保存在客户端。打个比方,比如一个我把一些钱存在了银行里(这个银行比较简陋,而且比较愚蠢:-),如果是cookie的话,它会给我一张记录着我的信息(比如名字,借了多少钱等)的纸,我来取钱的时候把这张纸给它它就会给我钱(而我如果改了那张纸上的内容,比如我存了一块钱,而改成存了1000000元,它也会给我──说了它比较愚蠢);而如果是session,它只是给我一张纸,上面告诉我我有一个id,是xxxxx,而我的信息都存在它那里,我去取钱的时候只要告诉它我的id它就会把相应的钱给我。(这时我存了多少钱,在它那里保存着,我自己也就没法改了。)也就是说,session比cookie更安全,同时也可以说明session(大部分时候)是基于cookie的(用cookie来保存session id)。
2.由于session是保存在服务器端的,因些会占用服务器的空间,所以一般在不活动时过一段时间会过期的(22分钟?),而且在浏览器关闭后也会作废,而不像cookie那样可以设定一个比较长的过期时间。
3.每个浏览器在只能保存同一个域名下的至多20个cookie,而且每个cookie的大小不能超过4KB,而session就没有这些限制(因为保存在服务器)
4. 有些人会禁止浏览器接受cookie,而些时session还是可以用的(注意session也可以不通过cookie来实现)
由此可以看出,session和cookie各自有各自的用处,而不是谁能取代谁的。所以很有必要了解一下在php中怎么来使用session.
起动一个session
php通过函数session_start()来启动一个session
使用session变量
php通过函数session_register()来注册session变量,如果之前没有调用过session_start()函数,session_register()会先去调用session_start()。需要注意的是,这个函数注册的是变量本身,而不是变量的值,也就是说,在注册了变量var之后,每当它的值改变时,都会将新的值写入文件,而不用显式地再次调用session_register来记当变更。
如果php的配置没有开启register_globals,则只可以用_SESSION数组来引用session变量,比如var只能这样引用$_SESSION["var"],而如果开启了register_globals选项,则可以直接用$var。
通过函数session_unregister()可以取消session变量,要注意的是,它只是取消了变量在之后文件中的定义,而它可以在当前文件中持续到文件结尾都有效。
session变量也可以是object,不过当使用object类型的session变量时要注意的是,在每次开启session之前,都要包含该对象的定义,不管这个脚本中使用不使用这个对象。
关闭session
php通过函数session_destroy()来关闭一个session,此时这个session必须是已经开启的,可能通过检查PHPSESSID是否已经设定(它会在http request中设定)来确定是否已经启动了session。


相关阅读 更多 +
排行榜 更多 +
僵尸毁灭工程中文联机版

僵尸毁灭工程中文联机版

模拟经营 下载
永恒的荣耀免安装绿色版

永恒的荣耀免安装绿色版

恋爱养成 下载
一回杀免安装绿色中文版

一回杀免安装绿色中文版

角色扮演 下载