Cakephp auth不支持生产

时间:2014-04-07 10:03:47

标签: cakephp authentication

伙计们我在服务器上上传了自己的网站,我遇到了这个问题。

Usercontroller.php

<?php
class UsersController extends AppController {

    var $name = 'Users';
    var $components = array('Auth', 'Acl');


    function beforeFilter(){
        //parent::beforeFilter();
        $this->Auth->loginError = "asdad!";
        $this->Auth->authError = "sdsd !.";
        App::uses('CakeEmail', 'Network/Email');
        $this->Auth->userModel = 'User';
        $this->Auth->allow('login','register','login','step2','TakeId','kontakt');
    }
    function login(){
        if(!empty($this->data)){
            $this->request->data['User']['password'] = AuthComponent::password($this->request->data['User']['password']);
            $sprawdz = $this->User->find('first',array('conditions'=>array('User.username'=>$this->request->data['User']['username'],'User.password'=>$this->request->data['User']['password'])));
            echo debug($sprawdz);
            if(!empty($sprawdz)){
                if($this->Auth->login($this->request->data)){
                    $this->redirect('/');
                    echo debug('you are log in!') ; 
                    } 
            }
            else {
                $this->User->invalidate('username', 'mistake!');
            } 
        }
    }

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

用户/ login.ctp

<?php echo $this->Session->flash('auth'); ?>
<?php echo $this->Form->create('User'); ?>
    <fieldset>
        <?php echo $this->Form->input('username');
              echo $this->Form->input('password'); ?>
    </fieldset>
<?php echo $this->Form->end(__('Log in')); ?>

就像Auth根本不起作用。在localhost很好。另外,用户/索引是空页:)

任何想法都会很棒。感谢。

2 个答案:

答案 0 :(得分:1)

保持简单,follow the tutorial显示如何使用auth组件。

例如,试试这个:

function login(){
     if ($this->request->is('post')) {    
            if ($this->Auth->login()) {
               $this->Session->setFlash('You have successfully logged in the system');
               return $this->redirect('/');
            }
            $this->Session->setFlash(__('Invalid username or password, try again [warning]'));
        }
}

另请确保Security.Salt负责使用应用程序的盐值哈希密码

你没有在usersController中定义任何索引函数,这就是它抛出错误的原因。尝试启用调试模式,以便跟踪错误

答案 1 :(得分:0)

在您登录的第二行添加$ this-&gt; request-&gt;数据 -

function login(){
    if(!empty($this->request->data)){
        $this->request->data['User']['password'] = AuthComponent::password($this->request->data['User']['password']);
        $sprawdz = $this->User->find('first',array('conditions'=>array('User.username'=>$this->request->data['User']['username'],'User.password'=>$this->request->data['User']['password'])));
        echo debug($sprawdz);
        if(!empty($sprawdz)){
            if($this->Auth->login()){
                $this->redirect('/');
                echo debug('you are log in!') ; 
                } 
        }
        else {
           $this->Session->setFlash('Invalid username or password');
        } 
    }
}