2011-09-27 92 views
1

我想通過curllib登錄到我的university webmail頁面。通過curl登錄到郵箱

我的程序下面的代碼來做到這一點:


$url = 'http://eetd.kntu.ac.ir/mda2.asp'; 
$reffer = 'http://sabamail.kntu.ac.ir:3000/WorldClient.dll?View=Main'; 
$agent = "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax)"; 
$cookie_file_path = "/var/www/cookie.txt"; 
$post_fields = 'dom=ee.kntu.ac.ir&usr=hoseini&password=*****'; 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields); 
curl_setopt($ch,CURLOPT_REFERER,$reffer); 
curl_setopt($ch, CURLOPT_USERAGENT, $agent); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file_path); 
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file_path); 
$result = curl_exec($ch); 
curl_close($ch); 
echo $result;

,但它會與顯示出你的密碼是錯誤的再次重定向到1! 哪裏有問題?

+2

問題:你的密碼是錯誤的! – genesis

+0

@genesisφ我使用真正的密碼,但我在這裏用星號代替它:D和如果我的密碼是錯誤的,它應該打印它。 –

+0

您不能相信錯誤響應是準確的。你的任何細節都可能是錯誤的,它可能會有相同的結果。實際上最好不要泄露密碼是錯誤的。確認你的參數,用戶名,密碼,cookies。 –

回答

2

網站說:

<input type="password" name="pd" size="18"> 

設置:

$post_fields = 'dom=ee.kntu.ac.ir&usr=hoseini&password=*****'; 

更改密碼與PD

3

如果您實際檢查登錄頁面的源代碼,您會發現密碼元素名爲pd而不是password

因此,您需要更改此:

$post_fields = 'dom=ee.kntu.ac.ir&usr=hoseini&password=*****'; 

...這樣的:

$post_fields = 'dom=ee.kntu.ac.ir&usr=hoseini&pd=*****'; 

這可能不是唯一的問題,但它肯定是一個問題。

+0

該死的太慢了,用captchar: – Talisin