❶ php中session变量的销毁
1.何为session?
相当于一个客户端(可以是浏览器、app、ftp等其他,而且同一个浏览器多开几个又算是不同的客户端)对服务器的一个访问,这个期间服务器为此建立一个唯一的标示(session_id
session_name),其实也就是一个数组Array(),Session的开始和结束并不以业务上的输入用户名密码开始,也不以关闭浏览器和网页刷新而结束
2.session变量的销毁
程序代码
<?php
session_unset();
session_destroy();
?>
session_unset()
释放当前在内存中已经创建的所有$_SESSION变量,但不删除session文件以及不释放对应的session
id
session_destroy()
删除当前用户对应的session文件以及释放session
id,内存中的$_SESSION变量内容依然保留
【注意】:
删除session方法:
1、unset
($_SESSION['xxx'])
删除单个session,unset($_SESSION['xxx'])
用来unregister一个已注册的session变量。其作用和session_unregister()相同。session_unregister()在PHP5中不再使用,可将之打入冷宫。
unset($_SESSION)
此函数千万不可使用,它会将全局变量$_SESSION销毁,而且还没有可行的办法将其恢复。用户也不再可以注册$_session变量。
2、$_SESSION=array()
删除多个session
3、session_destroy()结束当前的会话,并清空会话中的所有资源。。该函数不会unset(释放)和当前session相关的全局变量(globalvariables),也不会删除客户端的session
cookie.PHP默认的session是基于cookie的,如果要删除cookie的话,必须借助setcookie()函数。
返回值:布尔值。
功能说明:这个函数结束当前的session,此函数没有参数,且返回值均为true
session_unset()
如果使用了$_session,则该函数不再起作用。由于PHP5必定要使用$_session,所以此函数可以打入冷宫了。
可以得出删除session的步骤:
①session_start()
②$_SESSION=array()/unset($_session['xxx'])
③session_destroy()
❷ 如何严格设置php中session过期时间
设置php中session过期时间:
只需要进行如下的步骤设置:
1、把“session.use_cookies”设置为1,使用Cookie来储存SessionID,不过默认就是1,一般不用修改;
2、把“session.cookie_lifetime”改为你需要设置的时间(比如一个小时,就可以设置为3600,以秒为单位);
3、把“session.gc_maxlifetime”设置为和“session.cookie_lifetime”一样的时间;
在PHP的文档中明确指出,设定session有效期的参数是session.gc_maxlifetime。可以在php.ini文件中,或者通过ini_set()函数来修改这一参数。问题在于,经过多次测试,修改这个参数基本不起作用,session有效期仍然保持24分钟的默认值。
PHP中的session有效期默认是1440秒(24分钟),也就是说,客户端超过24分钟没有刷新,当前session就会失效。当然如果用户关闭了浏览器,回话也就结束了,Session自然也不存在了。