Cakephp auth未在生产环境中工作

Cakephp auth未在生产环境中工作,cakephp,authentication,Cakephp,Authentication,伙计们,我把我的网站上传到服务器上,我面临着这个问题 Usercontroller.php <?php class UsersController extends AppController { var $name = 'Users'; var $components = array('Auth', 'Acl'); function beforeFilter(){ //parent::beforeFilter(); $this-

伙计们,我把我的网站上传到服务器上,我面临着这个问题

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('/');
    }
} 

就像Auth根本不起作用一样。在localhost中,一切都很好。此外,用户/索引为空页:)


任何想法都很好。谢谢。

在登录密码的第二行添加$this->request->数据-

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');
        } 
    }
}
保持它的简单性,这将演示如何使用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]'));
        }
}
另外,请确保谁负责用应用程序的salt值散列密码


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

您的cakephp版本?总是试图在你的问题上指出这一点。我使用的CakePhp 2.0可能重复;P、 无论如何,我对sql有很好的要求,但是Auth->login不起作用。你的代码完全乱七八糟。。注册新用户时如何对密码进行哈希运算?为什么在登录操作中使用find条件,而Auth组件可以处理所有这些事情?@user2761717它“不起作用”,因为您手动查找用户,销毁请求数据,然后要求Auth组件使用(销毁的)请求数据登录;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]'));
        }
}