- Posted at 2009/04/09 17:33
- Categories: CakePHP修行を追う
IDEA*IDEAさんのところで以前連載していた、「CakePHP修行」を追って、CakePHPの勉強がてら、自分も同じことをやってみよう、というシリーズです。
過去の記事はこちらのカテゴリーでごらんいただけます。
さて、今日は前回の無限リダイレクトの解決ですね(^^;)
こちらの記事です。
まず、本家の記事に以下のようなツッコミが入っています。
リダイレクトでこういうことが起きるときは無限リダイレクトが原因だと相場は決まっています。
なるほど・・・・。いや〜〜、参考になるな〜(^^;)
まず、コントローラーを以下のように変更します。
app/controllers/users_controller.php
class UsersController extends AppController {
function home () {
$this->checkSession();
$this->set('me', $this->User->findById($this->Session->read('my_id')));
}
function login() {
$this->set('error', false);
if (!empty($this->data)){
$someone = $this->User->findByEmail($this->data['User']['email']);
if(!empty($someone['User']['pwd']) && $someone['User']['pwd'] == $this->data['User']['pwd']){
$this->Session->write('my_id', $someone['User']['id']);
$this->redirect('/users/home/');
} else {
$this->set('error', true);
}
}
}
}
これにあわせて、app/app_controller.phpも変更します。
app/app_controller.php
class AppController extends Controller {
function checkSession() {
if (!$this->Session->check('my_id')){
$this->redirect('/users/login');
exit();
}
}
}
なるほど。。。
checkSessionで、my_idというセッションがなかったら、/users/loginにリダイレクトする、と。で、セッションがオッケーであればビューにユーザ情報を渡すのね。
ということで、セッションチェックはhomeというアクションだけになったようですね。
ふむふむ。
で、ついでにhomeビューも追加します。
app/views/users/home.ctp
<?php var_dump ($me); ?>
ちなみに、login.ctpはこちら。
app/views/users/login.ctp
<?php echo $form->create('User',array('action'=>'login','type'=>'post')); ?>
<?php echo $form->input('email'); ?>
<?php echo $form->input('pwd'); ?>
<input type="checkbox" name="save" value="" /> save my info?<br />
<a href="">forgot your password?</a>
<?php echo $form->submit('Let me in!'); ?>
<?php $form->end(); ?>
<?if ($error): ?>
<div id="sys_msg">email and password do not match!</div>
<? endif; ?>
早速、http://localhost/sns/users/home にアクセス!
え〜、当然のことながら、ログインしていないので、/users/loginにリダイレクトされてしまいました。
ここで、e-mailとパスワードを入力すると、
と言う感じでログイン成功!!
しかし、こうやってみるとあれだな〜、CakePHPの1.1と1.2でフォームの書き方がだいぶ違ってるな〜。
混同しそうだから気を付けないと(^^;)
ではでは、次回また。
こちらの記事もあわせてどうぞ!
関連書籍
- Newer: [海水魚] エサ拡散防止リング
- Older: デザイン力をより高める21のフリーフォント
Comments:0
Trackbacks:0
- Trackback URL for this entry
- http://www.multiburst.net/ElectricBrain/2009/04/chase-of-training-the-cakephp-6/trackback
- Listed below are links to weblogs that reference
- 「CakePHP修行」を追う #6 from ElectricBrain Standard






