2010-10-19 136 views
1

我正在嘗試一個基本的東西。我有兩個文件: curl.php和 form.php的cURL - 無法獲得POST回覆

curl.php

<?php 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "http://localhost/test/test34_curl_post/form.php"); 
curl_setopt($ch, CURLOPT_HEADER, false); 
curl_setopt($ch, CURLOPT_POST, true); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_POSTFIELDS, array(
    'nabc' => 'fafafa' 
)); 
$result = curl_exec($ch); 
curl_close($ch); 
echo $result; 
?> 

form.php的

<form action="form.php" method="post"> 

<input type="hidden" name="nabc" value="abc" /> 
<input type="submit" name="submit" value="Send" /> 

</form> 


<?php 

if(isset($_POST['submit'])) 
{ 
echo '<br />Form sent!'.$_POST['nabc']; 
} 
?> 

什麼,我希望得到的是作爲運行curl.php的結果,查看「Form sent!」。它好像不是作爲POST發送的。在螢火蟲(網絡)只有一個GET請求,我得到的是表格,沒有發送。任何人,請幫助。

回答

1

你沒有發送'submit'在你的POST數據,所以isset($_POST['submit'])將是錯誤的。你需要做到以下幾點:

curl_setopt($ch, CURLOPT_POSTFIELDS, array(
    'nabc' => 'fafafa', 
    'submit' => 'Send' // if you want 'submit' in $_POST you need this 
)); 
+0

這樣做的伎倆,謝謝! – pablosd 2010-10-19 16:27:19

+0

順便說一句:也許你知道如何做到這一點時:

pablosd 2010-10-19 16:34:17

+0

'onsubmit =「document.form1.submit()」'是毫無意義的,因爲唯一可以觸發的方式是提交'form1'。我認爲最好是如果你提交另一個問題的細節。 – rojoca 2010-10-19 16:38:44