通过curl登录到webmail

时间:2011-09-27 16:04:16

标签: php curl

我想通过curllib登录我的university webmail页面。

我编写以下代码来执行此操作:


$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 个答案:

答案 0 :(得分:3)

如果您确实检查了登录页面的源代码,您会发现密码元素名为pd而不是password

因此你需要改变这个:

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

......对此:

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

这可能不是唯一的问题,但肯定是一个问题。

答案 1 :(得分:2)

网站说:

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

你设置:

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

将密码更改为pdf>