2012-10-15 55 views
0

這是我cURLPOST功能:如何閱讀遠程服務器上的CURL POST?

public function curlPost($url, $data) 
{ 
    $fields = ''; 

    foreach($data as $key => $value) { 
     $fields .= $key . '=' . $value . '&'; 
    } 

    rtrim($fields, '&'); 

    $ch = curl_init(); 

    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_POST, count($data)); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $fields); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 

    $result = curl_exec($ch); 
    $info = curl_getinfo($ch); 

    curl_close($ch); 
} 

$this->curlPost('remoteServer', array(data)); 

如何讀取遠程服務器上的POST

遠程服務器使用PHP ...但在變種我$_POST[]應該讀

的如: - $_POST['fields']$_POST['result']

+1

是遠程服務器上運行PHP?如果是這樣,它在'$ _POST'中。如果它正在運行其他內容,請使用該語言的框架來檢索帖子。 –

回答

0

你代碼的作品,但我會建議你添加其他兩件事情

A. CURLOPT_FOLLOWLOCATION因爲HTTP 302

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE); 

B. return的情況下,你需要將結果輸出

return $result ; 

function curlPost($url, $data) { 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_POST, true); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE); 
    $result = curl_exec($ch); 
    $info = curl_getinfo($ch); 
    curl_close($ch); 
    return $result; 
} 

print(curlPost("http://yahoo.com", array())); 

另一個例子

print(curlPost("http://your_SITE", array("greeting"=>"Hello World"))); 

要讀您的文章,您可以使用

print($_REQUEST['greeting']); 

print($_POST['greeting']); 
+0

我照你所說的做了,但$ _POST ['data']也是空 – iamvaruns

+0

看看這個例子..我發送的是'greetings'而不是'data' ..如果你想獲取數據,你不能得到'$ _POST ['data']'array(「data」=>「Hello世界「) – Baba

+0

你可以用下面的方法檢查你的工作:'print_r($ _ POST);' – Gaui

0

作爲一個正常的POST請求......所有發佈的數據可以發現在$ _ POST ......當然,除了文件:)比如添加一個&action=request1到URL

if ($_GET['action'] == 'request1') { 

    print_r ($_POST); 

} 

編輯:要查看POST變量使用如下因素在POST處理程序文件

if ($_GET['action'] == 'request1') { 
    ob_start(); 
    print_r($_POST); 
    $contents = ob_get_contents(); 
    ob_end_clean(); 
    error_log($contents, 3, 'log.txt'); 
} 
+0

$ _GET ['action'] - > print POST正在工作,但是我無法打印正在遠程服務器上的POST,並且腳本從CURLPOST ....被調用,所以如果你能看到我的代碼並且告訴我哪個變量讀取準確的POST ..也我已經試過$ _POST ['fields'] && $ _POST ['result']都是空的 – iamvaruns

+0

抱歉...我會告訴你如何看到它。看看編輯部分我已經添加到我的答案 – Reflective

+0

我正在獲取權限問題來創建該文件。 PHP警告:error_log(log.txt):無法打開流:第9行中的C:\ inetpub \ wwwroot \ submit.php中的權限被拒絕。此外,文件的創建位置 – iamvaruns

相關問題