session,中文名称为会话,它是指一类用来在客户端和服务器间保持会话连接状态的解决方案,同时由于其的广泛应用性,PHP作为一种web开发语言,当然也是完全的支持Session机制.
1.什么是session
session,中文名称为会话,它是指一类用来在客户端和服务器间保持会话连接状态的解决方案,同时由于其的广泛应用性,php作为一种web开发语言,当然也是完全的支持session机制.
具体针对web网站来说,session指用户在浏览某个网站时,从进入网站到浏览器关闭所经过的时间,由此可知,session实际上是一个特定的时间概念.
通过使用session,我们就可以在网站的上下文不同页面间传递变量,将session用于用户身份认证,程序状态记录等,最常见的形式就是配合cookie使用,实现保存用户登录状态等功能.
2.php session用法
每一个网站访客都会被分配给一个唯一的标志符,即会话id,它的存放形式无非两种:要么经过url传递,要么保存在客户端的cookies里.当然,你也可以将session保存到数据库里,这样会更安全,但效率方面会有所下降.url方式传递安全性肯定太差,php的会话机制是通过设置cookie,在cookies中保存会话id(session id),在服务器端会生成session文件,与用户进行关联,web应用程序存储与这些session相关的数据,并在各页面间进行传递.
3.php session函数及使用
在php中有关session的函数比较多,不过我们最常用到的也就这么几个函数:
session_start(), session_register(),session_unregister(),
session_is_registered(),session_destroy函数.
session_start():启用session机制,在需要用到session的程序文件的最开始调用它.
session_register():注册session变量
session_unregister(): 删除session变量(一个一个删除)
session_is_registered(): 判断session变量是否注册
session_distroy(): 销毁所有session变量(所有session变量销毁)
需要注意下面几个方面:
1.函数session_start()必须在程序最开始执行,在其前面不能有任何输出内容,否则就会出现“warning:cannot send session cookie - headers already sent"类似这样的警告信息.
2.函数session_register()用于注册要保存在session中的相关变量,其用法如下:
- <?php
- $val = "session value";
- session_register("val");
- ?>
val即为要注册的session变量名,在注册时一定不要加上"$"符号,只写其变量名称即可.
3.函数session_unregister()与上面函数用法完全相同,但功能相反,上面函数是注册session变量,而其则是删除指定的session变量.
4.函数session_is_registered()用于判断session变量是否注册.
5.函数session_destroy()主要用于在系统注销和退出时,销毁所有的session变量,它没有参数,直接调用即可.
下面是一个简单的完整的使用样例程序:
- <?php
- session_start();
- $val = "session value";
- session_register("val");
- if(session_is_registered("val")) {
- session_unregister("val");
- }
- else {
- echo "val变量还未进行注册";
- }
- session_destroy();
- ?>
|