我在我的网站上安装了一个预先构建的论坛,我想(在不同的页面中)检查论坛的会话是否处于活动状态。
就像是 :
if (isset($_SESSION['forum'])) { echo "Session is active!"; }
问题是 - 我不知道会话名称...尝试下载一些用于会话管理的 chrome 插件,但我无法获取会话名称。
这样做的正确方法是什么?
提前谢谢!
您可以看到 $_SESSION 变量的转储
var_dump($_SESSION);
session_name()
会给你会话名称,通常在 php.ini 中定义。默认情况下它总是:PHPSESSID
。此名称用作 cookie 名称或 POST/GET 变量名称。
session_id()
将为您提供当前会话的标识符。它将是 cookie 或 POST/GET 变量的内容。
然后,您$_SESSION
将拥有所有会话数据。用于print_r()
查看到目前为止您在其中存储的内容。
要知道是否设置了会话变量,您也可以这样做if(isset($_SESSION)&&count($_SESSION))
尝试
print_r ($_SESSION);
这样你就会看到所有的会话
<?php
session_start();
print_r($_SESSION);
?>
使用它来查看当前设置了哪些会话变量。
您需要检查会话当前是否处于活动状态,然后确定forum
密钥是否已定义
if ( ! ($sid = session_id()) {
session_start(); // open session if not yet opened
$sid = session_id(); // get sid as session ID
}
// $sid contains the session ID (in cookie)
if (isset($_SESSION['forum'])) {
// forum is defined
}
另请参阅此页面的答案