2011-11-28 71 views
2

使用下面的腳本,我試圖登錄到網頁,然後執行一個通常會被按鈕後面的Ajax腳本觸發的帖子。登錄工作正常,但我無法模擬Ajax操作。感謝您的幫助CURL帖子值不起作用

<?php 
ini_set('max_execution_time', 0);  
$submit_url = "LOGINURL"; 

$submit_url2 = "OVERVIEWURL"; 
$postdata = array('action.id' => urlencode('al_regid_162'), 
        'action.component.id' => urlencode('form_aanvraag_filter'), 
        'action.section.id' => urlencode('section1')); 

$curl = curl_init(); 
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC) ; 
curl_setopt($curl, CURLOPT_USERPWD, "USERNAME:PASSWORD"); 
curl_setopt($curl, CURLOPT_SSLVERSION,3); 
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); 
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2); 
curl_setopt($curl, CURLOPT_HEADER, false);  
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);  
curl_setopt($curl, CURLOPT_URL, $submit_url); 
$data = curl_exec($curl); 

curl_setopt($curl, CURLOPT_POST, true); 
curl_setopt($curl, CURLOPT_POSTFIELDS, $postdata); 
curl_setopt($curl, CURLOPT_URL, $submit_url2); 
$data = curl_exec($curl); 

print($data); 



curl_close($curl);  
?> 
+1

你有什麼類型的錯誤? – Oyeme

+0

你好Oyeme,我沒有得到一個錯誤。我沒有收到我期望的數據,因爲我認爲Ajax按鈕按下模擬不正確。 – Dennis

+0

嗯,你不能用curl來模擬ajax點擊。用「httplifeheader」你可以看到params和wich方法用於ajax(POST或者GET)。 – Oyeme

回答

0

嘗試這樣做:

 
curl_setopt($ch,CURLOPT_URL,$submit_url2); 
curl_setopt($ch,CURLOPT_POST,count($postdata)); 
curl_setopt($ch,CURLOPT_POSTFIELDS,$postdata); 

希望它可以幫助

+0

嗨Sudhir,不幸的是這並沒有解決這個問題。任何其他想法? – Dennis

1
  1. 1.設置了CURLOPT_FOLLOWLOCATION爲true捲曲腳本。

  2. 使用file_get_contents('your_url/WEBPAGE/pimplus/service');捲曲代碼之後。(僅限GET方法)

+0

if(!file_get_contents('http:// WEBPAGE/pimplus/service/aanvraagoverzicht?action.id = al_regid_162&action.component.id = form_aanvraag_filter&action.section.id = section1&field.aanvraag.filter.status = open&field.aanvraag.filter.sortering = AANVRAAGID')){echo「Error」; }把它放在CURL代碼後面會導致錯誤。 – Dennis

+0

嘗試將此網址添加到瀏覽器欄中。我認爲您的參數無效。 – Oyeme

+0

把它放在瀏覽器中正常工作 – Dennis