找回密码
 加入
搜索
查看: 7031|回复: 3

[AU3基础] 关于post登陆论坛

[复制链接]
发表于 2013-3-12 11:35:12 | 显示全部楼层 |阅读模式
悬赏20金钱已解决
本帖最后由 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的。。。求介绍
发表于 2013-3-12 11:35:13 | 显示全部楼层
本帖最后由 星雨朝霞 于 2013-3-12 13:46 编辑
;论坛密码转换MD5
$sc = ObjCreate("ScriptControl")
$sc.Language="Javascript"

$username='****'
$password='******'
$Islogin=False

$formhash_Conetent=XMLHTTP('http://www.zt2cn.com/logging.php?action=login&infloat=yes&handlekey=login&inajax=1&ajaxtarget=fwin_content_login')
If Not @error Then
        If StringInStr($formhash_Conetent,'欢迎您回来')=0 Then
                $formhash=StringRegExp($formhash_Conetent,"formhash=(.*?)'",3)
                If Not @error Then
                        $sc.AddCode(XMLHTTP('http://www.zt2cn.com/forumdata/cache/md5.js?iiA'))
                        $password=$sc.Eval('hex_md5("'&$password&'")')
                        $Post_data='formhash='&$formhash[0]&'&referer=index.php&loginfield=username&username='&$username&'&password='&$password&'&questionid=0&answer='
                        $login_Conetent=XMLHTTP('http://www.zt2cn.com/logging.php?action=login&loginsubmit=yes&floatlogin=yes&inajax=1',1,'POST',$Post_data)
                        If StringInStr($login_Conetent,'欢迎您回来') Then
                                $Islogin=True
                        Else
                                $Islogin=False
                        EndIf
                EndIf
        Else
                $Islogin=True
        EndIf
        
        If $Islogin=True Then
                
                $postbox_Conetent=XMLHTTP('http://www.zt2cn.com/plugin.php?identifier=dps_sign&module=sign&operation=qiandao&infloat=1&inajax=1',1,'POST','qdxq=fd&qdmode=3&todaysay=&fastreply=1')
                If Not @error Then
                        $postbox_Text=StringRegExp($postbox_Conetent,'postbox">([\W\w]*?)<',3)
                        If Not @error Then
                                TrayTip('征途兔之窝>>每日签到',$postbox_Text[0],10)
                                Sleep(10000)
                        EndIf
                EndIf
        EndIf
EndIf


Func XMLHTTP($webURL,$webresponse=1,$webMode='GET',$webdate='')
Global $WinHttp
$WinHttp = ObjCreate("Microsoft.XMLHTTP")
$SinkObject=objevent('AutoIt.Error',"MyErrFunc")
$WinHttp.Open ($webMode, $webURL,False)
$WinHttp.setRequestHeader ("User-Agent", "Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0 QQDownload/1.7")
If $webMode='POST' Then
  $WinHttp.setRequestHeader ("Content-Type", "application/x-www-form-urlencoded")
  $WinHttp.Send ($webdate)
Elseif $webMode='GET' Then
  $WinHttp.setRequestHeader ("Content-Type", "text/xml")
  $WinHttp.Send ()
EndIf
If $webresponse=1 Then
  Return $WinHttp.responseText
ElseIf $webresponse=0 Then
  Return BinaryToString($WinHttp.responseBody)
EndIf
EndFunc
 
Func MyErrFunc()
;出错处理函数
SetError(1)
EndFunc

评分

参与人数 1金钱 +50 收起 理由
xyhqqaa + 50 谢谢草哥

查看全部评分

 楼主| 发表于 2013-3-12 16:07:52 | 显示全部楼层
回复 2# 星雨朝霞


    正在慢慢消化。。。。谢谢草哥。。。话说好多理解不懂- -!!
发表于 2014-7-17 23:18:00 | 显示全部楼层
POST操作,学习。。。。。。。。。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-22 01:41 , Processed in 0.074620 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表