2011-04-06 106 views
0

我在ovh主机上的cakephp中的身份验证组件中遇到问题。Cakephp身份验证组件故障

当我登录时,没有会话变量被设置: 的print_r($ this_session)仅显示:

Array ([Config] => Array ([userAgent] => [time] => 1302122401 [timeout] => 10)) 

这个问题的怪异的一部分,是有时它的工作...我用来连接正确地从我的房子,而不是我的工作。

这是我使用的代码。它非常简单。 一个app_controller:

<?php 
class AppController extends Controller { 
     var $components = array("Session","Auth"); 
     function beforeFilter() { 
       $this->Auth->fields = array('username' => 'name', 'password' => 'password'); 
       $this->Auth->loginAction = array('action' => 'login'); 
     $this->Auth->loginRedirect = array('controller' => 'discs', 'action' => 'hello'); 
     $this->Auth->logoutRedirect = '/'; 
       $this->Auth->loginError = 'Invalid name/password combination. Please try again'; 
     } 
} 

?> 

在user_controller:

function login() { 
      } 

    function logout() { 
    $this->redirect($this->Auth->logout()); 
    } 

我尝试修改会话配置: - 试图PHP或蛋糕管理 - 从低试图安全级别设置为中等 - 试图改变会话cookie名称 - 尝试将checkAgent设置为false。

有什么想法?

+0

尝试从过滤器暂时删除所有内容,然后尝试。如果它有效。 – Headshota 2011-04-06 19:21:01

+0

如果我从父过滤器中删除所有内容,它不会记录我。如果我只是让Auth->字段设置,则行为与以前相同。 – dmn 2011-04-07 11:19:31

回答

0

我不确定,但我猜你的代码已经正确。 我注意到文件名'user_controller'。是user_controller而不是users_controller? cakephp中的命名约定对于我们防止这种错误非常重要。最后,尝试删除$this->Auth->loginAction = array('action' => 'login');