Zend framework Zend会话被搞混了
我目前正在为Zend Framework应用程序进行登录,并且使用数据库适配器结合使用Zend_Auth和Zend_会话(如Zend Framework手册中所述) 我为本次会议制作了一个资源:Zend framework Zend会话被搞混了,zend-framework,authentication,session,Zend Framework,Authentication,Session,我目前正在为Zend Framework应用程序进行登录,并且使用数据库适配器结合使用Zend_Auth和Zend_会话(如Zend Framework手册中所述) 我为本次会议制作了一个资源: class DC_Resource_DbSession extends Zend_Application_Resource_ResourceAbstract{ public function init(){ } public function setadapter($value){
class DC_Resource_DbSession extends Zend_Application_Resource_ResourceAbstract{
public function init(){
}
public function setadapter($value){
$this->dbAdapter = $value;
}
public function setSession($adapter){
//put your code here
$config = array(
'name' => 'sessions',
'primary' => 'id',
'modifiedColumn' => 'modified',
'dataColumn' => 'data',
'lifetimeColumn' => 'lifetime',
'db' => $adapter
);
Zend_Session::setSaveHandler(new Zend_Session_SaveHandler_DbTable($config));
Zend_Session::setOptions(array('name'=>'MY_SESSION_NAME'));
Zend_Session::start();
}
}
Zend Auth然后使用会话存储一些基本的身份验证信息
但是,在测试登录时(从同一IP),如果我们办公室中的一个用户登录,而另一个用户访问该站点,则他们将以用户身份登录!!!有谁能帮我弄清楚他们为什么使用彼此的会话吗?DOH!!!!
我谦卑、屈辱的道歉。id列数据类型已由我们的迁移人员设置为INT-显然它需要是VARCHAR。。。。
打自己的脸…你也是在同一个浏览器/计算机上测试的吗?@Vladimir:$auth=Zend_auth::getInstance()$authAdapter=new Zend_Auth_Adapter_DbTable($db)$authAdapter->setTableName(“用户”)->setIdentityColumn(“电子邮件”)->setCredentialColumn($password\u col)$authAdapter->setIdentity($email)$authAdapter->setCredential($pass\u hash)$结果=$auth->authenticate($authAdapter);如果($result->isValid()==true){$data=$authAdapter->getResultRowObject(null,'password');$auth->getStorage()->write($data);@Chris最初是的,但现在在主机(即多个IP、浏览器)上测试时,我还注意到表数据中没有一个包含对浏览器cookie ID的引用