这是我设置 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。但请注意:



要删除这些,请使用以下方法:
$ns = 'auth'
$namespace = new \Zend_Session_Namespace( $ns );
$namespace->unsetAll();

Please see here for further information

10-08 04:40