FC2ブログ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

CakePHPで何かを作ろうとする 3日目

昨日の続き。

今日やったことは、

・コントローラーでCookieからデータを読み取り、ユーザーIDがセットされていなかったらログイン画面を表示
$this->Cookie->read() の結果が NULL だったら $this->render("login") するだけ。

・ログイン画面を作成
CakePHPのフォームヘルパーでサクっと作成。
こんな感じ。
<div>
<?php echo $this->Form->create("User",array("url" => "/tokkun_adds/login")); ?>
<?php echo $this->Form->input("userid",array("label" => "ユーザーID")); ?>
<?php echo $form->end("送信"); ?>
</div>
create()の引数を array("action" => "login") とすると /users/login を探してしまうので、url を指定。

・コントローラーのloginアクション作成
usersテーブルを作ってそこにユーザーIDを格納しているので、App::import("Model", "User"); でUserモデルをインポート。
フォームで入力されたuseridが、usersテーブルに存在するかチェック。
存在する場合、CookieにユーザーIDをセットして、indexへリダイレクト。


これだけ。初めてCakePHPのモデルを作ったので3時間ぐらいかかった。
AuthComponent を使って認証しようかとマニュアルを読んでみたが、理解するのに時間がかかりそうなので今日のところは自前でログイン画面を作った。
デバッグをどうしようかと考えたが、デバッグログを出力することにした。これが一番簡単そうなので。
$this->log("出力するメッセージ",LOG_DEBUG) で cakephp\app\tmp\logs\debug.log に出力される。
CakePHPマニュアル(Logging)に書かれていて、実際ちゃんと出力されるのだが、これは古い情報のようだ。
英語版では
$this->log("出力するメッセージ", "debug") か CakeLog::write("debug", "出力するメッセージ") のどちらか
と書かれている。

今日は、PHPでは配列のサイズをcount()で取得することがわかった。実際にプログラミングしてみないとわからないことがたくさんある。
スポンサーサイト

コメント

コメントの投稿

非公開コメント

プロフィール

himax64

Author: 南西
30代後半の無職です。
就活もせずダラダラ生きてます。
作ったもの

最新記事
人気記事
検索フォーム
カテゴリ
月別アーカイブ
最新コメント
最新トラックバック
RSSリンクの表示
QRコード
QRコード
カウンター
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。