如何打印当前设置的所有会话变量?

Geo*_*rgy 64 php session

无需按名称调用每个会话变量,有没有办法显示当前设置的所有会话变量的内容?

ale*_*lex 132

echo '<pre>';
var_dump($_SESSION);
echo '</pre>';
Run Code Online (Sandbox Code Playgroud)

或者,print_r如果您不关心类型,则可以使用.如果你使用print_r,你可以使第二个参数,TRUE所以它将返回而不是回声,对...有用

echo '<pre>' . print_r($_SESSION, TRUE) . '</pre>';
Run Code Online (Sandbox Code Playgroud)

  • 标题说"如何打印当前在PHP中设置的所有会话?"; 如果所有OP想要打印当前会话,则问题写错了. (3认同)
  • OP正在询问所有会议. (2认同)

小智 14

<?php
    session_start();
    echo "<h3> PHP List All Session Variables</h3>";
    foreach ($_SESSION as $key=>$val)
    echo $key." ".$val."<br/>";
?>
Run Code Online (Sandbox Code Playgroud)


Art*_*cto 5

不是一个简单的方法,不。

假设“活动”的意思是“尚未超过最大生命周期”并且没有被明确销毁,并且您正在使用默认会话处理程序。

  • 首先,最大生命周期定义为 php.ini 配置,并根据会话中的最后一个活动定义。因此,“到期”机制必须读取会话的内容以确定应用程序定义的到期时间。
  • 其次,您必须手动读取会话目录并读取文件,我什至不知道它们的格式。

如果你真的需要这个,你必须实现某种自定义会话处理程序。见session_set_save_handler

还要考虑到,如果用户只是关闭浏览器或离开您的站点而没有明确退出,您将不会收到任何反馈。根据您认为会话“不活跃”的阈值,您将获得的误报数量可能非常高,这取决于您认为不活动的程度。