我正在使用cakephp 2.7.8
表名 - 用户
表 中的 字段
ID
名称
电子邮件
密码 我正在尝试登录,如果登录成功,则会重定向到广告页面。 但我现在不知道为什么 表单提交后我的登录信息显示错误 用户名和密码无效。 但我的表包含确切的可用值。 plz帮我找出错误。 控制器文件名 - UsersController.php 模型文件名 - User.php login.ctp Appcontroller.php <?php
class UsersController extends AppController {
public $helpers = array('Form', 'Html');
public $components = array('Flash');
public function beforeFilter()
{
parent::beforeFilter();
$this->Auth->allow('add');
}
public function login() {
if ($this->request->is('post')) {
//print_r($this->request->is('post'));
//exit;
if ($this->Auth->login()) {
return $this->redirect($this->Auth->redirect(array('controller' => 'Users', 'action' => 'add')));
}
$this->Flash->error(__('Invalid username or password, try again'));
}
}
}
?>
<?php
class User extends AppModel {
public $validate = array('lname' => array('rule' => 'notEmpty'));
}
?>
<?php
echo $this->form->create('User', array('action' => 'login'));
echo $this->form->input('email');
echo $this->form->input('password');
echo $this->form->end('login');
?>
<?php
App::uses('Controller', 'Controller');
class AppController extends Controller {
public $components = array(
'Flash',
'Auth' => array(
'loginRedirect' => array(
'controller' => 'Users',
'action' => 'index'
),
'logoutRedirect' => array(
'controller' => 'Users',
'action' => 'display',
'home'
)
)
);
public function beforeFilter() {
$this->Auth->allow('index', 'view','update','delete');
}
}
?>
答案 0 :(得分:0)
没有必要声明此行
mkdir hacker-scripts
cd hacker-scripts
git init .
git config core.sparseCheckout true
echo 'android-material-design-appcompat/' > .git/info/sparse-checkout
git remote add -f origin https://...
git pull origin master
因为您已经在AppController本身中声明了组件数组。 - &GT;&GT;
public $components = array('Flash'); // in UsersController.php
此外,您可以稍微修改此登录部分。
public $components = array(
'Flash',
'Auth' => array(
'loginRedirect' => array(
'controller' => 'Users',
'action' => 'index'
),
'logoutRedirect' => array(
'controller' => 'Users',
'action' => 'display',
'home'
)
)
);
有时会导致会话和重定向Url出现问题。编写注销代码并尝试重新登录。它有时会起作用。
另外,尝试调试并编写:
if ($this->Auth->login()) {
return $this->redirect(array('controller' => 'Users', 'action' => 'index'));
or
return $this->redirect($this->Auth->redirectUrl());
}
如果用户已登录,则会返回已登录用户数据的数组。
和平!的xD