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を利用したサンプル・アプリケーションの動き