本帖最后由 xyhqqaa 于 2013-3-12 11:39 编辑
新手,正在学POST。$oIE = _IECreate("http://www.zt2cn.com/logging.php?action=login", 0, 1, 1, 1)
_IELoadWait($oIE)
$UserName = _IEGetObjById($oIE, "username")
If IsObj($UserName) Then $UserName.value = "oneboy"
$PassWord = _IEGetObjById($oIE, "password3")
If IsObj($PassWord) Then $PassWord.value = "123456789"
$oInputs = _IETagNameGetCollection($oIE, "input")
For $oInput In $oInputs
$buttonclick = _IEGetObjByName($oIE, "loginsubmit")
_IEAction($buttonclick, 'click')
ExitLoop
If @error Then Exit
Next
之前是使用这种方式登陆成功,签到没弄成功,只能手动签到。。。
现在想学习是否能用post登陆签到。但是测试结果很悲惨
测试源码如下,就是不知道哪错了,对比了下前辈们登陆论坛的例子,发现zt2cn跟acn的论坛差不多的样子好像。就拿前辈的例子来借鉴,却发现不能用,囧
Local $user = 'oneboy'
Local $pass = '123456789'
$xmlHttpReq = ObjCreate("MSXML2.XMLHTTP.3.0")
$xmlHttpReq.open("GET", 'http://www.zt2cn.com/space-uid-85916.html', false)
$xmlHttpReq.send()
$Content = BinaryToString($xmlHttpReq.responseBody,1)
$FormHash = StringRegExp($Content,'name="formhash" value="(.*?)\"',3)
If @error = 0 Then
$xmlHttpReq.open("POST",'http://www.zt2cn.com/space-uid-85916.html',false)
$xmlHttpReq.setRequestHeader('Content-Type','application/x-www-form-urlencoded')
$xmlHttpReq.send('formhash='&$FormHash[0]&'&loginfield=username&username='&$user&'&password='&$pass&'&questionid=0&answer=&cookietime=2592000&loginsubmit=%B5%C7%C2%BC')
$Content = BinaryToString($xmlHttpReq.responseBody,1)
$xmlHttpReq.abort()
If StringRegExp($Content,'<p>欢迎您回来,'&$user&'。现在将转入登录前页面。 </p>',0) Then MsgBox(0,"","登录成功!")
EndIf
新手求解,正则不懂..有比较适合新手学习POST的。。。求介绍 |