我在我的网站上安装了一个预建的论坛,我想(在一个不同的页面中)检查论坛的会话是否有效。
类似的东西:
if (isset($_SESSION['forum'])) { echo "Session is active!"; }
问题是 - 我不知道会话名称...... 尝试下载一些用于会话管理的chrome加载项,但我无法获得会话的名称。
这样做的正确方法是什么?
谢谢你!
答案 0 :(得分:3)
您可以看到$ _SESSION变量的转储
var_dump($_SESSION);
答案 1 :(得分:3)
session_name()
将为您提供会话名称,通常在php.ini中定义。默认情况下,始终为:PHPSESSID
。此名称用作cookie名称或POST / GET变量名称。
session_id()
将为您提供当前会话的标识符。它将是cookie或POST / GET变量的内容。
然后你有$_SESSION
,它将包含你所有的会话数据。到目前为止,使用print_r()
查看您存储的内容。
要知道会话变量是否设置,您也可以if(isset($_SESSION)&&count($_SESSION))
答案 2 :(得分:1)
试
print_r ($_SESSION);
答案 3 :(得分:0)
<?php
session_start();
print_r($_SESSION);
?>
使用它来查看当前设置的会话变量。
答案 4 :(得分:0)
您需要检查会话当前是否处于活动状态,然后确定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
}
另请参阅this page
的答案