>  기사  >  백엔드 개발  >  컬이 비밀번호 검색을 시뮬레이션할 때 이해할 수 없는 오류가 발생합니다.

컬이 비밀번호 검색을 시뮬레이션할 때 이해할 수 없는 오류가 발생합니다.

WBOY
WBOY원래의
2016-08-08 09:06:381132검색

curl은 비밀번호 검색(Hua Xia Insurance)을 시뮬레이션하고 비밀번호 페이지 http://www.ihxlife.com/forget을 직접 검색합니다...
인증 코드를 받으려면 휴대폰 번호 15677748704(테스트)를 입력하고, 바로 인증코드 오류가 뜹니다
컬이 비밀번호 검색을 시뮬레이션할 때 이해할 수 없는 오류가 발생합니다.
그런데 먼저 공식 홈페이지에 들어가신 후 공식 홈페이지 링크를 통해 페이지에 들어가 인증코드를 받으세요

컬이 비밀번호 검색을 시뮬레이션할 때 이해할 수 없는 오류가 발생합니다.

코드를 통해 달성했습니다. 먼저 메인 페이지를 방문하여 쿠키를 받은 다음, 얻은 쿠키를 사용하여 비밀번호 검색 페이지를 방문하여 쿠키를 업데이트하세요.
그런 다음 인증 코드를 받지 못했습니다. —————— SMS 인증코드 실패

<code> 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."<br>";
        $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."<br>";
    $referer='http://www.ihxlife.com/forget/forgetPwd';
    echo $this->curlPost($requireUrl,$postData,$cookieVerify,$referer,30,true);
}
    
</code>
<code>       public function getCookie($url, $cookieVerify)
    {
        echo $cookieVerify."<br>";
        $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;
}</code>

답글 내용:

curl은 비밀번호 검색(Hua Xia Insurance)을 시뮬레이션하고 비밀번호 페이지 http://www.ihxlife.com/forget을 직접 검색합니다...
인증 코드를 받으려면 휴대폰 번호 15677748704(테스트)를 입력하고, 바로 인증코드 오류가 뜹니다
컬이 비밀번호 검색을 시뮬레이션할 때 이해할 수 없는 오류가 발생합니다.
그런데 먼저 공식 홈페이지에 들어가신 후 공식 홈페이지 링크를 통해 페이지에 들어가 인증코드를 받으세요

컬이 비밀번호 검색을 시뮬레이션할 때 이해할 수 없는 오류가 발생합니다.

코드를 통해 달성하세요. 먼저 메인 페이지를 방문하여 쿠키를 받은 후, 획득한 쿠키를 사용하여 비밀번호 검색 페이지를 방문하여 쿠키를 업데이트하세요.
그런 다음 인증 코드를 받지 못했습니다. ——————전송에 실패했습니다. SMS 인증코드가 실패했습니다

<code> 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."<br>";
        $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."<br>";
    $referer='http://www.ihxlife.com/forget/forgetPwd';
    echo $this->curlPost($requireUrl,$postData,$cookieVerify,$referer,30,true);
}
    
</code>
<code>       public function getCookie($url, $cookieVerify)
    {
        echo $cookieVerify."<br>";
        $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;
}</code>

문제가 해결되었습니다. 본 웹사이트는 홈페이지 로그인 모듈에 대한 인증코드를 로드할 때 쿠키를 업데이트했습니다. 이전에는 페이지를 로드해야겠다는 생각이 들었는데, 업데이트된 인증 코드를 저장하려면 홈페이지 인증 코드를 다시 방문해야 한다는 것을 눈치채지 못했습니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.