Php Zend_Auth会话在路由到子域(subdomain.example.com)时不可用

Php Zend_Auth会话在路由到子域(subdomain.example.com)时不可用,php,session,zend-framework,subdomain,Php,Session,Zend Framework,Subdomain,Zend_Auth会话在路由到子域时不可用,但在我注销之前,它在没有子域的其他页面上可用,以下代码是我在ACL中用于路由到子域的代码。以example.com/index登录后,在像subdomain.example.com一样访问时,已登录的用户的会话或身份验证身份无法获得 public function preDispatch(Zend_Controller_Request_Abstract $request) { $module = $request->getModuleName()

Zend_Auth会话在路由到子域时不可用,但在我注销之前,它在没有子域的其他页面上可用,以下代码是我在ACL中用于路由到子域的代码。以example.com/index登录后,在像subdomain.example.com一样访问时,已登录的用户的会话或身份验证身份无法获得

public function preDispatch(Zend_Controller_Request_Abstract $request) {
$module = $request->getModuleName();
$resource = $request->getControllerName();
$action = $request->getActionName();
$params = $request->getParams();

try {
    if (!$this->_acl->isAllowed(Zend_Registry::get('role'), $module . ':' . $resource, $action)) {
        $request->setModuleName('default')
                ->setControllerName('index')
                ->setActionName('login');

    } else {

        $subdomain = getSubDomainUrl();
        $params['username'] = $subdomain;
        //echo 'Role='.Zend_Registry::get('role').', Module='.$module . ', Resource=' . $resource. ', Action='. $action;

        if ($module == 'default' && $resource == 'index' && ($action == 'index'||$action == 'photography' || $action == 'album' || $action == 'photo-details' || $action == 'wedding-portfolio' || $action == 'wedding-album' || $action == 'wedding-photo-details') && isset($params['username'])&& $params['username'] != 'no') {
            $tblUsers = new Application_Model_DbTable_Users();
            $usr = $tblUsers->getUserDetailsByName($params['username']);

            if ($usr['memb_plan_id'] > 3) {
                if ($action == 'wedding-portfolio'||$action == 'index') {
                    $action = 'wedding-portfolio';
                    $params = array('sid' => $usr['id']);
                }
                $request->setModuleName('default')
                        ->setControllerName('index')
                        ->setActionName($action)
                        ->setParams($params);
            } else if ($usr['memb_plan_id'] >= 1 && $usr['memb_plan_id'] <= 3) {
                if ($action == 'index'||$action=='user-profile') {
                    $action = 'user-profile';
                    $params = array('sid' => $usr['id']);
                }
                $request->setModuleName('default')
                        ->setControllerName('index')
                        ->setActionName($action)
                        ->setParams($params);
            } else {
                throw new Zend_Controller_Action_Exception('This page does not exist', 404);
            }
        }

    }
} catch (Zend_Acl_Exception $e) {
    $request->setModuleName('default')
            ->setControllerName('index')
            ->setActionName('login');
}
public function preDispatch(Zend\u Controller\u Request\u Abstract$Request){
$module=$request->getModuleName();
$resource=$request->getControllerName();
$action=$request->getActionName();
$params=$request->getParams();
试一试{
如果(!$this->\u acl->isAllowed(Zend\u Registry::get('role'),$module'.:'。$resource,$action)){
$request->setModuleName('default')
->setControllerName('索引')
->setActionName('login');
}否则{
$subdomain=getSubDomainUrl();
$params['username']=$subdomain;
//echo'Role='。Zend_Registry::get('Role'),'Module='.$Module',Resource='.$Resource',Action='.$Action;
如果($module=='default'&&$resource=='index'&&($action=='index'| |$action=='photography'| |$action=='album'| |$action=='photo details'| |$action=='婚礼相册'| |$action=='婚礼照片细节')&&isset($params['username'])&$params['username']!'no')){
$tblUsers=新应用程序\模型\数据库\用户();
$usr=$tblUsers->getUserDetailsByName($params['username']);
如果($usr['memb_plan_id']>3){
如果($action==‘婚礼组合’| |$action==‘索引’){
$action=‘婚礼组合’;
$params=array('sid'=>$usr['id']);
}
$request->setModuleName('default')
->setControllerName('索引')
->setActionName($action)
->setParams($params);
}如果($usr['memb_plan_id']>=1&&$usr['memb_plan_id']]$usr['id']);
}
$request->setModuleName('default')
->setControllerName('索引')
->setActionName($action)
->setParams($params);
}否则{
抛出新的Zend\u控制器\u操作\u异常('此页面不存在',404);
}
}
}
}捕获(Zend_Acl_异常$e){
$request->setModuleName('default')
->setControllerName('索引')
->setActionName('login');
}

}

为什么要提出新问题?同样,会话通常不在子域中工作。试试这个链接