您现在的位置: 365建站网 > 365学习 > PHP session变量的创建和销毁

PHP session变量的创建和销毁

文章来源:365jz.com     点击数:148    更新时间:2017-12-23 20:28   参与评论
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()

哪几种情况可以销毁session(一般有3种)

1、超时(一般服务器设置超时时间为30分钟)服务器会销毁session;

2、点击控制台的红色按钮异常关闭服务器要销毁session

3、手动调用session的invalidate方法session.invalidate();

注意如果服务器正常关闭不会销毁
服务器正常关闭不销毁session,()session会存到我们的硬盘中,也就是我们正常的点击stop server()会在tomcat的work的Catalina\localhost\项目名称下面生成一个文件SESSIONS(执行序列化),当服务器再次启动的时候会加载此文件(反序列化),倘若没有实现序列化接口(Serializable)可能会报错因为序列化和反序列化会依据一个id:
private static final long serialVersionUID = 1L;
 

Session和界面没任何关系
是服务器在内存中创建的一种为了保持HTTP状态的值

HTTP 无连接(因为会断开) 无状态
我没法知道你是 用户freewolf

只能靠Session和Cookie
来保存状态~

C 登陆界面
S 验证成功 
S 创建Session
S 返回成功和SessionID
C 拿到SessionID
C 每次操作拿着SessionID
S 我根据SessionID知道你是谁
C 我要退出
S 销毁SessionId

Session超时也会失效 其实 和客户端一点关系都没有~

如对本文有疑问,请提交到交流论坛,广大热心网友会为你解答!! 点击进入论坛


发表评论 (148人查看0条评论)
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码: 点击我更换图片
最新评论
------分隔线----------------------------