Cakephp で簡単な「ユーザー認証」を行おうとしています。クックブックにあるようにコードを書きましたが、ログイン機能が正しく動作しません。認証を行わず、すべてのユーザーがデータにアクセスまたは編集できるようにし、空のユーザー名とパスワードが提供された場合でもログインできます.Appcontroller.phpに次のコードを書きました.
<?php
class AppController extends Controller {
public $components = array(
'Session',
'Auth' => array(
'loginRedirect' => array('controller' => 'users','action' => 'index'),
'logoutRedirect' => array('controller' => 'users','action' => 'login')
)
);
public function beforeFilter() {
$this->layout = 'admin_layout';
$this->Auth->allow('index','view');
}
ユーザーコントローラー.php
<?php
App::uses('AppController', 'Controller');
App::uses('AuthComponent', 'Controller/Component');
class UsersController extends AppController {
public function login()
{
if($this->request->is('post')) {
if ($this->Auth->login()) {
if($this->Auth->login());
$this->redirect($this->Auth->redirect());
} else {
$this->Session->setFlash(__('Invalid username or password, try again'));
}
}}
public function logout() {
$this->redirect($this->Auth->logout());
}
Login.ctp is as follows
<?php echo $this->Html->css('login');?>
<div class="logincontainer">
<div class="loginform">
<div class="img">
</div>
<?php echo $this->Form->create('User'); ?>
<div id="input">
<div id="username">
<?php // echo $this->Form->input('username');?>
<?php echo $this->Form->input('username',array('class'=>'name','placeholder'=>'username','label'=>false));?>
</div>
<div id="space">
</div>
<div id="password">
<?php // echo $this->Form->input('password');?>
<?php echo $this->Form->input('password',array('class'=>'name','placeholder'=>'password','label'=>false));?>
</div>
<div id="space1"></div>
<?php echo $this->Form->end('Login'); ?>
<div id="forgot">Forgot Password
</div>
</div>
<?php // echo $this->Session->flash();?>
</div>
</div>
誰かが私が間違っている場所を案内してもらえますか..