• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:データベースと連動したベーシック認証)

データベースと連動したベーシック認証

このQ&Aのポイント
  • データベースと連動したベーシック認証の方法を知りたいです
  • レンタルサーバーでもデータベースを使ったベーシック認証は可能でしょうか?
  • フリーの掲示板cgiにベーシック認証を掛けたいですが、個別にユーザーIDやパスワードを設定できますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • TAI_0824
  • ベストアンサー率54% (6/11)
回答No.2

PHPであれば、環境変数とHTTPヘッダーで実現可能です。 if (!$_SERVER['PHP_AUTH_USER'] && !$_SERVER['PHP_AUTH_PW'] ) { header("HTTP/1.0 401 Authorized Request"); header("WWW-authenticate: basic realm=\"Login Ninsho\""); print "Cannot Authrization"; exit; } else { // ここにMySQLのマッチ処理 // $_SERVER['PHP_AUTH_USER']がID、$_SERVER['PHP_AUTH_PW']がパスワード // IDが無かったり、ID・パスが一致しないときは、下記ヘッダを出します。 header("HTTP/1.0 401 Unauthorized"); header("WWW-authenticate: basic realm=\"Login Ninsho\""); print "Cannot Authrization"; exit; } HTTPのBASIC認証ですので3回までトライ可能。登録ユーザしか見れないプログラム全ての先頭部分に、上記ロジックを入れることを忘れずに。お気に入りされるとダイレクトに見られちゃいますよ。

unbabo_001
質問者

補足

ご回答ありがとうございますm(_ _)m ご提示してくださったスクリプトを試してみましたら、ベーシック認証の画面までは表示することができました。 ただこの場合ですとご説明くださっているように、スクリプトを書いたページのみが認証対象になる為、掲示板プログラムのcgiに直接アクセスされると、認証がパスされてしまいます。 やはりhtaccessでフォルダ単位でアクセス制限をかけるしかないでしょうか? でもhtaccessのベーシック認証でデータベースと連動しようとすると何やらアパッチのモジュール(mod_auth_mysql?)が必要なようですし、共用のレンタルサーバーである為モジュールのインストールもできそうにありません。 データベースによる認証は諦めて、htpasswdで会員を管理するしか方法はないでしょうか? 何か他に案がありましたらお力添えお願いしますm(_ _)m

その他の回答 (2)

  • TAI_0824
  • ベストアンサー率54% (6/11)
回答No.3

Perl-CGIを利用したBasic認証について参考になるURLをお知らせしておきます。これならご要望にお応えできるかもしれません。 私はPerlはあまりさわらないのですが、これは.htaccessと.htpasswd を直接書き換えて出来るようです。

参考URL:
http://www.kent-web.com/pwd/pwmgr.html
unbabo_001
質問者

お礼

お礼が遅くなってしまいすみませんm(_ _)m 参考URLありがとうございます。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

データベース認証は、httpデーモンの拡張機能なのでphpはなくてもできます。 apacheもバージョンによって当然モジュールが違うのでバージョンに あわせた設定が必要になります

unbabo_001
質問者

お礼

ご回答ありがとうございます、もう少し調べてみようと思います。

関連するQ&A