こんばんは。
いつもお世話になっております。
PEAR::Auth_HTTP で、ログイン機能を実現したいと思っております。
まず、http.conf ファイルのAllowOverride関係の設定は、
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride All
<Directory "C:/xampp/xampp/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
.htaccessファイルの記述は、
AuthName PearSamples
AuthType Basic
AuthUserFile "C:\xampp\xampp\htdocs\pear\Auth_HTTP\basic\usr\.htpasswd"
<Limit GET>
require user yyamada
require user nkakeya
</Limit>
.htpasswdファイルをコマンドプロンプトから追加し、その中身は
yyamada:$apr1$DUlErPSr$/o0fWxxV0NZw4Um8RED3G1
phpのコードは、
<?php
require_once("DB.php");
require_once("Auth/HTTP.php");
$dsn = 'mysqli://root:@localhost/pear';
$db = DB::connect($dsn);
if (PEAR::isError($db)) {
die($db->getMessage());
}
$db->query('SET NAMES utf8');
if (PEAR::isError($db)) {
die($db->getMessage());
}
$params=array
(
"dsn"=>$db,
"table"=>"auth",
"usernamecol"=>"username",
"passwordcol"=>"password",
"db_fields"=>"*"
);
$myAuth=new Auth_HTTP("DB",$params);
$myAuth->setRealm("PearSamples");
$myAuth->setCancelText("このページは表示できません。");
$myAuth->start();
if($myAuth->getAuth())
{
print("ユーザ名:".$myAuth->getAuthData("unam"));
}
?>
以上の条件で、実行すると、
ユーザ名:山田祥寛
ログイン画面が表示されず、結果が出力されてしまいます。
ログイン画面が表示されるようにどなたかアドバイス宜しくお願いします。
おはようございます。
すでに認証済だったという落ちのような気もするのですが、わかりませんね。
気になる点はPEAR::Auth_HTTPはhttp認証を提供するものなのに
「どうして.htaccessでBASIC認証をしているの?」です。
.htaccessによる認証とPEAR::Auth_HTTPによる認証、2重の認証をしたいということでしょうか?