Home > CakePHP修行を追う > 「CakePHP修行」を追う #6

「CakePHP修行」を追う #6

  • Posted at 2009/04/09 17:33
  • Categories: CakePHP修行を追う
  • Tags:
  • hatena button
  • hatena count

cakephp-wall

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 にアクセス!

login

え〜、当然のことながら、ログインしていないので、/users/loginにリダイレクトされてしまいました。

ここで、e-mailとパスワードを入力すると、

home

と言う感じでログイン成功!!

しかし、こうやってみるとあれだな〜、CakePHPの1.1と1.2でフォームの書き方がだいぶ違ってるな〜。

混同しそうだから気を付けないと(^^;)

ではでは、次回また。

こちらの記事もあわせてどうぞ!

関連書籍

Comments:0

Comment Form
Remember personal info

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

Home > CakePHP修行を追う > 「CakePHP修行」を追う #6

2010年カレンダー















Sponsored Link
今読んでいる本
RSS はてブ人気エントリー
楽天AD
楽ワード
Hatena Bookmark

この日記のはてなブックマーク数

feedburner

あわせて読みたい
Blogpolis
feedmeter

フィードメーター - ElectronicBrain is eating BreakFast

Trackword
Trackfeed

track feed ElectricBrain Standard

Return to page top