首页 > 其他 > 详细

session

时间:2015-12-20 20:45:28      阅读:138      评论:0      收藏:0      [点我收藏+]

 

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

 Aunset():删除session里的某一个值

 B 、全部删除session里的值: $_SESSION=array( ); 

 C、彻底销毁session:session_destroy( );  

 

 

session的工作原理

 

1)当一个session第一次被启用时,一个唯一的标识被存储于本地的cookie中。

2)首先使用session_start()函数,PHPsession仓库中加载已经存储的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,readgc

 

session_start():必须在session_set_save_handler后面执行

session

原文:http://www.cnblogs.com/chengit/p/5061680.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!