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

从PHP中的会话注销的正确方法

隆礼骞
2023-03-14
问题内容

我已经阅读了许多有关注销脚本的php教程,我想知道从会话注销的正确方法是什么!

脚本1

<?php
session_start();
session_destroy();
header("location:index.php");
?>

剧本2

<?php
session_start();
session_unset();
session_destroy();
header("location:index.php");
?>

脚本3

<?php
session_start();
if (isset($_SESSION['username']))
{
    unset($_SESSION['username']);
}
header("location:index.php");
?>

有没有更有效的方法可以做到这一点?始终可以通过重新登录来创建会话,因此我应该为使用session_destroy()而使用unset($ _ SESSION
[‘variable’])代替吗?以上3个脚本中的哪一个更可取?


问题答案:

在PHP手册的session_destroy()页面中:

<?php
// Initialize the session.
// If you are using session_name("something"), don't forget it now!
session_start();

// Unset all of the session variables.
$_SESSION = array();

// If it's desired to kill the session, also delete the session cookie.
// Note: This will destroy the session, and not just the session data!
if (ini_get("session.use_cookies")) {
    $params = session_get_cookie_params();
    setcookie(session_name(), '', time() - 42000,
        $params["path"], $params["domain"],
        $params["secure"], $params["httponly"]
    );
}

// Finally, destroy the session.
session_destroy();
?>


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

  • 问题内容: 从php.net获得它,但是我不确定这是每个人如何破坏所有会话的方式吗? 代码会破坏所有会话吗?这是最常见的方式吗?你们如何破坏php会话? 哦,对了,那是什么?所有会话名称?例如,......? 我不需要再使用了吗? 和之间有什么区别? 问题答案: 首先,您应该知道什么是会话:您可以将会话视为与随机标识符(会话ID)相关联的服务器端数据容器。该会话ID需要由客户端提供,以便服务器可以

  • 问题内容: 我知道这个话题已经讨论 了很多 ,但是我还有一些具体问题仍未得到解答。例如: 所以,我的问题是 做的提供足够的安全性? 可以保存用户的IP和导航器,然后在每次加载页面时进行检查以检测会话劫持吗?这有什么问题吗? 使用正确吗? 使用正确吗? 问题答案: 您的配置很棒。您肯定阅读了如何锁定php会话。但是,此行代码会抵消您的php配置提供的许多保护: 这是一种生成会话ID 的 特别糟糕的

  • 问题内容: 我一直对会话在内部的工作方式感兴趣,但是我对C的知识很少(并且不确定在PHP源代码中的位置)。 这是我目前对会话的了解: 当您启动会话时,将为用户分配一个会话ID,该ID存储在cookie中。 会话数据保存(通过)后,将与相关的会话ID和到期时间一起存储在文件系统中。 它是否正确?另外,创建会话ID的方法是什么?我认为这是基于时间的,但是如果两个用户同时发送请求该怎么办?内部采用什么方

  • 问题内容: 我在iOS应用中使用Firebase身份验证。当用户使用Firebase登录我的应用程序然后注销该用户的所有其他设备(会话)时,Firebase中是否有任何方法?我可以使用Firebase admin SDK来做到这一点吗? 问题答案: 当我遇到此问题时,我已使用云功能解决了该问题,请访问此链接以获取更多详细信息https://firebase.google.com/docs/auth

  • 问题内容: 我们的应用程序在30分钟后注销并重定向到登录页面,我在web.xml中指定会话超时,并使用requestProcessor进行重定向。我想向用户显示一条消息,指出会话过期后会话已过期,如何我可以这样做吗?自动注销?我想在“会话超时,请重新登录”页面上提示错误消息。那我怎么能检测到会话超时呢?有什么方法会自动触发吗? 问题答案: 创建一个活动检查器,该检查器每分钟检查是否发生了任何用户活