投稿者 メッセージ
<  PHPプログラミング  ~  ディレクトリのアクセス制御
よかろう。
投稿1時間: 金 4月 20, 2007 4:14 pm  引用



登録日: 2007年4月 20日
投稿記事: 1

【環 境】
・PHP version 4.42
・MySQL 5.0.26

【質 問】
例えば、「ID」、「パスワード」、「契約期間」という3つの顧客情報がデータベースにあると仮定してご質問させて下さい。

サーバーには、フォルダを作成し、zipファイルを格納してあります。

URLをクリックして、zipファイルをダウンロードする際、データベースの「契約期間」を参照し、契約期間内であればダウンロード可能、そうでないならばダウンロード不可の処理分岐を行いたいです。

単純に.htaccessではIDとパスワードのチェックしかできませんので、どうしたら良いのか困っております。

どなたか知恵をお貸し下さい。よろしくお願い致します。
トップに移動
ユーザー情報を表示 メッセージを送信
ach
投稿1時間: 日 4月 29, 2007 4:15 am  引用



登録日: 2006年8月 19日
投稿記事: 19

PHPは.htaccessを使わずに単独でHTTP(BASIC)認証ができます.
一からやるとめんどくさいって場合はPEARを使うのもありです.
http://pear.php.net/manual/ja/package.authentication.auth-http.php
この方法でフレキシブルな認証が可能になります.

次にファイルの出力ですが,リダイレクト等を用い直接ファイルにアクセスさしていては,結局匿名でダウンロードできてしまいます.
ですから,認証後すぐに(同じプログラム内で)以下のようにダイレクトにファイルを出力するというのがいい可と思います.
Code:

header('Content-type: application/zip'); //ブラウザにZIPファイルが送信されることを明示
header(sprintf('Content-Disposition: attachment; filename="%s"', $filename)); //ファイルの名前
readfile($real_file_path); //ファイルを標準出力へ出力
トップに移動
ユーザー情報を表示 メッセージを送信
特定期間内の記事を表示:   
All times are GMT +9:00

次のトピックを表示
前のトピックを表示
Page 1 of 1
フォーラム一覧  ~  PHPプログラミング

トピックの新規投稿   返信


 
移動先:  

新規投稿: 不可
返信: 不可t
自分の記事の編集: 不可
自分の記事の削除: 不可
投票への参加: 不可




Powered by phpBB
customized by phpspot.