• ベストアンサー

phpでAuthorizationヘッダを追加

Basic認証をかけた場所のファイルを別の場所にコピーしたいです。 コピーだけは、 $file = 'http://~~~.html'; $newfile = 'new.html'; if (!copy($file, $newfile)) { echo "failed to copy $file...\n"; } とすればできるところまでは調べ、 Basic認証のかかっていない場所のファイルで試して、成功しました。 書籍もいろいろと手にとってみましたが、 ヘッダを送信することについて書かれているものをあまり見つけられず、 検索してみても、いまひとつよく分かりません。 コピペして使える形であれば正直なところ助かりますが、贅沢は申しません。 phpは必要な部分だけ調べて使っているような素人で、 今回のことも、header()を使うのだろう、というところまでしか分からないのですが、 理解の助けになるようなアドバイスをいただければありがたいです。

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

  • ベストアンサー
noname#243182
noname#243182
回答No.1

基本認証の情報は、リクエスト先の URL に含めることが出来ますので、これを試してみてはいかがでしょうか。 'Basic認証 URL' で検索してみてください。

参考URL:
http://www.google.co.jp/
sa2874
質問者

お礼

こんなに簡単にできるものなんですか! header()を勉強する機会は延期になりましたが、大変助かりました。 ありがとうございました!

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • PHPで動的に生成されるCSVをサーバーに保存

    業務処理を自動化するためにPHPで動的に生成されるCSVファイルを、WEBサーバーに保存したいと思っています。 wgetコマンドを使って保存しようと思っていますが、リンクにGETパラメータ?(http://hogehoge.com/hoge.php?hoge=1&hoge=2)が設定されているためかcsvが生成さずPHPページ(hoge.php)が保存されてしまいます。 実行したwgetコマンド /usr/local/bin/wget /home/useraccount/www/hoghog/hog.csv 'http://hogehoge.com/hoge.php?hoge=1&hoge=2' -O - また、phpファイルを生成し、 <?php $file = 'http://hogehoge.com/hoge.php?hoge=1&hoge=2'; $newfile = 'test.csv'; if (!copy($file, $newfile)) { echo "failed to copy $file...\n"; } ?> と上記のようにやっても同じ結果でした。 ブラウザ上のURLバーでhttp://hogehoge.com/hoge.php?hoge=1&hoge=2とするとCSVファイルの保存画面が出てくるページなのですが、何か良い方法はありませんでしょうか。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPのheaderの「一度に複数のヘッダを送信」とは?

    VBAやフォートランは我流で経験してますが、PHP初心者です。 ご教示願います。 「PHP マニュアル」のサイトでheader関数の説明で、 http://jp.php.net/manual/ja/function.header.php 次のような説明を見つけました。 「4.4.2 および 5.1.2 この関数は一度に複数のヘッダを送信できないようになりました。 これは、ヘッダインジェクション攻撃への対策です。」 とありますが、 「一度に複数のヘッダを送信」とはどういうことでしょうか? 同じページの例に、 <?php $last_modified_time = filemtime($file); $etag = md5_file($file); header("Last-Modified: ".gmdate("D, d M Y H:i:s", $last_modified_time)." GMT"); header("Etag: $etag"); if・・・中略・・・} ?> とありますが、 この2つの「header」は「一度に複数のヘッダを送信」にはあたらないのでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPで以下のように、HTTPヘッダのrefreshを送って

    PHPで以下のように、HTTPヘッダのrefreshを送って サイトをリダイレクトさせています。 <?php header('Refresh: 3; url=http://example.com/auth/'); ?> 移動先のURLにはBasic認証がかかっているのですが、認証情報も あわせてブラウザから送出させることは出来ますでしょうか? やりたいこととしては、このPHPファイルからリダイレクト させた場合は、移動先のBasic認証を通す、といった感じです。

    • 締切済み
    • PHP
  • ヘッダーが付いた場合の、simplexml_load_fileでの取り出し方

    simplexml_load_file()を使って <?xml version="1.0" encoding="UTF-8" ?> - <Response> - <header:Header xmlns:header="http://test.com/"> </header:Header> - <Body> - <itemSearch:ItemSearch xmlns:itemSearch="http://test.com/"> <count>2000</count> <page>1</page> ...... この<count>2000</count> の「2000」を取り出すにはどうしたらよういのでしょうか? echo $Xml->Response->Body->itemSearch->count; このXML文書の構成様式が初めてで(ヘッダーが付いている)、いくらやっても 取得できないので宜しくお願い致します。

    • ベストアンサー
    • PHP
  • ファイルのコピーについて

    $file = './hoge/index.html'; $file_to = './hoge/index2.html'; //コピー成功 ↓ $file_to = './hoge/php/index.html'; //コピー失敗 if(copy($file, $file_to)){ echo "コピーしました。:"; } else{ echo "コピーに失敗しました。:"; } 同じ階層にコピーファイル作成は成功するのですが、 ディレクトリを下げた階層にコピーファイルを作成しようとすると失敗してしまいます。 パーミッションの設定がわるいのか権限がないのか、よくわかりません。 エラー内容 Warning: copy() [function.copy]: SAFE MODE Restriction in effect. The script whose uid is 10124 is not allowed to access 教えて下さい。お願いします。

    • 締切済み
    • PHP
  • バッチファイル 検索してコピーするには

    cドライブのaaaフォルダ内にあるエクセルファイルをサブフォルダ内も検索し、Eドライブにコピペするコードを見つけました。 実行してみますと、aaa内に含まれるサブフォルダ内にあるエクセルファイルはコピペされますが、 aaaの直下にあるエクセルファイルはコピぺされません。 これもコピペされるようにするには、どうすれば良いか教えてください。 @echo off set Folder1=C:\aaa rem ・コピー先 set Folder2=E:\ set File=*.xls cd /d %Folder1% for /d /r %%a in ( * ) do copy "%%a\*%File%*" "%Folder2%" pause

  • PHPでインクルードができない

    PHP初心者です。 WEBサイトのヘッダーやフッター等の共通化が上手く行きません。 正しい手順を教えていただけると助かります。 ロリポップ コロリポプラン php 5.3 です。 読み込む側のファイルはphpでなくhtmlとしたいです。 読み込まれる側はheader.php等でOKです。 なお一度トライしたときは以下のようなエラーがでました。 failed to open stream: No such file or directory in /home/~~~ 素人で申し訳ありませんが、お助けいただけると助かります。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • バッチファイルへの変数のキー入力、変数名を含むファイルへの出力

    とあるヘッダーの作成のため、キー入力した値で、変数名を含む名前のテキストに変数の入ったファイルを書き出そうと思うのですが、どなたかアドバイスいただけますでしょうか。 いまのところ次のような感じで、%num%という変数に数字を入れるようにしたいのですが。 SET/P %num% = 数字を入力してください:  echo right: %num% >> header%num%.txt echo leftt: %num% >> header%num%.txt また、バッチファイルのサンプルが多く載っている書籍等の紹介でもかまいませんどうぞよろしくお願いします。

  • PHPのPHP_SELFに絡む設定を教えてください

    PHPを勉強中なのですが、以下のソースをSubmit(value=更新)処理すると 結果がURLが見つからない「ページを表示できません」がでます。 恐らく、「PHP_SELF」に絡む設定か、「localhost」のPathに問題があると思うのです。 何かの設定が抜けていると思うのですが、色々調べても分かりません。 どこの設定を直せばいいか教えてください。(^^ 【書籍】 ホンキで学ぼう!PHPのキホン 【環境】 OS:WindowsXPHomeEdition Apapche:1.3.26 PHP:4.2.3 【URL結果】 最初にPHPにアクセスしたときのURL:http://localhost/tmp/php/fileedit.php SubmitしたときのURL:http://tmp/php/fileedit.php 【ソース】書籍の抜粋 <? $filename = "todo01.txt"; if ( $submit ) { $backupfile = $filename.".bak"; echo $backupfile; if ( copy($filename, $backupfile) ) { $fp = fopen($filename, "w"); if(flock($fp, 2)){ fputs($fp, $contents); flock($fp, 3); }else{ echo "ERROR: file lock is failed.<BR>\n"; exit; } fclose($fp); }else{ echo "ERROR: backup failed.<BR>"; exit; } } // ファイル書き換え部終わり ?> <HTML> <HEAD> <TITLE> <? echo $filename ?> </TITLE> <META HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=euc-jp"> </HEAD> <BODY> <FORM ACTION="<? echo $PHP_SELF; ?>" METHOD="POST"> <TEXTAREA NAME="contents" ROWS="25" COLS="100"> <? require ( $filename ); phpinfo(); ?> </TEXTAREA> <INPUT TYPE="submit" NAME="submit" VALUE="更新"> </FORM> </BODY> </HTML>

    • ベストアンサー
    • PHP
  • PHPでの文字コードについて

    フォルダー内にあるカラオケ曲のリスト(番号 歌手名 曲名)一つずつ読み込み、曲の中にある特定の言葉を含む アイテムだけをを別のファルダ―にコピーするプログラムを作ろうと思っていますが、日本語の部分が文字化けしてしまいました。 ソースコードは添付の通りです。 ここではカラオケ曲の文字コードがわからないのでとにかくUTF-8に変換し、 曲名に「恋」という漢字が含まれるものを探そうとしています。 スクリーンショットの左は曲のリストの一部、右は結果出力です。 PHPにmb_convert_encoding() というのがあるのがわかったので調べて使ってみたのですが、上手く行きません。。 この関数をちゃんと理解できれば文字化けを治せるような気がするのですが、果たしてそうでしょうか。 それとも何か別の方法があるのでしょうか。 どなたか詳しい方がいらっしゃいましたなら、アドバイスを頂きたいと思います。 どうかよろしくお願いいたします。 ソースコード <?php $origin = "aaa-karaoke/Japanese"; $Rorigin = realpath($origin); $dest = "aaa-karaoke/with-song"; $Rdest = realpath($dest); $handle = opendir($Rorigin); while( $file = readdir($handle) ){ $file = mb_convert_encoding($file, "UTF-8"); echo $file."<br>"; if( strpos($Rorigin."/".$file, "恋") ){ copy( $Rorigin."/".$file, $Rdest."/".$file); echo "copied $file</br>"; } } closedir($handle); echo "end of job"."<br>"; ?>

    • ベストアンサー
    • PHP