首页 / PHP / curl模拟找回密码出现不能理解的错误
curl模拟找回密码出现不能理解的错误
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了curl模拟找回密码出现不能理解的错误,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含8692字,纯文字阅读大概需要13分钟。
内容图文
![curl模拟找回密码出现不能理解的错误](/upload/InfoBanner/zyjiaocheng/155/1ee358d7a1ff4ce5ae3b05390e1a50d3.jpg)
curl模拟找回密码(华夏保险)直接找回密码页面 http://www.ihxlife.com/forget...
输入手机号15677748704(测试)获取验证码 直接会提示验证码错误
但先进入官网后通过官网链接进入页面能获取验证码
通过代码实现 先访问主页面获取cookie 再利用获取的cookie访问找回密码页面更新cookie
然后获取验证码 ——————失败 短信验证码发送失败
public function forgetPwdIndex(){
$uKey = 'HuaXia' . date("YmdHis") . uniqid();
$cookieVerify = APP_COOKIE . "/" . $uKey . ".tmp";
$url = 'http://www.ihxlife.com/';//登录主页的url来获取cookie
$this->getCookie($url, $cookieVerify);//获取到登录页面的cookie
//获取找回密码页的cookie
$pwdUrl='http://www.ihxlife.com/forget/forgetPwd';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $pwdUrl);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:40.0) Gecko/20100101 Firefox/40.0');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_TIMEOUT, 120); // 设置超时限制防止死循环
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Encoding:gzip, deflate',
'Accept-Language:zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3',
'Connection:keep-alive',
'Host:www.ihxlife.com'));
curl_setopt($ch, CURLOPT_REFERER,'http://www.ihxlife.com/');
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookieVerify);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookieVerify);
curl_exec($ch);
curl_close($ch);
//echo $cookieVerify."
";
$this->assign('key', $uKey);//传到页面中 在页面中post该数据 拼组cookie文件
$this->display();
}
public function sendPwdMobileCode(){
if(I('post.key')==''||I('post.mobile')==''){
echo json_encode(array('status'=>'10001','message'=>'参数错误'));
die;
}
$requireUrl='http://www.ihxlife.com/sms/smsCode_Send';//请求地址
$postData='mobile='.I('post.mobile').'&busiType=10019&effectiveTime=180';
$cookieVerify = APP_COOKIE . "/" . I('post.key') . ".tmp";
echo $cookieVerify."
";
$referer='http://www.ihxlife.com/forget/forgetPwd';
echo $this->curlPost($requireUrl,$postData,$cookieVerify,$referer,30,true);
}
public function getCookie($url, $cookieVerify)
{
echo $cookieVerify."
";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:40.0) Gecko/20100101 Firefox/40.0');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Encoding:gzip, deflate',
'Accept-Language:zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3',
'Connection:keep-alive',
'Host:www.ihxlife.com'));
curl_setopt($ch, CURLOPT_TIMEOUT, 120); // 设置超时限制防止死循环
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookieVerify);
curl_exec($ch);
curl_close($ch);
}
public function curlPost($url, $post_fields, $cookieVerify, $referer = '', $timeOut = 30, $header = '')
{
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1);
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:40.0) Gecko/20100101 Firefox/40.0');
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
if ($referer) {
curl_setopt($curl, CURLOPT_REFERER, $referer);
} else {
curl_setopt($curl, CURLOPT_AUTOREFERER, 1);
}
if ($header) {
//curl_setopt($curl, CURLOPT_HTTPHEADER, array('Host:www.ihxlife.com', 'X-Requested-With:XMLHttpRequest'));
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Encoding:gzip, deflate',
'Accept-Language:zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3',
'Content-Type:application/x-www-form-urlencoded; charset=UTF-8',
'Connection:keep-alive',
'Host:www.ihxlife.com',
'X-Requested-With:XMLHttpRequest'));
}
curl_setopt($curl, CURLOPT_POSTFIELDS, $post_fields);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_COOKIEFILE, $cookieVerify);
curl_setopt($curl, CURLOPT_COOKIEJAR, $cookieVerify);
curl_setopt($curl, CURLOPT_TIMEOUT, $timeOut);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$resultData = curl_exec($curl); // 执行操作
curl_close($curl);
return $resultData;
}
回复内容:
curl模拟找回密码(华夏保险)直接找回密码页面 http://www.ihxlife.com/forget...
输入手机号15677748704(测试)获取验证码 直接会提示验证码错误
但先进入官网后通过官网链接进入页面能获取验证码
通过代码实现 先访问主页面获取cookie 再利用获取的cookie访问找回密码页面更新cookie
然后获取验证码 ——————失败 短信验证码发送失败
public function forgetPwdIndex(){
$uKey = 'HuaXia' . date("YmdHis") . uniqid();
$cookieVerify = APP_COOKIE . "/" . $uKey . ".tmp";
$url = 'http://www.ihxlife.com/';//登录主页的url来获取cookie
$this->getCookie($url, $cookieVerify);//获取到登录页面的cookie
//获取找回密码页的cookie
$pwdUrl='http://www.ihxlife.com/forget/forgetPwd';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $pwdUrl);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:40.0) Gecko/20100101 Firefox/40.0');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_TIMEOUT, 120); // 设置超时限制防止死循环
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Encoding:gzip, deflate',
'Accept-Language:zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3',
'Connection:keep-alive',
'Host:www.ihxlife.com'));
curl_setopt($ch, CURLOPT_REFERER,'http://www.ihxlife.com/');
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookieVerify);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookieVerify);
curl_exec($ch);
curl_close($ch);
//echo $cookieVerify."
";
$this->assign('key', $uKey);//传到页面中 在页面中post该数据 拼组cookie文件
$this->display();
}
public function sendPwdMobileCode(){
if(I('post.key')==''||I('post.mobile')==''){
echo json_encode(array('status'=>'10001','message'=>'参数错误'));
die;
}
$requireUrl='http://www.ihxlife.com/sms/smsCode_Send';//请求地址
$postData='mobile='.I('post.mobile').'&busiType=10019&effectiveTime=180';
$cookieVerify = APP_COOKIE . "/" . I('post.key') . ".tmp";
echo $cookieVerify."
";
$referer='http://www.ihxlife.com/forget/forgetPwd';
echo $this->curlPost($requireUrl,$postData,$cookieVerify,$referer,30,true);
}
public function getCookie($url, $cookieVerify)
{
echo $cookieVerify."
";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:40.0) Gecko/20100101 Firefox/40.0');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Encoding:gzip, deflate',
'Accept-Language:zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3',
'Connection:keep-alive',
'Host:www.ihxlife.com'));
curl_setopt($ch, CURLOPT_TIMEOUT, 120); // 设置超时限制防止死循环
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookieVerify);
curl_exec($ch);
curl_close($ch);
}
public function curlPost($url, $post_fields, $cookieVerify, $referer = '', $timeOut = 30, $header = '')
{
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1);
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:40.0) Gecko/20100101 Firefox/40.0');
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
if ($referer) {
curl_setopt($curl, CURLOPT_REFERER, $referer);
} else {
curl_setopt($curl, CURLOPT_AUTOREFERER, 1);
}
if ($header) {
//curl_setopt($curl, CURLOPT_HTTPHEADER, array('Host:www.ihxlife.com', 'X-Requested-With:XMLHttpRequest'));
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Encoding:gzip, deflate',
'Accept-Language:zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3',
'Content-Type:application/x-www-form-urlencoded; charset=UTF-8',
'Connection:keep-alive',
'Host:www.ihxlife.com',
'X-Requested-With:XMLHttpRequest'));
}
curl_setopt($curl, CURLOPT_POSTFIELDS, $post_fields);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_COOKIEFILE, $cookieVerify);
curl_setopt($curl, CURLOPT_COOKIEJAR, $cookieVerify);
curl_setopt($curl, CURLOPT_TIMEOUT, $timeOut);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$resultData = curl_exec($curl); // 执行操作
curl_close($curl);
return $resultData;
}
问题解决了。这个网站在加载主页登录模块的验证码时更新了cookie。我之前的思路一直在要加载页面要加载页面 然后没有注意到这里 只要再访问下主页验证码保存更新的验证码就好!
内容总结
以上是互联网集市为您收集整理的curl模拟找回密码出现不能理解的错误全部内容,希望文章能够帮你解决curl模拟找回密码出现不能理解的错误所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。