最近PHPを勉強している初心者です。
会員制サイトの構築を考えています。
基本的な仕組みは
・会員はHTML上のフォーム入力によりログイン
・PHPから、MySQLに保存された会員データベースを呼び出して認証
・セッションを用いて会員用ページにアクセス
のようにしようと思います。
しかし、この仕組みではページへのアクセス制限しかできません。
具体的には会員用ページにのPDF文書を置きたいのですが、
ログインせずともURL直接アクセスでDLできてしまいます。
DL用ファイルへのアクセスも含めて制限するのであればBasic認証などが考えられます。
ですがユーザーに2度もパスワードを入力させるわけにはいきません。
パスワードの管理も2重になり、煩雑です。
このような場合、どうやってアクセス制限するのが良いのでしょう。
要点は
・DL用ファイルを含むすべての会員用コンテンツにアクセス制限をかける
・認証は1回のみ(できればフォームで)
ということです。
類似の質問には目を通したつもりですが、解決できませんでした。
よろしくお願い致します。
No.1ベストアンサー
- 回答日時:
以下のような方法が良いかと思います。
(1)セッションを調べて認証OKだったら、DL対象のファイルをオープンして、その内容をクライアント(ブラウザ)にレスポンスするPHPプログラムを作成する。
(2)DLリンクは、上記のPHPプログラムに張る。
(3)DL対象のファイルは、Webサーバの公開ディレクトリの外に置く(URL直接アクセスを避けるため)
上記(1)については、以下のページが参考になると思います。
http://www.spencernetwork.org/memo/tips-5.php
このページのサンプルPHPプログラムの頭の方に、セッションによるユーザ認証処理を入れてやればよいと思います。また、mb_http_output('pass'); を指定する必要がある場合もあります。
・.htaccessなどで非公開ディレクトリを設定し、その中にDL対象ファイルを置く。
・対象ファイルはPHPからオープンし、ユーザーに渡す。
ということですね。
これならできそうです。URLも大変参考になりました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL 「掲示板のログイン画面」はPHP~MySQLに「データベース認証のシステム」方式です。 1 2022/09/27 05:00
- PHP PHPのセッション有効期限について 5 2023/06/14 12:40
- その他(ネットショッピング・通販・ECサイト) URLの有効期限について 1 2022/09/10 16:41
- Yahoo!メール YahooIDをパスワード形式にしただけなのに、利用規約違反とされて電話番号が使えなくなりました 1 2023/03/15 20:44
- その他(IT・Webサービス) ホームページにカウント数を表示する 2 2022/10/28 10:37
- その他(暮らし・生活・行事) → ※このメールは、ファミマTカードをファミペイに登録されたことがある会員様にお送りしております。す 4 2023/05/03 12:24
- その他(プログラミング・Web制作) Windowsのマクロプログラムで、こんなことできますか? 3 2022/06/28 14:30
- Yahoo!メール YahooIDをパスワード形式にしただけなのに、利用規約違反とされて電話番号が使えなくなりました 3 2023/03/25 04:08
- PHP php 入力画面から確認表示画面へ情報の受け渡しについて。 1 2023/06/07 18:00
- HTML・CSS 詐欺メールがまた来ました。5月に入ってから頻度が上がってます。なぜでしょうか? 7 2023/05/08 17:04
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
1日1回しかアクセスできないページ
-
月の第一週とは
-
よくある 『 第○(1・2・3・4・...
-
VBAでExcelのヘッダーに文字列+...
-
[Excel] ある日の曜日が当月の"...
-
燃えるゴミの日は何曜日ですか?
-
アンケートなどの1日1回の投...
-
VBA。複数のChangeイベントをま...
-
毎○曜日って、使いますか?
-
シングルサインオンのような仕...
-
FORMのFILEでフォルダ(ディレ...
-
エクセルで毎月第2週日の水曜日...
-
バイナリファイルのアップロード
-
6月の第2 第4火曜日は何日...
-
perlのrequireの動き方について...
-
エクセルで相対パスの書き方を...
-
CGIの中にinclude
-
HTMLでASPを動かしたい
-
Perlでの$ENV{REMOTE_ADD}の信...
-
指定日付から週始と週終を得る...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フォーム要素の文字数制限について
-
無料掲示板で書き込みは特定の...
-
Perlでマックアドレスの取得
-
フォームの文字数制限を解除したい
-
Perlでブラウザのようにクッキ...
-
月の第一週とは
-
よくある 『 第○(1・2・3・4・...
-
エクセルで毎月第2週日の水曜日...
-
毎○曜日って、使いますか?
-
燃えるゴミの日は何曜日ですか?
-
週2回のペースって だいたい何...
-
apacheでPerl CGIが作動せず、5...
-
エクセルで相対パスの書き方を...
-
VBAでExcelのヘッダーに文字列+...
-
土曜日の26時って何曜日の何時...
-
[Excel] ある日の曜日が当月の"...
-
6月の第2 第4火曜日は何日...
-
週休3日制で土日の他にもう一日...
-
VBA。複数のChangeイベントをま...
-
アンケートなどの1日1回の投...
おすすめ情報