cake phpを勉強 ユーザー認証編1

とりあえず、前回のブログチュートリアルで、
全体の内容がわかってきたので、
次にCakePHPの付録Bの簡易ユーザー認証を勉強。

まずはテーブル 'users'を作成
CREATE TABLE `users` (
  `id` int(11) NOT NULL auto_increment,
  `username` varchar(255) NOT NULL,
  `password` varchar(32) NOT NULL,
  `first_name` varchar(255) NOT NULL,
  `last_name` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
)

をhetemlのphpMyadminより実行。

次にモデルの作成。
<?php
class User extends AppModel
{
    var $name = 'User';
}
?>

このあたりまでは、簡単です。

次に、VIEWの作成。
/app/views/users/login.thtmlに

を記述。

次からが少し勉強しないといけない。
<?php
class UsersController extends AppController
{
    function login()
    {
         $this->set('error'false);//データが送信されていないときはエラー表示なし

        if (!empty($this->data))//送信されたデータが空でなかったら
        {
            //findByフィールド名(検索したい任意のデータ)で一件データを取り出す
                        //マッチするデータがある場合はユーザーデータがはいり、
                        //ない場合は、空。
            $someone = $this->User->findByUsername($this->data['User']['username']);

            //パスワードが空でなく、
            // DB上のユーザーデータのパスワードと送信されたパスワードが同一の場合
            if(!empty($someone['User']['password']) && $someone['User']['password'] == 
$this->data['User']['password'])
            {
                 
                //セッションの作成
                $this->Session->write('User', $someone['User']);
                //セッション作成後、別ページへリダイレクト
                $this->redirect('/clients');
            }
            // パスワードが合致しなかった場合の処理
            else
            {
                //エラーをtrueに設定
                $this->set('error'true);
            }
        }
    }
        //ログアウト時の処理
    function logout()
    {
        //セッション情報の削除
                $this->Session->delete('User');

        //別ページへリダイレクト
        $this->redirect('/');
    }
}
?>


ここで、覚えておくのは、
findByフィールド名(値);
で指定したフィールドから値にマッチしたデータをひとつ取り出します。 モデルの関数>データをとり出すの章を覚えておこう。

$this->Session->write(hoge1,hoge2);
でセッションを保存

$this->Session->delete(hoge1);
でセッションを削除

tag:

date:2008年06月01日 03:53 | COMMENT (0) | TRACKBACK (0)

Trackback

Trackback UR: http://www.phas.jp/mt/mt-tb.cgi/215

Comment

(いままで、ここでコメントしたことがないときは、
コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。
承認されるまではコメントは表示されません。そのときはしばらく待ってください。)