2013-08-19 26 views
0

我想從this page檢索表單。我設置了cookie併發送了表單數據,但是我返回的是無效頁面。php捲曲試圖檢索頁面,但不工作

$ckfile = tempnam ("/tmp", "CURLCOOKIE"); 


$ch = curl_init ("http://services.www.gov.qa/TV/process/TV/TV_TrafficViolation?lang=en&notloggedin=true"); 
curl_setopt ($ch, CURLOPT_COOKIEJAR, $ckfile); 
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true); 
curl_exec ($ch); 


$ch = curl_init ("http://services.www.gov.qa/TV/continue/TV/TV_TrafficViolation/2/CPN"); 
curl_setopt ($ch, CURLOPT_COOKIEFILE, $ckfile); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_POST, true); 

$data = array(
    'sopEngineTabRef' => '1376927282615', 
    'act' => 'byCarPlateNo', 
    'txiVehicleNumber' => '', 
    'mnuVehicleType' => 'PRV', 
    'vehicleNumberNType' => '12332/PRV', 
    'searchCriteria' => '1', 
    'searchCriteria' => 'qatariUser1', 
    'vehicleNumberAndType' => '12332/PRV', 
); 

curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 
echo $output = curl_exec($ch); 
$info = curl_getinfo($ch); 
curl_close($ch); 
+0

的「此頁」鏈接似乎去到一個交易不成功的頁面。另外,我試着把你的代碼封裝在php標籤中並打開它,它肯定會從那裏返回一些東西,它只是一個由Web服務器發送的錯誤頁面。但是,它確實包含很多相對於其他頁面的鏈接,並且它們的服務器上的代碼沒有在本地解析。 –

+0

你必須從這個頁面開始:http://services.www.gov.qa/TV/process/TV/TV_TrafficViolation?lang = en&notloggedin = true,然後點擊按板號搜索。 – user1936504

回答

0

它看起來對我來說,一個問題是,你正在返回頁面中包含一噸,你將不得不解析出和解釋的jQuery/JS/Ajax內容 - 捲曲基本上只是要顯示HTML。就像同樣它返回項目:

<script type="text/javascript" src="/TV/hukoomi/scripts/hukoomi_combined_js.js"></script> 

你的哪個腳本將嘗試在當前本地目錄找到,這將需要的完整路徑被改寫,即http://services.www.gov.qa/TV/hukoomi/scripts/hukoomi_combined_js.js

+0

我重寫了刪除404s。仍然得到相同的結果。它好像表單數據不會進入該頁面。 – user1936504

+0

它看起來像會話cookie正在文件中創建。但是,當我在乾淨的瀏覽器中進入第一頁時,嘗試點擊另一個鏈接即可獲得過期的會話頁面。我想知道你是否需要從另一個頁面開始才能獲得有效的會話? –

+0

是的,沒錯。我剛剛意識到您必須先打開此頁面:http://portal.www.gov.qa/wps/portal/services/settlementoftrafficviolation 我之前鏈接的頁面位於此iframe的內部。如何修改代碼以從主頁面和iframe中獲取Cookie? – user1936504