PEARのAuthを使う
Authは認証を行なうためのPEARのライブラリです.
非常に簡単にユーザ認証を実装できます.
ここではMySQLを使ってAuthで認証を行なう方法を紹介します.
まずデータベースを作りましょう.
データベース名:login
テーブル名:auth
CREATE TABLE auth (
username VARCHAR(50) default '' NOT NULL,
password VARCHAR(32) default '' NOT NULL,
PRIMARY KEY (username),
KEY (password)
);
あとは auth.php という名前で以下のソースを動かします.
<html> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"> </head>
<?php
require_once("Auth.php");
// ログインフォーム
function loginFunction()
{
echo "<div id=\"loginform\">";
echo "<form method=\"post\" action=\"auth.php\">";
echo "<h2>ログインフォーム</h2>";
echo "<input type=\"text\" name=\"username\"></br>";
echo "<input type=\"password\" name=\"password\">";
echo "<input type=\"submit\">";
echo "</form>";
echo "</div>";
}
// ユーザ追加のためのフォーム
function adduserForm()
{
echo "<div id=\"adduser\">";
echo "<form method=\"post\" action=\"auth.php?add=1\">";
echo "<h2>ユーザ追加</h2>";
echo "<input type=\"text\" name=\"username\"></br>";
echo "<input type=\"password\" name=\"password\">";
echo "<input type=\"submit\">";
echo "</form>";
echo "</div>";
}
// パラメータの設定
// localhostのデータベース名 login,テーブル名 auth の場合
$params = array(
"dsn" => "mysql://root:@localhost/login",
"usernamecol" => "username",
"passwordcol" => "password",
"table" => "auth",
"cryptType" => "md5"
);
$myauth = new Auth("DB", $params, "loginFunction");
// 認証開始
$myauth->start();
// ユーザ追加のためのフォーム表示
adduserForm();
if (isset($_GET['add'])) {
// ユーザを追加のときは以下のように実行
$myauth->addUser($_POST['username'],$_POST['password']);
}
if (isset($_GET['logout'])) {
// ログアウト処理
$myauth->logout();
echo "ログアウトしました</br>";
}
if ($myauth->getAuth()) {
// ここに認証後のコードを書く
echo "現在ログイン状態です</br>";
echo "<a href=\"auth.php?logout=1\">ログアウト</a>";
}
?>
</html>
実際に動かして動作を確認しましょう.
auth.php にアクセスし,ユーザを追加して,ログインしてみてください.
現在ログイン状態ですと表示されます.


- スポンサードリンク -