2012-03-01 48 views
2

從PHP頁面,我試圖將一些數據發佈到另一個PHP頁面並獲取數據。發表並使用PHP獲取結果

這是我目前有:

<?php 
// Initialize cURL session 
$ch = curl_init('postpage.php'); 

// Set some options on the session 
curl_setopt($ch, CURLOPT_POST, true); 
curl_setopt($ch, CURLOPT_POSTFIELDS, array('field1' => 'Andrew')); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 

// Execute post 
$result = curl_exec($ch); 

var_dump($result); 

// Close the session 
curl_close($ch); 
?> 

和postpage.php:

<?php 
echo 'Receipt of post request. field1:'.$_POST["field1"]; 
?> 

所有的var_dump給我的是:

string(0) "" 

爲什麼我沒有讓文本回來?

謝謝!

+0

這是你正在使用的* actual *'curl_init()嗎?如果是這樣,您需要使用完全限定的URL(協議,主機名,URI)。 – 2012-03-01 15:30:34

回答

6

從您的PHP腳本執行的curl不知道當前的環境,也就是說,您不能使用相對URL。您提供給curl_init的URL必須是絕對的(即包含http://)

+0

啊 - 那是做的。謝謝! – AndyGeek 2012-03-01 15:32:42

2

如果這確實是您正在進行的實際初始化,那麼錯誤可能在curl_init()的參數中,該參數需要完全限定的URL。

此外,您可能想要使用一些錯誤診斷。 curl_exec返回FALSE失敗。之所以可以用curl_error()來確定:

$ch = curl_init(...); 
// ... some curl_setopt() 
$result = curl_exec($ch); 

if ($result === FALSE) 
{ 
    die("cURL error: " . curl_error($ch)); 
} 
+0

+1用於錯誤診斷。在許多情況下,打開'CURLOPT_VERBOSE'對調試也有很大幫助。 – 2012-03-01 15:45:45