はじめまして。よろしくお願いします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で質問しましょう!
似たような質問が見つかりました
- MySQL 「掲示板のログイン画面」はPHP~MySQLに「データベース認証のシステム」方式です。 1 2022/09/27 05:00
- MySQL mysqlがインストールされているのかどうか 1 2023/06/05 14:19
- MySQL mysqlがインストールされているのかわかりません 1 2023/06/05 02:26
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- MySQL 参考書に従って入力したつもりでしたが、最後はエラーがでました。 1 2022/09/28 03:45
- UNIX・Linux Ubuntu on Xorgのログインについて 2 2023/08/10 15:16
- その他(コンピューター・テクノロジー) 下に書いたの条件でgoogleアカウントの復旧方法等を教えてください。 1 2023/02/06 23:32
- フリーソフト 色々な形式の個人情報を後で参照しやすいようWindow10で管理したいのですが、どんな方法があるの? 1 2023/04/29 16:46
- サーバー Webサイト構築フリーランスの案件受注について 1 2022/03/27 18:16
- その他(メールソフト・メールサービス) Thunderbirdのメール送信ができません 1 2022/10/28 16:54
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エックスサーバーでのmysql設定...
-
フォントの色を変えるには?
-
PHPのif文でその処理を途中で抜...
-
onedrive にexcelファイルをア...
-
.phpと.incファイルの違いはな...
-
CSV出力にHTMLが入ってしまう
-
バッチを用いたフォルダの自動移動
-
PHPでの複数ファイル出力
-
XML-RPCでsend()できない
-
.htaccessにphp_valueが使用できな
-
文字化けについて
-
VBAでJPGサイズ変更
-
別ファイルの変数を呼び出した...
-
「@$変数」の「@の意味は?」
-
Smarty includeでテンプレート...
-
【file_exists】ファイルが存在...
-
ドラッグアンドドロップで画像...
-
phpのソースコードが、そのまま...
-
visualstudioでc#のdllができない
-
フォームで戻った際に入力済み...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PHPのWARNINGをcatchするには
-
お名前comのPHPとmysqlの接...
-
localhostにリダイレクトされて...
-
エックスサーバーでのmysql設定...
-
lolipopでのmysql接続について
-
XOOPSインストール中に真っ白画...
-
データベースと連動したベーシ...
-
レンタルサーバでPHPからMySQL...
-
hpinfoにmysqlやmysqliが表示さ...
-
MySQLから送られて来たデータの...
-
ページ表示について
-
pwebmanagerにアクセスするとFa...
-
XserverでpearのDBでMySQLに接続
-
My SQL の文字化け
-
XOOPSのサーバアクセス設定につ...
-
勉強の甲斐あっていよいよPHPフ...
-
データベースに接続できない・...
-
onedrive にexcelファイルをア...
-
フォントの色を変えるには?
-
index.phpに入るには、どうすれ...
おすすめ情報