当前位置: 首页 > 面试题库 >

这是销毁php中所有会话数据的正确方法吗?

喻渊
2023-03-14
问题内容

从php.net获得它,但是我不确定这是每个人如何破坏所有会话的方式吗?

// Unset all Sessions
$_SESSION = array();

if (isset($_COOKIE[session_name()])) {
    setcookie(session_name(), '', time() -42000, '/');
}

    session_destroy();

代码会破坏所有会话吗?这是最常见的方式吗?你们如何破坏php会话?

哦,对了,那是session_name()什么?所有会话名称?例如$_SESSION['var1']$_SESSION['var2']......?

我不需要再使用unset($_SESSION['var1']);了吗?

session_destroy()和之间有什么区别unset($_SESSION[])


问题答案:

首先,您应该知道什么是会话:您可以将会话视为与随机标识符(会话ID)相关联的服务器端数据容器。该会话ID需要由客户端提供,以便服务器可以将与该会话ID(并因此与该会话)关联的数据加载到$_SESSION变量中。该$_SESSION变量中的所有内容也称为当前活动会话的
会话变量

现在对您的问题:

代码会破坏所有会话吗?这是最常见的方式吗?你们如何破坏php会话?

提供的代码仅删除当前会话的会话数据。该$_SESSION=array();语句将简单地重置会话变量,$_SESSION以便将来对该会话变量的访问$_SESSION将失败。但是会话容器本身尚未删除。可以通过致电来完成session_destroy

哦是的,顺便说一句,session_name()是什么?所有会话名称?例如$ _SESSION [‘var1’],$ _ SESSION
[‘var2’] …?

该会话名称只是用来识别一个Cookie,URL查询或通过POST参数传递会话ID参数。PHP的默认值为PHPSESSID。但是您可以将其更改为所需的任何内容。

我不需要使用unset($ _ SESSION [‘var1’]); 还有吗???

否。首字母$_SESSION = array();删除所有会话数据。

使用session_destroy和unset($ _ SESSION [])有什么区别?

session_destroy将删除整个会话容器,而unset重置$_SESSION变量或仅删除当前运行时的会话数据。



 类似资料:
  • 问题内容: 我正在尝试正确注销管理员用户。这是我的功能: 基本上,一旦我对密码进行了身份验证,就将会话设置为有效(总共只有1个用户)。现在,当管理员点击注销时,我想销毁当前会话,并销毁cookie,以便他们不能只是使用浏览器中存储的会话cookie返回管理页面。但是我的代码不起作用。我点击注销,然后我可以直接导航回到管理页面。但是,如果我删除Cookie,则该功能非常完善。那么这里的cookie删

  • 问题内容: 我已经阅读了许多有关注销脚本的php教程,我想知道从会话注销的正确方法是什么! 脚本1 剧本2 脚本3 有没有更有效的方法可以做到这一点?始终可以通过重新登录来创建会话,因此我应该为使用session_destroy()而使用unset($ _ SESSION [‘variable’])代替吗?以上3个脚本中的哪一个更可取? 问题答案: 在PHP手册的session_destroy()

  • 有没有办法销毁特定类的所有创建的会话范围bean(并在需要时让spring重新创建)? 例如,两个用户访问应用程序,然后每个用户将有一个bean。我想毁掉这两颗豆子。 用例: 管理员正在更新菜单栏。菜单栏列表数据存储在会话范围的bean中。管理员的bean应该被销毁,菜单栏应该被更新。当然,其他人的菜单也应该更新,所以其他bean也应该被销毁。 注1:不同的用户可能会看到不同的菜单,因此bean是

  • 问题内容: 我创建了一个基于会话的简单登录页面。 并添加了一个包含此内容的注销页面 现在,当我关闭浏览器/页面并重新打开它时,会话的值仍然存在。 我想知道如何完全销毁页面/浏览器关闭上的会话。 问题答案: 如果您使用: 关闭浏览器时,您的会话cookie将会被破坏…因此,在关闭浏览器之前,您的会话将是良好的。IE浏览器 您登录并登录,然后关闭浏览器,然后重新打开,再次进入该站点,您将不会登录。

  • 问题内容: 尽管此问题有多个重复项,但我找不到适合我的解决方案。需要一些帮助。 我已在配置文件中使用过。 但这并没有帮助我破坏浏览器关闭时的会话。 应用电流: 1)如果用户有效,则在身份验证页面中,使用生成新的会话标识符 2)控制转到welcome.php,在这里我使用开始新的会话 3)在注销页面中的代码是 问题答案: 最好的方法是关闭会话:如果在特定时间间隔后该会话没有响应。然后关闭。

  • 问题内容: 嘿,我试图让我的php网站在同一用户登录其他地方时基本上“注销”(session_destroy())。有没有办法做到这一点?要远程销毁特定会话? 谢谢大家! 问题答案: 使用当然可以。当用户在其他地方登录时,可以在开始新会话进行新登录之前执行以下步骤: 这将破坏服务器端的旧会话,因此,当另一台计算机再次访问您的应用程序时,它将尝试访问一个不存在的会话,并为其创建一个新的会话(在该用户