2012-04-02 14 views
4

私は、ユーザーにログインしてバグを報告するために、バグダイルインストールにリクエストを送信するスクリプトを作成しています。php file_get_contents Bugzillaのインストールに間違ったコンテンツタイプを送信する

Googleコードhttp://code.google.com/p/bugzillaphp/ で利用可能なBugzillaPHPを使用していますが、すべてローカルサーバで正常に動作していますが、スクリプトを実行するリモートサーバ上では動作しません。

私はBugzillaのから戻って取得していますエラーは次のとおりです。

のContent-Typeは 'text/xmlで、' 'マルチパート/ *、' でなければなりません 'アプリケーション/石鹸+ xmlの、' 'や' アプリケーション/

これは、私のスクリプトが間違ったコンテンツタイプ(またはBugzillaがヘッダを間違って検出している)を送信していることを意味しています。 しかし、私はcontent-typeが正しい値に設定されていると確信しています。 これは私のコードです:

$context = stream_context_create(array('http' => array(
     'method' => 'POST', 
     'header' => 'Content-Type: text/html', 
     'content' => $body 
    ))); 


    $response = file_get_contents($url, false, $context); 

任意のアイデア?

答えて

0
$context = stream_context_create(array('http' => array(
     'method' => 'POST', 
     'header' => "Content-Type: text/html\r\n", 
     'content' => $body 
    ))); 

ヘッダー値の末尾に\r\nがあることに注意してください。

+0

私は今これを試しましたが、私は同じ結果を得ています。また、これはなぜ私のローカルサーバー上で完全に動作しているのか説明しません。とにかくありがとう – Martin

1

アレイにヘッダーを格納する必要があります。

$context = stream_context_create(array('http' => array(
    'method' => 'POST', 
    'header' => array("Content-Type: text/html"), 
    'content' => $body 
))); 
+0

私は今これを試しましたが、私は同じ結果を得ています。また、これはなぜ私のローカルサーバー上で完全に動作しているのか説明しません。私はcontent-typeの最後に\ r \ nでも試しました。とにかくありがとう – Martin

2

あなたのリモートサーバはどのようなバージョンですか?ヘッダーの送信をブロックするバグが5.2にあります。 stream_context_createの前にini_setに追加する必要があります。

$params = array('http' => array(
     'method' => 'POST', 
     'header' => 'Content-Type: text/html', 
     'content' => $body 
    )); 

    // workaround for php bug where http headers don't get sent in php 5.2 
    if(version_compare(PHP_VERSION, '5.3.0') == -1){ 
     ini_set('user_agent', 'PHP-SOAP/' . PHP_VERSION . "\r\n" . $params['http']['header']); 
    } 

    $context = stream_context_create($params); 
    $response = file_get_contents($url, false, $context); 
+0

運がいいわけではありません。リモートサーバがPHP 5.3.3上にある - PHP 5.3.6でスクリプトが動作しているローカルサーバ。残念ながら、リモートサーバーは共有ホスティングです。それ以外の場合は、同じ設定をコピーします。 – Martin

関連する問題