我在使用 CakePHP Auth 登录时遇到了一些问题。出于某种原因,站点并没有转到我为其设置的路径,而是查看表单并直接进入登录功能。
解释一下,这是我的代码,
路由器文件:
Router::connect('/clientlogin', array('controller' => 'pages', 'action' => 'UsersLogin'));
Router::connect('/login', array('controller' => 'users', 'action' => 'login'));
页面控制器 - 用户登录功能:
public function UsersLogin() {
$this->render('/Pages/LoginForm');
} //End of UsersLogin function
用户控制器 - 登录功能:
public function login() {
if ($this->Auth->login()) {
$this->redirect($this->Auth->redirect());
} else {
$this->Session->setFlash('Invalid Username Or Password, Please Try Again', 'default', array(), 'bad');
$this->redirect($this->Auth->redirect());
}
} //End of Login function
LoginForm.cpt 代码:
echo $this->Session->flash('auth');
echo $this->Form->create('User', array('url'=>'/login', 'id' => 'LoginForm'));
echo $this->Form->input('username');
echo $this->Form->input('password');
echo $this->Form->submit('Login', array('class' => 'Button'));
echo $this->Form->end();
我站点中的主菜单有一个指向“/clientlogin”的“登录”按钮,它会加载表单供我的用户登录。但是,当会话信息过期时,需要登录才能访问它们的站点区域会促使我重新登录。
但是 CakePHP 不会去 /clientlogin 而是去 /login - 这不是表单而是登录控制器。此外,我将其更改为什么并不重要,但无论我指向哪里,我的表格就是蛋糕要去的地方。例如,我将表单更改为指向 /mylogintest 或 /loginuser,Cake 改为指向这些路径。
所以我的主要问题是,当 Cake 需要重新验证会话信息时,我如何确保它指向我的 clientform 路径而不是我的表单中布置的路径。
如果我不清楚,或者我没有发布需要的东西,那么请问我,我会尝试修复它。
非常感谢您提供的任何帮助
格伦。