![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
最近PHPを勉強している初心者です。
会員制サイトの構築を考えています。
基本的な仕組みは
・会員はHTML上のフォーム入力によりログイン
・PHPから、MySQLに保存された会員データベースを呼び出して認証
・セッションを用いて会員用ページにアクセス
のようにしようと思います。
しかし、この仕組みではページへのアクセス制限しかできません。
具体的には会員用ページにのPDF文書を置きたいのですが、
ログインせずともURL直接アクセスでDLできてしまいます。
DL用ファイルへのアクセスも含めて制限するのであればBasic認証などが考えられます。
ですがユーザーに2度もパスワードを入力させるわけにはいきません。
パスワードの管理も2重になり、煩雑です。
このような場合、どうやってアクセス制限するのが良いのでしょう。
要点は
・DL用ファイルを含むすべての会員用コンテンツにアクセス制限をかける
・認証は1回のみ(できればフォームで)
ということです。
類似の質問には目を通したつもりですが、解決できませんでした。
よろしくお願い致します。
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_01.png?8acaa2e)
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ランキング
-
JAVASCRIPT禁止でのボタン&リン...
-
至急!PDFがアップ可能なアップ...
-
1日1回しかアクセスできないページ
-
エクセルで 自動的に◯や数字を...
-
ファイルをディレクトリ分配の...
-
月の第一週とは
-
DBを10件毎に表示ページング...
-
apacheでPerl CGIが作動せず、5...
-
曜日を求めるプログラムはどう...
-
C言語でわからないところがが...
-
クライアントのIPとマシン名を...
-
週2回のペースって だいたい何...
-
VBAでExcelのヘッダーに文字列+...
-
HTTPヘッダの大きさ
-
VBA。複数のChangeイベントをま...
-
毎○曜日って、使いますか?
-
HTTP 200 OKの後のリダイレクト?
-
よくある 『 第○(1・2・3・4・...
-
[Excel] ある日の曜日が当月の"...
-
perlでHTTP Request Headersの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
1日1回しかアクセスできないページ
-
フォームの文字数制限を解除したい
-
会員登録のシステムについて
-
無料掲示板で書き込みは特定の...
-
ホームページへのパスワード設...
-
PHP・セッションでのユーザー認...
-
フォーム要素の文字数制限について
-
Perlでブラウザのようにクッキ...
-
ASP+Access(Jet4.0)のユーザ...
-
perl/cgi セッションについて
-
クエリーが含まれるURLを特定の...
-
Perlでマックアドレスの取得
-
シェアウェアの試用制限のかけ方
-
HPのアドレス統一?
-
fc2無料HPのディレクトリアクセ...
-
基本認証でどのようにユーザー...
-
月の第一週とは
-
6月の第2 第4火曜日は何日...
-
よくある 『 第○(1・2・3・4・...
-
DBを10件毎に表示ページング...
おすすめ情報