session
定义:session存在服务器上用来跟踪和识别用户信息
常用函数:
session_set_cookie_params () 设置会话状态 cookie 参数如时间,域名路径。
session_write_close () 将数据写入文件并且结束session
session_save_path() 读取/设置session的保存路径
session_destroy( ) 销毁一个会话(session)中的全部数据
session_destroy( ) 当使用完一个会话后,首先应该注销所有的变量,然后再调用来清除会话ID
session_set_save_handler ( ) 设置用户自定义会话存储函数
session_id () 获取/设置当前会话(session) ID
使用session步骤
1)开始一个会话
调用session_start()函数即可,函数的具体功能可以查阅PHP的文档。需要注意的是,必须在使用会话的脚本开始部分调用这个函数,如果没有,所有保存在该会话中的信息都无法在脚本中使用。除了手动调用session_start()函数外,也可以自动配置PHP自动调用,可以Google之。
启动session :session_start();
2)注册一个会话变量
从PHP4.1以后,会话变量保存在超级全局数组$_SESSION中。要创建一会话变量,只需要在数组中设置一个元素,如$_SESSION[‘myvar‘] = 5;
session赋值:$_SESSION[‘键名’]=值;
3) 使用一个会话变量
要使用一个会话变量很简单,使用$_SESSION数组访问保存的会话变量即可,如 echo $_SESSION[‘mywar‘]; 会打印出 5。使用会话前必须首先使用session_start()函数启动一个会话。
取值 $_SESSION[‘键名’];
4)注销变量和销毁会话
注销变量直接使用unset即可,如unset($_SESSION[‘myvar‘]),如何要一次销毁所有会话变量,可以使用 unset($_SESSION); 当使用完一个会话后,首先应该注销所有的变量,然后再调用session_destroy() 来清除会话ID。
A、unset():删除session里的某一个值
B 、全部删除session里的值: $_SESSION=array( );
C、彻底销毁session:session_destroy( );
session的工作原理
(1)当一个session第一次被启用时,一个唯一的标识被存储于本地的cookie中。
(2)首先使用session_start()函数,PHP从session仓库中加载已经存储的session变量。
(3)当执行PHP脚本时,通过使用session_register()函数注册session变量。
(4)当PHP脚本执行结束时,未被销毁的session变量会被自动保存在本地一定路径下的session库中,这个路径可以通过php.ini文件中的session.save_path指定,下次浏览网页时可以加载使用。
回调函数的调用时机:
open($save_path,$session_name):在运行session_start()时执行
close():在脚本执行完成或调用session_write_close() 或 session_destroy()时被执行,即在所有session操作完后被执行
read($id):在运行session_start()时执行,因为在session_start时,会去read当前session数据
write($id,$sess_data):此方法在脚本结束和使用session_write_close()强制提交SESSION数据时执行
destroy($id):在运行session_destroy()时执行
gc($maxlifetime):执行概率由session.gc_probability 和 session.gc_divisor的值决定,时机是在open,read之后,session_start会相继执行open,read和gc
session_start():必须在session_set_save_handler后面执行
原文:http://www.cnblogs.com/chengit/p/5061680.html