[英]Login to website using PHP and CURL
我正在尝试自动登录https://www.myicomfort.com/来检索数据。 尝试了一些发布的示例,但似乎不起作用。 传递用户名和密码时,也许我没有使用正确的字段名称。 有人可以帮忙吗? 还在学习PHP。 谢谢!
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"https://www.myicomfort.com/");
curl_setopt($ch, CURLOPT_COOKIEFILE,1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 120);
curl_setopt($ch, CURLOPT_TIMEOUT, 120);
$post_array = array(
'ctl00$RightContent$txtUserName'=>'xxxname',
'ctl00$RightContent$txtPwd'=>'xxxpassword',
);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_array);
$output = curl_exec($ch);
curl_close($ch);
`
您缺少其他字段。 您可以通过在Chrome中按Ctrl + Shift + I来检查要发送的字段,然后尝试登录。 单击页面,您将看到以下内容:
__LASTFOCUS:
__EVENTTARGET:
__EVENTARGUMENT:
__VIEWSTATE:/wEPDwUKMTczNjcxMDc0Mg9kFgJmD2QWAgIDD2QWBAIDD2QWBAI...
__EVENTVALIDATION:/wEWCAKI/qyXDAKSptf/CwKJn6v3AQKdg7/fBwKNoqOVDAK...
ctl00$RightContent$hdnPwd:
ctl00$RightContent$txtUserName:asfasdfa
ctl00$RightContent$txtPwd:dfasdf
ctl00$RightContent$chkRemember:on
ctl00$RightContent$btnLogin:Log in
也尝试提交那些数据。 完成此操作后,您应该可以登录。
确保使用所有必需的输入字段,对从表单中传输的信息进行网络嗅探,结果是
'__EVENTARGUMENT'
'__EVENTTARGET'
'__EVENTVALIDATION' /wEWCAKI/qyXDAKSptf/CwKJng .. etc
'__LASTFOCUS'
'__VIEWSTATE' /wEPDwUKMTczNjcxMDc0Mg9kFgJmD2QWAg .. etc
'ctl00$RightContent$btnLog...' Log in
'ctl00$RightContent$chkRem...' on
'ctl00$RightContent$hdnPwd'
'ctl00$RightContent$txtPwd' vyvuy
'ctl00$RightContent$txtUse...' iuhgiu
另请参阅此问题 ,我认为他们建议在缺少登录按钮的情况下进行操作
您可以查看该页面的源代码,其中有许多隐藏的输入字段 。 仅提供您的用户名和密码是不够的。
解决方案:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.