• 締切済み

PHPでBasic認証付HPからファイルをダウンロード

Basic認証のあるHPからZIPなどのファイルをダウンロードしたいのですがいろいろと調べても分かりませんでした。どなたか教えていただきたいです。 やりたいことはPHPでユーザー管理し特定のユーザーにのみファイルをダウンロードさせたいのです。 よろしくお願いします

  • rijp
  • お礼率40% (12/30)
  • PHP
  • 回答数2
  • ありがとう数0

みんなの回答

noname#30334
noname#30334
回答No.2

Basic認証ダイアログで入力されたuser/passwdは、 下記の定義済み変数で取得出来ます。 ・$_SERVER["PHP_AUTH_USER"] ・$_SERVER["PHP_AUTH_PW"] これをユーザーマスタの類と照合すれば、実現できませんか?

  • labilion
  • ベストアンサー率38% (43/111)
回答No.1

zipファイルが入ったディレクトリの.htaccessにAuthGroupFileを設定して、 require groupを宣言すれば、特定のユーザのみアクセス出来るようになると思います。

参考URL:
http://mikeneko.creator.club.ne.jp/~lab/web/htaccess/auth.html
rijp
質問者

補足

説明が悪くって申し訳ありません。どっちかというとダウンロード販売サービスのようなことを行いたいのです。

関連するQ&A

  • PHPで自動的にzipファイルをダウンロードする。

    質問させてもらいます。 現在外部ドメインに用意されているzipファイルを手動でダウンロードして、FTPで特定フォルダにアップしてから、PHPで処理を行っているのですが、 外部ドメインのzipファイルを、PHPでダウンロード(コピー)する事は不可能なのでしょうか? ちなみに、色々検索をしてみたのですが、見当たりません・・・。 また、copy()関数でzipファイルをコピーしてみたのですが、ファイルが壊れていて解凍できませんでした。 他に方法があれば、試してみたいので、宜しくお願いします。

    • ベストアンサー
    • PHP
  • phpでzipファイルダウンロード後の削除について

    phpでzipファイルダウンロード後の削除について phpにおいて、ボタンをクリックしたときに、サーバ内の ディレクトリの中身をzip圧縮してダウンロードを行う処理を 作成し、ダウンロード後はサーバ内のzipファイルを 削除したいと考え、下記のような流れでプログラムを作成しました。 //1.zipファイルの作成 shell_exec("zip -r file.zip targetdir"); //2.HTMLヘッダ Content-type ・・・ //3.readfileでファイル読み込み readfile(file.zip); //4.ファイル削除 shell_exec("rm -f file.zip"); 3.までは上手く動作して、意図したzipファイルを ダウンロードできるのですが、 4.の動作が、3.でのダウンロードダイアログで ・「保存」してダウンロードすると動作して削除する。 ・「キャンセル」してダウンロードせずダイアログを 閉じると削除されずサーバに残ってしまう。 となってしまいます。 ちなみに一旦「保存」を選択して、ダウンロード途中に 「キャンセル」を選択して中断しても削除されませんでした。 ダウンロードダイアログでの操作に関わらず作成した zipファイルを削除したいのですが、どのようにすればいいか わかりません。 shell_exec関数をunlinkなどに変えて見ても結果は同じでした。 アドバイスを頂ければと思い質問させていただきました。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • zipファイルのダウンロードについて

    RapidshareなどからFlashGetなどでzipファイルをダウンロードするとzipファイルではなく、phpファイルが ダウンロードされます。なぜzipファイルが落とせないのでしょうか?

  • php認証

    php認証 phpとmysqlを使って、ユーザーIDごとに違うページを割り当てる認証システムを作りたいのですが、良い書籍などはありますか? また、スクリプトをあげていただけるととても助かります。。。

    • ベストアンサー
    • PHP
  • PHPからベーシック認証のかかっている場所からファイルを取得

    まいどお世話になっております。 今回もよろしくお願いします。 PHPで readfile("http://***.***.***"); などが可能ですが、 そのURLにベーシック認証がかかっているときどうやったらファイルの内容を取得したりできるでしょう? 認証用のユーザー名とパスワードは分かっている状況で、です。 実は以下のようなことで困ってまして、 これはPHPの問題ではなくて、サーバーの設定などによるものなのでしょうか? ↓-----------------↓ Smartyのテンプレートの中で {fetch file="http://***"} という風に書きたいのですが、そのファイルがおいてある場所にベーシック認証がかけてあるので、読み取れないのです。 ↑-----------------↑

    • ベストアンサー
    • PHP
  • PHP zipファイルのダウンロード

    下記のようなPHPスクリプトにおいて、zip フォルダに画像ファイルの圧縮ファイルを 保存し、ダウンロードしたいんです。ダウンロードの動作はChrome上で確認できてますが、圧縮した、ダウンロードファイルのサイズが0KB で、空なのです。 どこが間違っているか教えていただけますか? [file_zip.php] <?php mb_internal_encoding("UTF-8"); $ftp = ftp_connect("~"); ftp_login($ftp, "~", "~"); $dir = '/storage2/zip'; ftp_chdir($ftp, $dir); // ディレクトリ移動 // Zipクラスロード $zip = new ZipArchive(); // Zipファイル名 $zipFileName = $_POST['zip_filename']; var_dump($zipFileName); // Zipファイル一時保存ディレクトリ $zipTmpDir = '/storage2/zip'; // Zipファイルオープン $result = $zip->open($zipTmpDir.$zipFileName, ZIPARCHIVE::CREATE | ZIPARCHIVE::OVERWRITE); if ($result !== true) { // 失敗した時の処理 echo '圧縮ファイルをオープンできませんでした'; exit(); } // ここでDB等から画像イメージ配列を取ってくる $image_data_array = array(); array_unshift($image_data_array, $zipTmpDir.$zipFileName); // 処理制限時間を外す set_time_limit(0); foreach ($image_data_array as $filepath) { $filename = basename($filepath); // 取得ファイルをZipに追加していく $zip->addFromString($filename,file_get_contents($filepath)); } $zip->close(); // ストリームに出力 header('Content-Type: application/zip; name="' . $zipFileName . '"'); header('Content-Disposition: attachment; filename="' . $zipFileName . '"'); header('Content-Length: '.filesize($zipTmpDir.$zipFileName)); echo file_get_contents($zipTmpDir.$zipFileName); // 一時ファイルを削除しておく unlink($zipTmpDir.$zipFileName); // header("Location: storage.php"); ?>

    • 締切済み
    • PHP
  • getfile.phpファイル?について

    ここのジャンルでいいのか分かりませんが、 とあるサイトでZIPファイルを大量にダウンロードしているとまれに まれに”getfile.php”というファイルがダウンロードされてしまうことがあります。 この"php"という拡張子はどんな物なんでしょうか? 質問の意味がわからなかったら申し訳ございませんが、ご存知の方教えてください。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • VBSでのファイルダウンロードについて

    皆さんに質問があります。 環境はWindows7です。 今まではログインページからログインしてダウンロードページに遷移してダウンロードするzipファイルのリンクをクリックしてダウンロードしていました。 この一連の流れをvbsファイルで実現したいと考えています。 そこで下記のサイトを元にサンプルを作成して実行してたら、zipファイルがダウンロードできたのでいざ解凍しようとしたらエラーが発生してしまいました。 http://d.hatena.ne.jp/tt4cs/20120206/1328527888 ダウンロードしたzipファイルをエディタで開いたらログインページのhtmlファイルでした。※ダウンロードしたファイルの拡張子はzipでした。 試しにHTTPリクエストオブジェクトをオープンする所に下記のようにユーザー名とパスワードを追加してみましたが結果は同じでした。 HTTPリクエストオブジェクト.Open "GET", zipファイルのURL, False, ユーザー名, パスワード どのようにすればファイルをダウンロードする事ができるでしょうか。 また下記のサイトを参考にてInternetExplorerオブジェクトで対象のサイトを表示させて、ログイン名とパスワードを自動に挿入してログインしてからも試しましたが結果は同じでした。 http://scrap.php.xdomain.jp/vbs_ie_control/ できる、できないなど些細な事でも何でも構いませんのでアドバイスいただけませんでしょうか。 申し訳ありませんが何卒、宜しくお願いします。

  • ホームページでPHP認証

    ホームページでPHP認証を組み込もうと考えているのですが、ユーザーごとに違うページが開く認証をつくるにはどうすれば良いのでしょうか。 Authを使うと良いなどは検索してわかったのですが、その続きが分かりません。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • ファイルをダウンロードするときファイル形式が変わる

    パソコン仲間でHPを持ちメンバーが作成したファイル(大半が「.doc」や「.xls」)を自由にダウンロードして使えるようになっています。 これまでは、ダウンロードするときに「ファイルのダウンロード」画面では名前(例、aaaaa.doc)や種類(例、Microsoft Word)が表示されていましたが、ある特定のファイル(ccccc.docx)をダウンロードしようとすると、「ファイルのダウンロード」画面では名前が(ccccc.zip)になり、種類が(Microsoft Word 97-2003)が表示されます。 そのまま保存してダブルクリックや「Lhaz」で開くと、複数の「.xml」形式のファイルになってしまいます。 また、その「.zip」ファイルをプログラムを「Word」で指定して開くと、正常に開きます。 このような現象になる原因はなんでしょうか。(Windows7? IE8? Office2010? HP作成ソフト?) またその対応策を教えてください。 私のPC環境:Windows7 IE8 Office2010 HP作成ソフト=HPビルダー