2012-03-07 40 views
1

我有一個C客戶端,它使用libcurl通過HTTPS將xml數據包發送到Apache服務器。如何從Apache https服務器端通過腳本獲取https post請求的內容

客戶端代碼的某些部分:

curl_easy_init();

curl_easy_setopt(捲曲,CURLOPT_URL, 「https://example.com/test.php」);

curl_easy_setopt(捲曲,CURLOPT_POSTFIELDS,send_buf);

curl_easy_setopt(捲曲,CURLOPT_POSTFIELDSIZE,strlen的(send_buf));

curl_easy_setopt(捲曲,CURLOPT_POST,1L);

解析度= curl_easy_perform(捲曲);

send_buf的內容發送到https apache服務器(https://example.com/test.php),但在Apache服務器端,我怎樣才能使用test.php來獲取send_buf的內容?歡迎任何其他腳本。謝謝

任何示例代碼?

+0

不明白爲什麼你問這句話,如果你沒將是很好「T。謝謝。 – Kev 2012-03-07 23:24:40

回答

0

我可能是你的問題有點不清楚,但我假設send_buf是標準格式,即

富=酒吧&巴茲=噓聲& X = 17個+貓+等

在這種情況下,在你接收PHP腳本(test.php的)在$ _ POST變量將被如下初始化:

$_POST['foo'] = "bar" 
$_POST['baz'] = "boo" 
$_POST['x'] = "17 cats etc" 

所以,你可以用$ _ POST [「富」]訪問值。

希望有所幫助。

+0

我想我需要改變這個問題:如何使用cgi .c代碼獲取send_buf內容。我想在apache/var/www/cgi-bin /中使用c代碼來獲取POST請求數據。任何示例C代碼? – mzzhmh 2012-03-07 04:08:48

+0

聽起來這不是一個真正的PHP相關問題。以下是通過C中的CGI處理POST請求的一些文檔:http://www.cs.tut.fi/~jkorpela/forms/cgic.html#post - 基本上POST數據發送到程序的標準輸入。 C中不再使用「傳統」的CGI了...... – Clark 2012-03-07 15:59:58

0

要獲得通過您的test.php文件發送(POST)到您的Apache服務器的一切,你可以使用:

<?php 
    var_dump($_POST); 
?> 

你也可以使用$ _GET,如果你想獲得一切都在傳遞URL(例如:https://example.com/test.php?myvar=value)。最後,$ _REQUEST包含$ _POST和$ _GET。

如果您發佈通過你的C代碼調用myvar變量,你可以檢索你test.php的文件中的值:

<?php 
    print $_POST['myvar']; 
?>