Authentication 誤りの指摘やご意見はこちらへ ご意見板
BBS

PHP Top
項目
認証機能を作る ↑項目に戻る
ユーザ認証機能を作りましょう。
ユーザ名とパスワードを入力しないと表示できないページを作成します。

今回は、PHPLIBというPHPのライブラリを使うことにいたします。

PHPLIBのインストール ↑項目に戻る
PHPLIBを以下よりダウンロードしてください。
PHP Base Library(PHPLIB) - Download
最新版はphplib-7.2c.tar.gzです。
適切なフォルダに移動し、

解凍
tar zxvf phplib-7.2c.tar.gz

ファイルコピー
Webサーバーのルートディレクトリと同じレベルにphpフォルダを作り、
PHPLIB配布ファイル内のディレクトリphpの内容をコピーします。

例:
cp -R php /usr/local/apache/

PHP設定
php.iniファイルを編集し、include_pathが上記のphpディレクトリを指すようにします。
さらに、auto_prepend_fileがprepend.php3を指すようにします。
例:
include_path = /usr/local/apache/php
auto_prepend_file = /usr/local/apache/php/prepend.php3

テストデータ入力
MYSQLのtestデータベースに、PHPLIBテスト用のデータを入力します。

mysql -u mysql test < /usr/local/src/phplib-7.2c/stuff/create_database.mysql

local.inc編集
phpディレクトリ内のlocal.incを編集します。
例:
vi /usr/loca/apache/php/local.inc
例:
class DB_Example extends DB_Sql {
  var $Host = "localhost";
  var $Database = "test";
  var $User = "mysql";
  var $Password = "";
}

テストスクリプトコピー
配布ファイル内のディレクトリpagesをドキュメントディレクトリにコピーします。

例:
cp -R pages /usr/local/apache/htdocs

テスト
ブラウザより/pages/index.php3にアクセスします。
次にshowoff.php3にアクセスします。[名前:kris パスワード:test]

さて、うまくインストールできたでしょうか?

おすすめ設定
ブラウザをリロードしても、画面が更新されない状態になったときは
session.incを変更します。
Last-Modifiedヘッダを送信している部分をコメントアウトしてやるとうまくいきます。(4箇所)


PHPLIBを使用する ↑項目に戻る
アクセス制限
まずはPHPLIBのサンプルクラスを使用します。
アクセス制限をかけたいファイルの一番上に次のように書いてください。

page_open(array("sess" => "Example_Session",
"auth" => "Example_Auth",
"perm"=> "Example_Perm",
"user" => "Example_User"
));
$perm->check("admin");

さらに、一番最後に、次のように書いてください。

page_close();

これで、このファイルにはアクセス制限がかけられました。
PHPLIBの認証機能により、認証されていない場合はログイン画面が、すでに認証済みの場合は
該当するファイルの内容が表示されます。
[名前:kris パスワード:test]
にてログインできます。

ユーザ追加
このファイルを読み込めるユーザを追加しましょう。
testデータベースのauth_userテーブルにユーザデータが入っています。
ここにデータを挿入してください。permはadminで、user_idは任意のもので構いません。
ここで挿入したusernameとpasswordでログインできるようになります。

ログイン画面
test for login というログイン画面ではあまりに寂しいですね。これを書き換えましょう!
PHPLIBのファイルを置いてあるフォルダ(/user/local/apache/php/など)に
loginform.ihtmlというファイルがあります。
これを編集すると、サンプルのログイン画面が変更できます。

PHPLIBのクラスを拡張する ↑項目に戻る
今まではPHPLIBのサンプルクラスを使用していましたが、
次はPHPLIBのクラスを拡張してみましょう。
クラスに関する知識が必要となります。

(!好評執筆中!)

↑項目に戻る

PHP Top