2012-05-17 37 views
0

我有以下使用PHP的cURL代碼;cURL響應是200,但它並沒有真正發佈值

$product_id_edit="Playful Minds (1062)"; 
$item_description_edit="TEST"; 
$rank_edit="0"; 
$price_type_edit="2"; 
$price_value_edit="473"; 
$price_previous_value_edit="473"; 
$active_edit="1"; 
$platform_edit="ios"; 

//set POST variables 
$url = 'https://www.domain.com/adm_test/phpgen/offline_items.php?operation=insert'; 
$useragent = 'Mozilla/5.0 (Windows NT 6.1; rv:8.0.1) Gecko/20100101 Firefox/8.0.1'; 

$fields = array(
    'product_id_edit'=>urlencode($product_id_edit), 
    'item_description_edit'=>urlencode($item_description_edit), 
    'rank_edit'=>urlencode($rank_edit), 
    'price_type_edit'=>urlencode($price_type_edit), 
    'price_value_edit'=>urlencode($price_value_edit), 
    'price_previous_value_edit'=>urlencode($price_previous_value_edit), 
    'active_edit'=>urlencode($active_edit), 
    'platform_edit'=>urlencode($platform_edit) 
); 

$fields_string=""; 

//url-ify the data for the POST 
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; } 
rtrim($fields_string,'&'); 

//open connection 
$ch = curl_init(); 

//set the url, number of POST vars, POST data 
curl_setopt($ch, CURLOPT_VERBOSE, 1); 
curl_setopt($ch,CURLOPT_URL,$url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 
//add useragent 
curl_setopt($ch, CURLOPT_USERAGENT, $useragent); 

curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0); 
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0); 

curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string); 
curl_setopt($ch,CURLOPT_POST,count($fields)); 

//execute post 
$result = curl_exec($ch); 
if(curl_errno($ch)){ 
print "" . curl_error($ch); 
}else{ 
//print_r($result); 
} 

$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); 
//echo "HTTP Response Code: " . curl_error($ch); 
echo $httpCode; 

//close connection 
curl_close($ch); 

我有$ httpCode打印;我得到了代碼200;我認爲這是好的,因爲我已閱讀手冊頁,但是,當我檢查該網站時,POST的值不存在,

這是否與跨域有關,因爲我沒有發佈它在相同的域?,我在127.0.0.1/site/scrpt.php上做,但如果它不成功,我怎麼得到響應代碼200?

我還嘗試了404,我做到了通過它沒有返回404(這意味着,捲曲在我的假設正常工作)

請求URL刪除部分是否具有URL https://www.domain.com/adm_test/phpgen/offline_items.php?operation=insert與「?操作=插入」與它有什麼關係?

讓我們假設(不是暗示的),我來自另一個網站,我希望發佈後的值到另一個網站sort'a機器人的形式。我的目標並不意味着任何邪惡的意圖,是否我不得不編碼千行信息,如果這是不可行的。

同樣,我不需要來自服務器的響應(但如果有一個可用,那麼它就好了)

+1

你爲什麼用javascript和jQuery標記這個標記? –

回答

0

操作應CURLOPT_POSTFIELDS傳遞。與其他參數一起。

在瀏覽器的情況下會發生跨域問題。而你的代碼似乎是一個PHP服務器端代碼,所以這不應該是一個問題。

0

不知道這是解決方案或問題是不同的,但此行:

rtrim($fields_string,'&'); 

應該是這樣的:

$fields_string = rtrim($fields_string,'&'); 
0
curl_setopt($ch,CURLOPT_POST,TRUE); 

CURLOPT_POST - 布爾值,它不是一個計數的值,它使用後標誌。

代碼200表示連接設置正確並收到來自服務器的響應,但這並不意味着請求的操作已執行。

打印$result請求查看來自Web服務器的響應。

+0

我得到http://127.0.0.1/xampp/作爲響應結果,顯示我本地的xampp主頁,是否正確?根據網站檢查POST值不會推送。 –

+0

您通過請求「https:// www.domain.com/etc/etc」獲取本地頁面? – ShaaD

+0

是的!這正是讓人難以理解的原因...... –

相關問題