Dar*_*ius 9 php session zend-framework
这就是我设置会话的方式
$this -> sess = new Zend_Session_Namespace('user');
$this -> sess -> username = "Bob";
$this -> sess -> admin = "1";
Run Code Online (Sandbox Code Playgroud)
这就是我杀了它的方式
setcookie("mycookiename",md5(rand(10,1200)),time() - (60 * 60),"/",".site.com");
$_SESSION = array();
session_destroy();
$this -> _redirect('/');
Run Code Online (Sandbox Code Playgroud)
但它仍然保持$ this-> sess-> admin为'1'...用户名已消失,但管理员保持为一.删除与客户端关联的所有会话的正确方法是什么?
如果我做
$this->sess->admin = 0;
Run Code Online (Sandbox Code Playgroud)
然后它工作,但我怀疑这是我持有的每个会话变量的正确方法.
我也试过了
setcookie("mycookiename",md5(rand(10,1200)),time() - (60 * 60),"/",".site.com");
Zend_Session::namespaceUnset($this->sess);
Run Code Online (Sandbox Code Playgroud)
它没有用,它没有关闭任何会话.
Gor*_*dyD 19
要删除与客户端关联的所有会话,请使用:
\Zend_Session::destroy( true );
Run Code Online (Sandbox Code Playgroud)
这将删除整个会话,并向客户端发送标头请求以删除与会话关联的任何cookie.您也可以将此方法的参数设置为false,以便不删除用户cookie.但请注意:
必须在PHP发送HTTP头之前调用Zend_Session :: destroy(true),否则必须启用输出缓冲.它将破坏与当前会话相关的所有持久数据.但是,PHP中的变量不会受到影响,因此您的命名空间会话(Zend_Session_Namespace的实例)仍然可读.
要删除这些,请使用以下方法:
$ns = 'auth'
$namespace = new \Zend_Session_Namespace( $ns );
$namespace->unsetAll();
Run Code Online (Sandbox Code Playgroud)
Mr *_*der 10
要破坏特定的会话呢
Zend_Session::namespaceUnset('user');
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
14670 次 |
最近记录: |