2012-02-18 5 views
0

헤더를 설정하고 인증 응용 프로그램에 필요한 매개 변수를 게시해야합니다. 하지만 문제는 헤더 데이터가 게시되지 않은 경우입니다.헤더가 설정된 경우 PHP cURL 데이터가 게시되지 않습니까?

헤더 및 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 포스트 매개 변수와 스크립트 및없이 헤더

<?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 스크립트

그래서 1 인 경우 (헤더 없음) My Output은 보낸 데이터입니다. 경우 2 (머리글 포함) 출력이 비어 있습니다. 헤더 데이터를 게시하지 않으면 설정됩니다. 그래서 가능한 해결책은 무엇입니까. 고맙습니다.

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

에 대해 웹 서버가 데이터의 전체 길이를 얻을 수 있도록하기 위해 무엇

답변

1

시도 :

curl_setopt($x, CURLOPT_HTTPHEADER, array('Content-length: '.strlen($inputdata))); 
관련 문제