2012-10-11 19 views
1

我有一箇中央Web站點(A),它將使用SSL進行安全保護。對PHP來自客戶端站點的POST請求做出響應

其他客戶端網站(可以說B,C,d,E ......)將連接到這個網站A.

要求是發送HTTPS POST請求從站點B站點A(或C,d,E ......)。

請求將參數

WEBSITEKEY=keyvalue; 

那麼站點A必須給這個請求的響應。

響應應該有一個重要的一個參數,

SECUREKEY=key-value-secure; 
Para1=para1value; 
Para2=para2value; 
Para3=para3value; 
Para4=para4value; 

我如何在PHP中實現這種反應一部分?我是SSL POST和響應新手。

以後編輯,

我們總是發送請求並獲得即將到來的響應。 這裏我需要給出響應/爲客戶端請求創建響應。 如何在PHP中執行此操作? 我發現下面的代碼..

<?php 
//process the request by fetching the info 
$headers = http_get_request_headers(); 
$result = http_get_request_body(); 
//do stuff with the $headers and $result variables.... 
//then send your response 
HttpResponse::status(200); 
HttpResponse::setContentType('text/xml'); 
HttpResponse::setHeader('From', 'Lymber'); 
HttpResponse::setData('<?xml version="1.0"?><note>Thank you for posting your data! We love php!</note>'); 
HttpResponse::send(); 
?>  

這是正確的發送從我的SSL啓用站點到正常的網站上的反應如何?

+0

Google「php curl post」與來自「php curl ssl」的搜索結果混合在一起,您將得到答案。 – Robbie

+1

您的http通信的SSL加密基本上不會影響您處理和響應請求的方式。你能澄清你打算做什麼樣的請求(客戶端:JS?,服務器:PHP,curl?)嗎? – matthias

+0

@Matze服務器:PHP –

回答

4

SSL部分無關緊要;它將由Web服務器處理,PHP將像往常一樣接收請求。

你需要做的唯一事情是建立你的要求,要做到這一點,你需要知道格式這個請求要在。另外,你是否需要一些特殊的MIME類型或什麼的。

例如,假設答案必須是JSON。然後,它需要是這樣的:

<?php 
    if (!isset($_POST['WEBSITEKEY'])) { 
     // Handle error. E.g. 
     Header("HTTP/1.1 400 Bad Request"); 
     die(); 
    } 

    $websitekey = $_POST['WEBSITEKEY']; 

    require 'yourcode.php'; 

    $response = array(
     'SECUREKEY' => md5($secret . $websitekey), 
     'para1'  => date('Y-m-d H:i:s'), 
     'para2'  => 'Hello world', 
    ); 
    // Specifying charset isn't strictly necessary but may be useful. 
    Header("Content-Type: application/json;charset=UTF-8"); 
    $data = json_encode($response); 
    $len = strlen($data); 
    // Some browser/proxy/load balancer may get better performance if the 
    // length is known beforehand. This also disables Chunked-Encoding, which 
    // in some scenarios may give problems. 
    Header("Content-Length: {$len}"); 
    die($data); // Ensure no more output after this.. 

做什麼用的$websitekey您的應用程序邏輯完全依賴。這裏連接到一個祕密鹽串,用於構建響應SECUREKEY,但基本上可以做任何你想做的事情。

相關問題