查看: 6811|回复: 0
打印 上一主题 下一主题

在php中使用session的详细介绍

[复制链接]
跳转到指定楼层
1#
发表于 2007-9-30 14:35:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
台州网址导航
介绍了在php中怎么使用cookie,而在这一篇中要介绍的是一种用途和cookie差不多的东西,session。它也是用来记录短时间内浏览者的信息的。最先看完了一篇关于session的介绍,感觉它和cookie是一样的,于是就产生了一个疑问,有了cookie为什么还要有session,它们之间肯定有所不同。通过google,终于了解了。下面仔细说说它们的不同之处。
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。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖
台州维博网络(www.tzweb.com)专门运用PHP+MYSQL/ASP.NET+MSSQL技术开发网站门户平台系统等。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

网站推广
关于我们
  • 台州朗动科技(Tzweb.com)拥有多年开发网站平台系统门户手机客户端等业务的成功经验。主要从事:政企网站,系统平台,微信公众号,各类小程序,手机APP客户端,浙里办微应用,浙政钉微应用、主机域名、虚拟空间、后期维护等服务,满足不同企业公司的需求,是台州地区领先的网络技术服务商!

Hi,扫描关注我

Copyright © 2005-2026 站长论坛 All rights reserved

Powered by 站长论坛 with TZWEB Update Techonolgy Support

快速回复 返回顶部 返回列表