日本PHPユーザ会 掲示板

日本PHPユーザ会運営の掲示板です。※ただいまテスト運用中です。

日本PHPユーザ会 掲示板 » PHP事はじめ » PEAR::Auth_HTTPで、ログイン画面が表示されない

PEAR::Auth_HTTPで、ログイン画面が表示されない

ページ: 1

投稿者 投稿
会員
登録者: 9 2010
返信数: 7
こんばんは。

いつもお世話になっております。

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"));
}

?>

以上の条件で、実行すると、

ユーザ名:山田祥寛

ログイン画面が表示されず、結果が出力されてしまいます。

ログイン画面が表示されるようにどなたかアドバイス宜しくお願いします。
会員
登録者: 8 2009
返信数: 103
おはようございます。

すでに認証済だったという落ちのような気もするのですが、わかりませんね。

気になる点はPEAR::Auth_HTTPはhttp認証を提供するものなのに
「どうして.htaccessでBASIC認証をしているの?」です。

.htaccessによる認証とPEAR::Auth_HTTPによる認証、2重の認証をしたいということでしょうか?
会員
登録者: 9 2010
返信数: 7
nulla wrote
おはようございます。

すでに認証済だったという落ちのような気もするのですが、わかりませんね。

気になる点はPEAR::Auth_HTTPはhttp認証を提供するものなのに
「どうして.htaccessでBASIC認証をしているの?」です。

.htaccessによる認証とPEAR::Auth_HTTPによる認証、2重の認証をしたいということでしょうか?


おはようございます。

PDTを再起動した所、ログイン画面が表示されるようになりました。
再起動しないと、ログイン後、同じ操作をした場合、ログイン画面は現れないようです。

.htaccessに関しては、あってもなくても同じでした。

無事解決することが出来ました。nulla さんありがとうございました。

ページ: 1

日本PHPユーザ会 掲示板 » PHP事はじめ » PEAR::Auth_HTTPで、ログイン画面が表示されない

日本PHPユーザ会 掲示板 は UseBB 1 フォーラムソフトウェア を使用しています