PHP curl关于异步提交的问题

joebnb 2014-06-30 05:27:47
今天看了个教程,关于curl模拟登陆的,按照教程能够顺利登陆form提交的网站

然后自己想动手试试,于是找了个网站试验了下...结果跪了,网站是异步提交的,就是他们用POST还是get的看不懂...
希望版主能帮我改改,程序

连接地址是这个:http://www.xinshangmeng.com
这个是异步的js:
http://www.xinshangmeng.com/xsm2/compress/index-all.js?v=2014052300
这个事JS代码排版的工具:
http://tool.chinaz.com/Tools/JsFormat.aspx


<?php

$url='http://www.xinshangmeng.com/xsm2/index.html?v=20140430';
$cookie_file=tempnam('./temp','cookie');
$post_fileds='username=1111&password=1111';


$ch = curl_init($url);
curl_setopt($ch,CURLOPT_HEADER,0);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,0);
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_COOKIEJAR,$cookie_file);
curl_setopt($ch,CURLOPT_POSTFIELDS,$post_fileds);
curl_exec($ch);
curl_close($ch);
?>


谢谢啦
...全文
325 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
joebnb 2014-07-01
  • 打赏
  • 举报
回复
引用 7 楼 xuzuning 的回复:
用你提供的用户名和口令在登陆页登录时会有用户名非法的提示 你还打算让我去注册一个用户吗?这也太无聊了吧?
貌似私信发不了啊,这个账号和密码是带权限的,怎么给你?
joebnb 2014-07-01
  • 打赏
  • 举报
回复
引用 7 楼 xuzuning 的回复:
用你提供的用户名和口令在登陆页登录时会有用户名非法的提示 你还打算让我去注册一个用户吗?这也太无聊了吧?
账号密码已经私信给你了。还请注意保密
xuzuning 2014-07-01
  • 打赏
  • 举报
回复
用你提供的用户名和口令在登陆页登录时会有用户名非法的提示 你还打算让我去注册一个用户吗?这也太无聊了吧?
joebnb 2014-07-01
  • 打赏
  • 举报
回复
引用 4 楼 xuzuning 的回复:
这个网站在登录时用到验证码,基本无解
我在别人博客上看到他们从curl获取验证码的方法是先curl进行一次访问set cookie然后把获取到的图片进行截取,然后在自己的页面再输入验证码,最后再用curl把输入的验证码和之前的cookie进行post http://www.maben.com.cn/archives/618.html 可是他用javascript提交,还对密码做了处理...我还没达到把javascript的代码翻译成php的水平。。。。 所以希望能教我如何模拟异步登陆
joebnb 2014-07-01
  • 打赏
  • 举报
回复
引用 4 楼 xuzuning 的回复:
这个网站在登录时用到验证码,基本无解
可是在清空cookie和缓存以后第一次登陆是不用验证码的,您能按照不用验证码的方式教教我么? 我对异步提交一点都摸不着,想看看代码照猫画虎
xuzuning 2014-07-01
  • 打赏
  • 举报
回复
这个网站在登录时用到验证码,基本无解
  • 打赏
  • 举报
回复
额.. 帮你顶。 我连cURL都不会, 所以麻烦你能帮我看下我的这个问题吗http://bbs.csdn.net/topics/390824224 谢谢
joebnb 2014-06-30
  • 打赏
  • 举报
回复
貌似valc是验证码的意思,希望版主大大能教我异步提交而不是教我把密码用MD5()一次直接提交= =
joebnb 2014-06-30
  • 打赏
  • 举报
回复
     $("#loginform").submit(function() {
username = $.trim($username.val());
var password = $.trim($password.val());
var valc = $.trim($valcode.val());
if (username == "") {
alert("璇疯緭鍏ョ敤鎴峰悕锛�");
$username.focus();
return false;
}
if (password == "") {
alert("璇疯緭鍏ュ瘑鐮侊紒");
$password.focus();
return false;
}
if ($(".valcode-area").hasClass("valcodeHide")) {} else {
if (valc == "") {
alert("璇疯緭鍏ラ獙璇佺爜锛�");
$valcode.focus();
return false;
}
}
password = hex_md5(password);
password = hex_md5(password + valc);

var data = new Object();
data.j_username = username;
data.j_password = password;
data.j_valcode = valc;
//澶勭悊鍙樻洿鐢ㄦ埛鐧诲綍
var puserId = getCookie("usercomcookieId");

if (puserId != null && puserId != '' && puserId != 'null') {
puserId = puserId.split(',')[0];
if (puserId != username.toUpperCase()) {
var cguid = getCookie("myguid1234567890");
data.j_puserId = puserId;
data.j_guid = cguid;
}
}
$.ajaxRequest({
url: _ST + "/users/dologin/up",
type: "post",
dataType: "jsonp",
jsonp: "jsonp",
data: data,
success: loginComplete,
error: loginError
});
return false;
});


我用fiddler抓取了页面POST
发现提交表单如下:
这里j_username是根据上面这段javascript生成的...求解如何解决这样的问题,让curl也懂javascript提交

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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