ASP模拟POST 提交验证码错误问题。请教大神解决办法!

zmh2519 2016-04-20 05:31:37
小弟本地架设了WEB:
http://192.168.1.100/1.asp
想远程POST提交登录www.xxx.com/login.asp。但是这个login.asp需要验证验证码。小弟怎么试。验证码都是错误的。
请问大神们问题出在哪里?
代码如下
http://192.168.1.100/1.asp

<form name='leftForm' id="leftForm" method='post' action='http://192.168.1.101/post.asp' onSubmit="javascript:return checkLogin();">
<table width="500" border="0" cellspacing="5" cellpadding="0">
<tr>
<td align="right">帐号:</td>
<td><input type='text' name='rName' id='rName' class='w120' maxlength='10' /></td>
</tr>
<tr>
<td align="right">密码:</td>
<td><input type='password' name='password' id='password' class='w120 h16' maxlength='12' /></td>
</tr>
<tr>
<td height="35"><div align="center">验证码:
<input name="yzm" type="text" id="yzm" style="font-family: Verdana; font-size: 12px; width: 41; height: 21; border: 1px solid #336600; padding-left: 3px; padding-right: 3px; padding-top: 2px" size="20" maxlength="4" />
<img src="http://www.xxxxx.com/code.asp" alt="换一张" id="safecode" border="0" onclick="reloadcode()" style="cursor:pointer;padding:2px 8px 0pt 3px;" /><a href="javascript:reloadcode()">换一张</a></div></td>
</tr>
<tr>
<td></td>
<td>
<input type="submit" class="button" value="登录" />
</td>
</tr>
</table>
</form>

这里提交的表单为本地WEB的http://192.168.1.100/post.asp
而验证码是远程WEB。http://www.xxxxx.com/code.asp
-------------------------------------------------------------------------
http://192.168.1.100/post.asp 代码如下


<%
。。。。。。。。。。。。。。。。。。省略
On error resume next '容错处理

Function GetBody(ips)
Set https = Server.CreateObject("MSXML2.XMLHTTP")
With https
.Open "Post", "http://www.xxx.com/login.asp", False
.setRequestHeader "referer","http://www.xxx.com/login.asp"'
.setRequestHeader "Content-Type","application/x-www-form-urlencoded"
.Send "username="&username&"&pass="&password&"&yzm="&yzm&""
GetBody = .ResponseBody
End With
GetBody = BytesToBstr(GetBody,"GB2312")
Set https = Nothing
End Function

Function BytesToBstr(body,Cset)
dim objstream
set objstream = Server.CreateObject("adodb.stream")
objstream.Type = 1
objstream.Mode =3
objstream.Open
objstream.Write body
objstream.Position = 0
objstream.Type = 2
objstream.Charset = Cset
BytesToBstr = objstream.ReadText
objstream.Close
set objstream = nothing
End Function

Response.Write GetBody("")
%>

而提交是正确的。验证码都是错误
...全文
321 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Dogfish 2016-04-23
  • 打赏
  • 举报
回复
先生成一个session,然后和提交的对比。 记得要没空格。所有最后trim一下。
tiankong_bear 2016-04-21
  • 打赏
  • 举报
回复
说句实话, 楼上那些“最简单”的方法其实也不简单。。。 没有一定底层开发经验基本没戏 放弃吧,孩子。。
  • 打赏
  • 举报
回复
引用 6 楼 zmh2519 的回复:
[quote=引用 5 楼 showbo 的回复:] 验证码当然可以,但是你怎么识别是个问题。验证码是要将内容识别出来后发送的,不是直接发图片内容就行的
我是直接 填写远程的验证码地址。<img src="http://www.xxxxx.com/code.asp" 然后手动填写。传给/post.asp 进行处理的,然后传给/post.asp 的验证码。全部都是错的。网上查了好多资料。说什么要COOKIE一起传递啥的[/quote] 或者最简单的方法就是你去他们网站登录后,用开发工具获取登录成功后cookie值,直接发送获取到cookie值到他们网站就可以访问需要验证的页面信息了。。省略掉模拟登录那部分,
  • 打赏
  • 举报
回复
引用 6 楼 zmh2519 的回复:
[quote=引用 5 楼 showbo 的回复:] 验证码当然可以,但是你怎么识别是个问题。验证码是要将内容识别出来后发送的,不是直接发图片内容就行的
我是直接 填写远程的验证码地址。<img src="http://www.xxxxx.com/code.asp" 然后手动填写。传给/post.asp 进行处理的,然后传给/post.asp 的验证码。全部都是错的。网上查了好多资料。说什么要COOKIE一起传递啥的[/quote] 看连接里面的示例,你人工输入需要用asp请求验证码,然后输出验证码图片,同时用session存储验证码返回的cookie,提交验证码后再次发送验证码和相关账户信息,连带上次请求验证码地址获取到的存储在session的cookie一起发送到验证接口,然后判断是否验证成功,验证成功还需要更新一次cookie存储到session中,然后之后后续的请求都附带cookie就可以获取到需要登录后才能看到的内容了
  • 打赏
  • 举报
回复
要识别验证码才行,这个用asp搞基本没戏,用asp.net之类的,而且要底层的xhr对象发送cookie asp模拟网站登录采集需要验证的页面信息
slwsss 2016-04-20
  • 打赏
  • 举报
回复
验证码由服务端获取再输出到浏览器 还要传递cookie
zmh2519 2016-04-20
  • 打赏
  • 举报
回复
引用 5 楼 showbo 的回复:
验证码当然可以,但是你怎么识别是个问题。验证码是要将内容识别出来后发送的,不是直接发图片内容就行的
我是直接 填写远程的验证码地址。<img src="http://www.xxxxx.com/code.asp" 然后手动填写。传给/post.asp 进行处理的,然后传给/post.asp 的验证码。全部都是错的。网上查了好多资料。说什么要COOKIE一起传递啥的
zmh2519 2016-04-20
  • 打赏
  • 举报
回复
引用 2 楼 showbo 的回复:
要识别验证码才行,这个用asp搞基本没戏,用asp.net之类的,而且要底层的xhr对象发送cookie asp模拟网站登录采集需要验证的页面信息
大神。asp无法实现传送验证码吗??
  • 打赏
  • 举报
回复
引用 4 楼 zmh2519 的回复:
[quote=引用 2 楼 showbo 的回复:] 要识别验证码才行,这个用asp搞基本没戏,用asp.net之类的,而且要底层的xhr对象发送cookie asp模拟网站登录采集需要验证的页面信息
大神。asp无法实现传送验证码吗??[/quote] 验证码当然可以,但是你怎么识别是个问题。验证码是要将内容识别出来后发送的,不是直接发图片内容就行的
zmh2519 2016-04-20
  • 打赏
  • 举报
回复
引用 1 楼 slwsss 的回复:
验证码由服务端获取再输出到浏览器 还要传递cookie
大神。那具体要怎么弄呢?
内容概要:本文针对无刷直流电机驱动的电子机械制动(EMB)执行器,建立了考虑Stribeck摩擦特性的非线性耦合动力学模型,并在Simulink环境中完成了系统级仿真分析。研究综合集成了电机动力学、齿轮传动机构与制动执行机构的动力学特性,构建了高保真的机电一体化系统模型。重点引入Stribeck摩擦模型以精确描述低速工况下执行器内部存在的静摩擦、粘滞摩擦与库仑摩擦之间的过渡行为,有效提升了系统在启停、反向运动等瞬态过程中的动态响应仿真精度。通过多工况仿真验证了模型的有效性,能够准确反映摩擦引起的爬行、滞后与定位误差等非线性现象,为EMB系统的高性能控制算法设计(如摩擦补偿、滑模控制)与结构优化提供了高可信度的仿真平台。; 适合人群:从事汽车电子制动系统、电机驱动控制、机电系统建模与仿真研究的研究生、科研人员及工程技术人员,需具备扎实的机械动力学、自动控制理论基础和MATLAB/Simulink仿真能力。; 使用场景及目标:①用于高精度电子机械制动系统的设计验证与性能预测;②为消除摩擦非线性影响的先进控制策略(如自适应控制、智能控制)提供精确的被控对象模型;③深入探究Stribeck摩擦等非线性因素对系统动态性能(如响应延迟、稳态误差)的作用机理; 阅读建议:读者应结合提供的Simulink模型文件,深入剖析Stribeck摩擦模块的数学实现与参数辨识方法,建议通过改变输入指令(如阶跃、正弦)和负载条件进行对比仿真,以直观理解非线性摩擦对系统动态特性的影响。

28,403

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧