Cakephp auth未在生产环境中工作
伙计们,我把我的网站上传到服务器上,我面临着这个问题 Usercontroller.phpCakephp 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-
<?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]'));
}
}