[[PEAR/Auth]]
 #freeze
 #setlinebreak(on)
 * ログイン画面表示メソッド drawLogin [#l67269c4]
 #htmlinsert(googleAdsense.html)
 
 [[PEAR::Auth:http://pear.php.net/package/Auth]]上でログイン画面を表示するメソッド。
 本来ならばインスタンスを生成するときにログイン画面を表示する関数を指定するのですが、
 関数を使うと何かと面倒です。
 オブジェクト指向的にコーディングするなら、
 関数をを指定するよりも、
 継承を利用した方が便利。
 
 そこでこのdrawLoginメソッドをオーバーライドしたクラスを作成することで、
 自身の思い通りのログイン画面を表示させましょう。
 自身の思い通りのログイン画面を表示させることが出来ます。
 この中でテンプレートエンジンを起動することも容易です。
 クラスを複数作成しておけば、
 ログイン画面が複数あっても対応できます。
 
 
  <?php
  require_once ("Auth/Auth.php");
  class defaultAuth extends Auth
  {
  // drawLoginメソッドをオーバーライド
    function drawLogin( $username )
    {
  // サンプルなのでこんな感じにしてますが、
  // 実際はテンプレートエンジンを起動したりします。
  $self = $_SERVER["PHP_SELF"];
  $loginStr = <<<LOGIN
  <html>
  <body>
  <form method="post" action="$self">
  <input type="text" name="username" value="$username" /><br />
  <input type="password" name="password" /><br />
  <input type="submit" /><br />
  </form>
  </body>
  </html>
  LOGIN;
      echo $loginStr;
    }
  }
  
  $params = array(
   "dsn" => "mysql://dozo:desu@yoroshiku/ne", // PEAR::DB参照
   "table" => "myAuth", // テーブル名
   "usernamecol" => "myUserColumn", // ユーザー名にあたるカラム名
   "passwordcol" => "myPasswordColumn", // パスワードにあたるカラム名
   "cryptType" => "none", // 暗号化(デフォルトはMD5)
  );
  $a = new defaultAuth("DB", $params /* ,  "LoginFuntion" */);// インスタンス生成
  $a->start();// 認証開始
  if (!$a->getAuth()){// 結果を判別
      echo "失敗";
      exit();
  }
  echo "成功";
  session_regenerate_id(); // セッション偽装防止
  ?>
 
 ケータイのUAを取得してそれぞれ別のログイン画面を表示する場合、
 imodeAuth, ezwebAuthなどいくつかつくって、
 UAを判別してから使用するクラスを選択すると良いでしょう。
 


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Third Project
証券会社ランキング比較