多个登录表单提交到一个登录操作
我在我的(蛋糕)应用程序中有2个登录表单。一个在主页上(由页面控制器提供),另一个在我的用户控制器中。来自我的用户控制器的工作正常。但是,当我尝试从主页登录时,我得到一个空白页,我看到在萤火虫我有404。奇怪的是,会话设置好。多个登录表单提交到一个登录操作
这看上去好像是有事情做与$这个 - > Auth-> autoRedirect = FALSE(在用户控制器beforeFilter()设置)。可能是什么问题呢?
这是我的登陆行动看起来像:
function login()
{
/* Werkt nog niet vanuit `home login` */
if ($this->Auth->user())
{
if(!empty($this->data))
{
/* Update last login */
$this->User->id = $this->Auth->user('id');
$this->User->saveField('last_login', date('Y-m-d H:i:s'));
}
$this->redirect($this->Auth->redirect());
}
}
乱投医我能想到的后,我最后的希望不使用(默认)页面控制器。所以我所做的就是将它复制到我的应用程序/控制器,并使它看起来像:
<?php
class PagesController extends AppController
{
var $name = 'Pages';
var $uses = array();
var $__allowUnAuthorized = array('*');
var $__allowAuthorized = array();
function beforeFilter()
{
parent::beforeFilter();
$this->Auth->allow($this->__allowUnAuthorized);
}
function display()
{
// Same as default
}
}
我也动了一些东西从我的user_controller我app_controller:
<?php
class AppController extends Controller
{
var $name = 'App';
var $components = array('Auth', 'Security', 'Session');
var $helpers = array('Html', 'Form', 'Session');
function beforeFilter()
{
parent::beforeFilter();
/* Auth */
$this->Auth->autoRedirect = false;
$this->Auth->loginAction = array(
'controller' => 'users',
'action' => 'login'
);
$this->Auth->loginRedirect = array(
'controller' => 'users',
'action' => 'index'
);
$this->Auth->loginError = __(
'Ongeldige conbinatie van gebruikersnaam en wachtwoord', true
);
$this->Auth->authError = __(
'U bent niet bevoegd om deze pagina te bekijken' ,true
);
$this->Session->delete('Auth.redirect');
}
}
?>
而现在一切正常!也许它有一些与页面控制器无法访问$ this-> Session或$ this-> Auth?
嘿,我遇到了和你一样的问题。你有没有发现任何更好的修复? – AlexBrand 2011-04-10 03:41:49
当您设置$this->Auth->autoRedirect = false
你需要在你的login()方法来手动重定向登录尝试后,f.ex. $this->redirect($this->referer());
。我想,你已经有了空白页面,因为没有重定向或错误的重定向。那个空白页的网址是什么?
空白页面的URL /网站/用户/登录,但我的行动里我有类似上面的重定向。 但奇怪的是,我放入login()的所有内容都没有执行(当从用户控制器外部请求时)。即使我把它放在开始...... – tersmitten 2010-07-22 08:31:42
试试你的调试级别设置为3,然后编辑你的问题,包括从输出。 – 2010-07-21 20:11:06
调试已经在3,但没有输出(或错误)。你想看见什么?调试($这个)? – tersmitten 2010-07-21 20:59:58
检查主页登录表单生成的html中的表单动作。 – webbiedave 2010-07-21 21:28:32