gpt4 book ai didi

php - 如何正确终止 zend 框架中的 session ?

转载 作者:可可西里 更新时间:2023-10-31 22:53:57 25 4
gpt4 key购买 nike

这是我设置 session 的方式

$this -> sess = new Zend_Session_Namespace('user');
$this -> sess -> username = "Bob";
$this -> sess -> admin = "1";

这就是我杀死它的方式

setcookie("mycookiename",md5(rand(10,1200)),time() - (60 * 60),"/",".site.com");
$_SESSION = array();
session_destroy();
$this -> _redirect('/');

但它仍将 $this->sess->admin 保留为“1”...用户名消失但 admin 保持不变。删除与客户端关联的所有 session 的正确方法是什么?

如果我这样做

$this->sess->admin = 0;

然后它起作用了,但我怀疑这是我持有的每个 session 变量的正确方法。

我也试过

setcookie("mycookiename",md5(rand(10,1200)),time() - (60 * 60),"/",".site.com");
Zend_Session::namespaceUnset($this->sess);

它没有工作,它没有关闭任何 session 。

最佳答案

要删除与客户端关联的所有 session ,请使用:

\Zend_Session::destroy( true );

这将删除整个 session 并向客户端发送 header 请求以删除与该 session 关联的任何 cookie。您也可以将此方法的参数设置为 false 以不删除用户 cookie。但请注意:

Zend_Session::destroy(true) must either be called before PHP has sent HTTP headers, or output buffering must be enabled. It will destory all of the persistent data associated with the current session. However, no variables in PHP are affected, so your namespaced sessions (instances of Zend_Session_Namespace) remain readable.

要删除它们,请使用以下方法:

$ns = 'auth'
$namespace = new \Zend_Session_Namespace( $ns );
$namespace->unsetAll();

Please see here for further information

关于php - 如何正确终止 zend 框架中的 session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10515439/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com