TOP比較データ> Mojaviを利用したサンプル・アプリケーションに機能を追加する




徹底比較!! PHP & Java 〜 フレームワーク編
徹底比較!! PHP & Java 〜 フレームワーク編

第6回:Mojaviで機能を実装してみよう
著者:ワイズノット  土橋 芳孝   2006/1/31
1   2  3  4  次のページ
Mojaviを利用したサンプル・アプリケーションに機能を追加する

   今回は、本連載の「第4回:Mojaviにおける基本中のキホン」でMojaviを利用したサンプル・アプリケーションに機能を追加していきます。

   Mojaviを利用したサンプル・アプリケーションでは、今回の機能追加によって下記のコンポーネントを追加または修正します。
追加修正するコンポーネント
図1:追加修正するコンポーネント

   それでは上記の図1を基にそれぞれのコンポーネントについて解説していきます。


LoginAction.class.phpの修正

   (1)のLoginAction.class.phpは、ログイン画面のログインボタンが押された時に実行されるアクションクラスです。

   本連載の第4回からの変更点としては、認証機能が追加されている点です。本処理のreturn値が"View::SUCCESS"の場合は認証が成功したものと判断してLoginSuccessView.class.phpへ処理を移します。

   一方、return値が"View::ERROR"の場合は認証が失敗したものと判断し、エラーメッセージを準備したうえでLoginErrorView.class.phpに処理を移します。

LoginAction.class.php
<?php class LoginAction extends Action {

   public function execute () {

      // 画面よりログインIDとパスワードを取得する
      $request = $this->getContext()->getRequest();
      $id = $request->getParameter('id');
      $password = $request->getParameter('password');

      // DBより登録者の情報を取得する
      $db = mysql_connect("localhost", "root", "");
      mysql_select_db("test");
      $result = mysql_query(
         "select id, password from users where id = '" . $id . "'");

      // 認証を行う
      $count = mysql_num_rows($result);
      if ($count == 1) {
         $record = mysql_fetch_array($result);

         // ログインIDとパスワードが登録者の情報と一致しなければ認証失敗
         if ($id != $record['id'] || $password != $record['password']) {
            mysql_close($db);
            $message = parse_ini_file(
               MO_WEBAPP_DIR . "/modules/Sample/validate/Login.ini");
            $request->setErrors(array($message["login.error"]));
            return View::ERROR;
         }

      // ログインIDが0件または2件以上の場合は認証失敗
      } else {
         mysql_close($db);
         $message = parse_ini_file(
            MO_WEBAPP_DIR . "/modules/Sample/validate/Login.ini");
         $request->setErrors(array($message["login.error"]));
         return View::ERROR;
      }

      // ログインIDとパスワードが登録者の情報と一致したため認証成功
      mysql_close($db);

      return View::SUCCESS;
   }
}

?>


Login.phpの修正

   (2)のLogin.phpはログイン画面を表示するためのテンプレートです。本連載の第4回からの変更点として、エラーメッセージが格納された変数を参照することで、エラーメッセージを表示できるようにしています。

Login.php
(省略)
   <BODY>

      <!-- エラーメッセージを表示するエリア -->
      <?= $template['error'] ?>


      <CENTER>
(省略)

1   2  3  4  次のページ


ワイズノット
著者プロフィール
株式会社ワイズノット  土橋 芳孝
以前はJavaを利用したWebアプリケーション開発とオブジェクト指向設計を得意としていたが、ワイズノットに入社以来、PHPの魅力にとりつかれる。現在はワイズノットのプロジェクトマネージャーとして、PHPをはじめとしたオープンソースの普及に力を注いでいる。


この記事の評価をお聞かせください
ボタンをクリックしますとウインドウが開きます。

INDEX
第6回:Mojaviで機能を実装してみよう
Mojaviを利用したサンプル・アプリケーションに機能を追加する
  Top.phpの修正
  LoginErrorView.class.phpの追加
  Mojaviを利用したサンプル・アプリケーションの動き
徹底比較!! PHP & Java 〜 フレームワーク編
第1回 Strutsはわかるけど、Mojaviってなんだ?
第2回 StrutsとMojaviのしくみを見てみよう
第3回 Strutsにおける基本中のキホン
第4回 Mojaviにおける基本中のキホン
第5回 Strutsで機能を実装してみよう
第6回 Mojaviで機能を実装してみよう
第7回 StrutsとMojaviの今、そして未来
関連記事 : 徹底比較!!PHP&Java
第1回 企業システムにおいて伸び悩むPHP4
第2回 PHP4とJavaのパフォーマンス比較
第3回 PHP4とJavaのオブジェクト指向
第4回 PHP5の登場、PHP5とJavaのパフォーマンス比較
第5回 PHP5のオブジェクト指向
第6回 企業システムにおけるPHP5の可能性