はじめまして。よろしくお願いしますm(_ _)m
ベーシック認証でmysqlと連動した認証を行いたいのですが、方法がわかりません。
調べてみると、モジュール?をインストールするとmysqlなどのデータベースと連動したものが使えるらしいのですが、レンタルサーバー等でもそれは可能なのでしょうか?(一応phpとmysqlが使えるサーバーです)
やりたいのはフリーの掲示板cgiに認証を掛けて登録ユーザーしか観覧、書き込みができないようにしたいです。その際、ユーザーIDやパスワードは個別に設定したいのですが、ベーシック認証でこれは可能でしょうか?
あまりプログラムの知識がないので、漠然としたイメージしか伝えられませんが、何かアドバイスありましたらお助け下さいm(_ _)m
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回までトライ可能。登録ユーザしか見れないプログラム全ての先頭部分に、上記ロジックを入れることを忘れずに。お気に入りされるとダイレクトに見られちゃいますよ。
この回答への補足
ご回答ありがとうございますm(_ _)m
ご提示してくださったスクリプトを試してみましたら、ベーシック認証の画面までは表示することができました。
ただこの場合ですとご説明くださっているように、スクリプトを書いたページのみが認証対象になる為、掲示板プログラムのcgiに直接アクセスされると、認証がパスされてしまいます。
やはりhtaccessでフォルダ単位でアクセス制限をかけるしかないでしょうか?
でもhtaccessのベーシック認証でデータベースと連動しようとすると何やらアパッチのモジュール(mod_auth_mysql?)が必要なようですし、共用のレンタルサーバーである為モジュールのインストールもできそうにありません。
データベースによる認証は諦めて、htpasswdで会員を管理するしか方法はないでしょうか?
何か他に案がありましたらお力添えお願いしますm(_ _)m
No.3
- 回答日時:
Perl-CGIを利用したBasic認証について参考になるURLをお知らせしておきます。
これならご要望にお応えできるかもしれません。私はPerlはあまりさわらないのですが、これは.htaccessと.htpasswd を直接書き換えて出来るようです。
参考URL:http://www.kent-web.com/pwd/pwmgr.html
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
勉強の甲斐あっていよいよPHPフ...
-
My SQL の文字化け
-
CSV出力にHTMLが入ってしまう
-
フォントの色を変えるには?
-
PHPで新しいウインドウで開く命...
-
onedrive にexcelファイルをア...
-
パースエラーとは?
-
ラッパークラスって何ですか?
-
正規表現での最後尾のバックス...
-
ネットワーク初心者です。
-
PHPのif文でその処理を途中で抜...
-
PHPで取得したHTML内のdiv要素...
-
VB.NETのFTPダウンロードについて
-
ImageCreate関数が undefined f...
-
フォームで戻った際に入力済み...
-
トランザクションが原因?DBに...
-
FTPコマンドでディレクトリごと...
-
Web画像コピー不可にする方法
-
「クラス関数」「メンバ関数」...
-
php文字列中のシングルクオート...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エックスサーバーでのmysql設定...
-
XserverでpearのDBでMySQLに接続
-
データベースにアクセスして結...
-
localhostにリダイレクトされて...
-
MySQLとPHPで日本語が文字化け...
-
MySQLから送られて来たデータの...
-
phpから、mysqlログイン時のユ...
-
お名前comのPHPとmysqlの接...
-
lolipopでのmysql接続について
-
XOOPSインストール中に真っ白画...
-
CentOS5.3に、apache2.2.15とph...
-
PHP+MYSQL(MYSQLに接続できない)
-
ubuntuで、PHPからMYSQLが見え...
-
XOOPSのサーバアクセス設定につ...
-
データベースへの持続的接続
-
phpmyadminで文字化け
-
phpMyAdminが使えない
-
JavaからMySQLへの接続
-
XAMPPでSQL文を流すとフリーズ...
-
PHPで作ったログイン機能でデー...
おすすめ情報