PHPでベーシック認証がかかっている場所からファイルを取得する方法

このQ&Aのポイント
  • PHPからベーシック認証がかかっている場所からファイルを取得する方法を教えてください。
  • ベーシック認証がかかっているURLからファイルを取得するためのPHPの方法について教えてください。
  • 認証が必要なURLからファイルを取得するためのPHPの方法について教えてください。
回答を見る
  • ベストアンサー

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

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

  • PHP
  • 回答数1
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • Lean
  • ベストアンサー率72% (435/603)
回答No.1

もしかしたら、他にいい方法があるかもしれませんが、一番簡単なのは、BASIC認証ならURLを  http://user:passwd@server.domain/file.html みたいな形式で書けばいいです。 ただ、ユーザ名とパスワードを書かないといけないというのがありますが。

hiyo680
質問者

お礼

ものすごく遅くなってしまいました。 この回答は、大変助かりました。 本当にありがとうございました。

関連するQ&A

  • PHPでのWaning

    PHPでのWaning PHPファイルにてメッセージ抑止をしたいのですが、どのようにすれば良いのでしょうか? 「ディレクトリトラバーサル」脆弱性とのご指摘を頂いております。 http://xxxx.com/sys/dl.php?file=01(正常なURL) http://xxxx.com/sys/dl.php?file=00(ディレクトリ内に無いURL) 上記のように​http://xxxx.com/sys/dl.php?file=00と言うページが無く (あったとしても見られても問題ない) http://xxxx.com/sys/dl.php?file=01以外のアドレス(?file=)以降、ユーザーがURLの打ち間違えをしたら Waning: file(~):failed to open stream:No such file or directory in....................../utl.php on line 139 が出ます。 上記「Waning」では無く、他のメッセージ(表示URLは変えずにhtmlで出力)を出したいのです。 utl.phpの139行目は $utl = new Utl(); $template = $utl->readTemplate($template_file); $template_file テンプレートファイルへのパス 返り値 $template テンプレートファイル(SJIS) */ function readTemplate($template_file){ (139行目)foreach(file($template_file) as $v){ $template .= $v; } $template = mb_convert_encoding($template, "EUC-JP", "auto"); return $template; } /* どうぞ、よろしくお願い致します。

    • 締切済み
    • PHP
  • PHPでの認証方法

    お世話になります。 現在PHP言語でのActive Directoryへの認証を考えています。 KADM5関数やLDAP関数等を使用するらしい事は分かったのですけれども、使い方がよく分からなくて困っています。 例えば、 サーバー名が「server01」 ドメインが「d01」 ユーザーアカウント「user01」 パスワードが「abc」 の認証を、直接WEBページのフォームからユーザーIDと パスワードを入れて、認証が出来ます基本的な例文などがございましたら、教えていただけましたらと思っています。 また、できましたら、パスワードの期限がきました時の変更などもweb上で、できましたらと思っています。 よろしくお願いいたします。

    • 締切済み
    • PHP
  • PHPのフレームワーク選定

    PHPで何かしらのフレームワークを使おうと思っていますが、経験がないので各フレームワークの特徴が分からず、何を選んでいいか分かりません。 とりあえずテンプレートエンジンの機能だけでもよかったので、シンプルで使いやすそうなSmartyを使ってみました。Smartyは簡単な設定のみで利用できたものの、すべてのソース(テンプレート以外のプログラムファイル)に # $smarty->template_dir = '…'; # $smarty->config_dir = '…'; などと、テンプレートファイルや設定ファイルのディレクトリを書かねばならず、環境依存の記述をプログラムファイルに書きまくる事を前提としていて、これはありえないなと思いもう少しきちんとしたつくりのフレームワークを使おうと思いました。 ※最悪の場合、<?php include './common.php'; ?>などと書こうかと思ったのですが、それでもプログラムファイルに環境依存の値を書くことには変わらないので、そうしなくともよいものを利用したいと思っています。 条件としては ・テンプレートが利用できる【必須】  (サイトの共通デザイン部分と変化する部分の分離をしたい) ・Windows環境で開発しレンタルサーバにアップする関係もあり  環境依存の記述は最小限にしたい。少なくともプログラムファイルに  書かずに済むようにしたい。【必須とは言わないが強い希望】 ・設定が簡単なほどいい ・多くのレンタルサーバで使えるものがいい ・「http://…/home.php」などとPHPのファイル名丸出しのURLではなく、  「http://…/home」とできるなど、ファイル名とURLを分離できるとうれしい ・DBは「今のところ」使わないが将来的には使うかも という感じです。 上記条件に合致するお勧めのPHPフレームワークを教えてください。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHP で動的ファイル出力

    PHP 猛勉強中です、またお世話になりますm( __ __ )m ドキュメントルート外に置いたイメージファイルを HP からリンクして表示できるように readfile 関数を使った PHP ファイルを作成しようと思っています。 readfile.php に対して URL クエリーでhttp://hoge/readfile.php?name=hage&ext=jpg のような感じで呼び出したいと思っています。 ※ name はファイル名、 ext は拡張子です。 [readfile.php] <?php $_name = ""; $_ext = ""; if(isset($_GET["name"]) === true && isset($_GET["ext"]) === true){ // null byte 対策 $_name = delete_nullbyte($_GET["name"]); $_ext = delete_nullbyte($_GET["ext"]); // ディレクトリトラバーサル対策 $_name = str_replace(".", "", @htmlspecialchars($_name, ENT_QUOTES, "UTF-8")); $_ext = str_replace(".", "", @htmlspecialchars($_ext, ENT_QUOTES, "UTF-8")); }else{ exit(); } $_file_path = "/home/xxx/img/" . $_name . "." . $_ext; // ファイル存在確認 if(file_exists($_file_path) === false){ exit(); } // MimeType 取得 $_ext_type = substr($_file_path, -3); $_mime_type = ""; if(strcasecmp($_ext_type, "jpg") === 0){ $_mime_type = "image/jpeg"; _out_file($_file_path, $_mime_type); }else{ exit(); } ///////////////////////////////////////////////// // ファイル出力 function _out_file($file_path, $mime_type) { // ファイル名取得 $_fname = @basename($file_path); // ファイルストリーム取得 header('Content-Type: ' . $mime_type); header("Content-Disposition: inline; filename='" . $_fname . "'"); readfile($file_path); } ///////////////////////////////////////////////// // null byte 除去メソッド function delete_nullbyte($str) { if(is_array($str) === true){ return ""; } return str_replace("\0", "", $str); } ?> 色々作業を進めるうちに「null byte 攻撃」や「ディレクトリトラバーサル攻撃」などの言葉が耳に入ってきてセキュリティ的に不安を感じています。 自分なりに調べて上記のようなコーディングをしましたが、果たして問題が無いのか、それとももっとたくさん考えなくてはならないのか、先輩方の意見が聞きたく質問させていただきました。 よろしくお願いしますm( __ __ )m

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

    お世話になります。ダウンロードボタンを付けてファイルのダウンロードを行う処理で困った事になってます。 (DL.php) $file_name=htmlspecialchars(@$_POST['file_name']); $file_name=addslashes($file_name); mb_convert_variables("SJIS-WIN","EUC-JP",$file_name); $file_to=htmlspecialchars(@$_POST['file_to']); $file_to=addslashes(@$_POST['file_to']); header ("Content-Disposition: attachment; filename=".$file_name); header ("Content-type: application/octet-stream"); require_once("dl_config.php"); readfile ($data_pas.$file_to); dl_config.php <?PHP $data_pas="/data/"; ?> この状態でテキストファイルをダウンロードすると、DLしたファイルの中に不要な改行ファイルが挿入されています。 またrequire_once("dl_config.php");を削除し readfile ($data_pas.$file_to);を readfile ("/data/".$file_to);とすると、改行は入らなくて、正常なファイルがダウンロードされます。 よろしくお願いします。

    • 締切済み
    • PHP
  • PHP4にて別のサーバーにあるファイルのサイズを取得する

    同じサーバーにあるファイルの場合 filesize(...)関数でファイルのサイズを取得できますが、 サイズを知りたいファイルが別のサーバーにある場合は どのように取得すればよいのでしょうか? PHP5ならばget_headers(...)関数が使用できるようですが、 PHP4ではこの関数は使用することができないようなので、 どうすればいいものか困っています・・・。 ちなみに、下記URLの参考では取得できませんでした。 (ローカル環境のPHP5では正常に動作しますが・・) http://ml.php.gr.jp/pipermail/php-users/2006-December/031391.html 方法をご存じの方がいらっしゃいましたら、 宜しくお願いします

    • ベストアンサー
    • PHP
  • BASIC認証のユーザー名をPHPで取得したい

    とあるレンタルサーバで、 BASIC認証のホームページを作成しております。 BASIC認証は「.htaccess」で AuthType Basic AuthName "メンバー専用ページ" AuthUserFile "ファイルパス" require valid-user ログイン後のページにアクセス解析機能をつけたいと思っていますが、BASICで入力したログインのユーザ名が取得できなくて困っております。 echo "test1:" . $_REQUEST['PHP_AUTH_USER']. "<br />\n"; echo "test2:" . $_SERVER['PHP_AUTH_USER']. "<br />\n"; echo "test3:" . $PHP_AUTH_USER . "<br />\n"; と書いて画面に出力してみましたが、正しくログインしていても 空又はNULLの状態です。 Apacheの設定?phpの設定?ソースコードの間違え? などわからない状態になっています。 よろしくお願い致します。

    • ベストアンサー
    • PHP
  • PHPファイルとテンプレートファイルの書き方

    <?php // ファイル名 $fname = "test.csv"; // ファイルを開く $file = fopen($fname, "r"); // 全データを出力する while (list($id, $name, $add) = fgetcsv($file, 1000, ",")) { echo "<hr>"; echo "<br>ID:".$id; echo "<br>名前:".$name; echo "<br>住所:".$add; } // ファイルを閉じる fclose($file); ?> <質問> 上の内容をSmartyを使ってPHPファイルとテンプレートファイルに分離したい。 テーブルにCSVファイルのデータが入るようにしたい。 PHPファイルとテンプレートファイルの書き方を教えてください。

    • 締切済み
    • PHP
  • PHPの認証方法

    こんばんわ, 現在自分のサイトをすこし変更してPostgresを使用したユーザとパスワード認証をしようと思っています。 具体的にはHTMLのuserとpasswordのフォームから入力されたものをpostgresのmemberのテーブルにあるuserとpasswordと認証させ,あっていれば,自分のサイトの中に入れるようにしたいのです。 それで,.htaccess認証ではなく,PHPLIBのなかの認証(インライン認証)を使用したいのですが, (http://www.php.gr.jp/php/phplib/documentation-3.html#ss3.9) これだとネット上をpasswordなどが平文でながれるような感じがするのですが,大丈夫なのでしょうか。 また上記のように,HTML上のフォームからサーバーのDBの認証をおこなうのには,他にどのような方法があるのでしょうか。 ちなみにPHPをHTMLの中に埋め込んで作成したいと思っています。 環境はApache,PostgreSQL,PHP4です。 よろしくお願いします。

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

    お世話になります。 タイトルのとおりPHPでファイルのダウンロードを行いたいのですが、 ファイルを保存するというダイアログが出てくれません。 tesuto.php <?php $file="/work/tesuto.csv"; header ("Content-Disposition: attachment; filename=$file"); header ("Content-type: application/x-csv"); readfile ($file); ?> tesuto.phpを実行するとダウンロードされずに、ファイルの中身が表示されてしまいます。 よろしくお願いします。

    • ベストアンサー
    • PHP

専門家に質問してみよう