最近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・2・3・4・...
-
エクセルで毎月第2週日の水曜日...
-
apacheでPerl CGIが作動せず、5...
-
DBを10件毎に表示ページング...
-
[Excel] ある日の曜日が当月の"...
-
週2回のペースって だいたい何...
-
アンケートなどの1日1回の投...
-
CGIで出力するhtmlの<!DOCTYPE ...
-
エクセルで相対パスの書き方を...
-
Excelで第一〇曜日を求める方法...
-
mt-check.cgiでForbiddenエラー...
-
毎週同じ曜日にラブホに行くと...
-
AndroidでのHTMLファイルの読み...
-
perl5について
-
コマンドラインでGET or POSTで...
-
週休3日制で土日の他にもう一日...
-
毎○曜日って、使いますか?
-
ftpでのネットワークバイトオー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PHP・セッションでのユーザー認...
-
フォーム要素の文字数制限について
-
Perlでマックアドレスの取得
-
会員登録のシステムについて
-
fc2無料HPのディレクトリアクセ...
-
ホームページへのパスワード設...
-
フォームの文字数制限を解除したい
-
指定したページからのみ、その...
-
1日1回しかアクセスできないページ
-
Smartyテンプレートの直打ち
-
HPにアクセス制限をかけるために
-
掲示板cgi、同一ホストから...
-
CGIのアクション結果をフレーム...
-
基本認証でどのようにユーザー...
-
無料掲示板で書き込みは特定の...
-
HPのアドレス統一?
-
月の第一週とは
-
よくある 『 第○(1・2・3・4・...
-
エクセルで毎月第2週日の水曜日...
-
apacheでPerl CGIが作動せず、5...
おすすめ情報