2012-02-18 5 views
0

私は認証アプリケーションのために必要なパラメータを設定し、ヘッダを設定する必要があります。しかし、問題は私がヘッダーデータが投稿されていない場合に設定されます。ポストパラメータを持つとヘッダヘッダーが設定されている場合、PHP cURLのデータは表示されませんか?

<?php 
    $inputdata = 'registration_id=123456789'; 
    $x = curl_init("http://localhost/target.php"); 
    curl_setopt($x, CURLOPT_POST, 1); 
    curl_setopt($x, CURLOPT_POSTFIELDS, $inputdata); 
    curl_setopt($x, CURLOPT_FOLLOWLOCATION, 0); 
    curl_setopt($x, CURLOPT_RETURNTRANSFER, 1); 
    $data = curl_exec($x); 
    var_dump($data); 
    curl_close($x); 
?> 

ヘッダでPHPスクリプトやPOSTデータ

<?php 
     $inputdata = 'registration_id=123456789'; 
     $x = curl_init("http://localhost/target.php"); 
     curl_setopt($x, CURLOPT_HTTPHEADER, array('Content-length: 9')); 
     curl_setopt($x, CURLOPT_POST, 1); 
     curl_setopt($x, CURLOPT_POSTFIELDS, $inputdata); 
     curl_setopt($x, CURLOPT_FOLLOWLOCATION, 0); 
     curl_setopt($x, CURLOPT_RETURNTRANSFER, 1); 
     $data = curl_exec($x); 
     var_dump($data); 
     curl_close($x); 
    ?> 
なし

target.php

<?php 
echo $_POST['registration_id']; 
?> 

PHPスクリプト

したがって、ケース1(ヘッダーなし)で、My Outputは私が送信したデータです。ケース2(ヘッダ付き)では、私の出力は空白です。私はヘッダーデータが設定されている場合は投稿されません。したがって、可能な解決策は何ですか。ありがとうございました。

答えて

1

試してみてください。

curl_setopt($x, CURLOPT_HTTPHEADER, array('Content-length: '.strlen($inputdata))); 
1

$header = 'Content-length: ' . strlen($inputdata); 
curl_setopt($x, CURLOPT_HTTPHEADER, array($header)); 

についてどのようなWebサーバがデータの全長を取得してみましょうします。

関連する問題