recherche

Maison  >  Questions et réponses  >  le corps du texte

javascript - php如何用curl模拟登录http://www.lazpw.cn/user/login.php

php如何用curl模拟登录http://www.lazpw.cn/user/login.php这个。

巴扎黑巴扎黑2895 Il y a quelques jours889

répondre à tous(2)je répondrai

  • 巴扎黑

    巴扎黑2017-04-10 17:10:50

    拿去用,不谢

    if (! is_writable(__DIR__)) {
        exit('目录不可写,exit');
    }
    $cookie_file = 'cookies.txt';
    $username = 'ty0716';
    $password = 'test12345';
    $post = array(
        'username' => $username,
        'password' => $password,
        'expire' => '',
        'url' => '',
        'time' => time(),
        'act' => 'do_login'
    );
    // username=ty0716&password=qaz&expire=&url=&time=1456104638534&act=do_login
    $login_url = 'http://www.lazpw.cn/plus/ajax_user.php';
    $login = post($login_url, http_build_query($post), $cookie_file);
    if ($login == 'err') {
        exit('用户名或密码错误');
    }
    $login_log_page = get('http://www.lazpw.cn/user/personal/personal_user.php?act=login_log', $cookie_file);
    
    echo iconv("UTF-8", "GB2312//IGNORE", $login_log_page);
    
    unlink($cookie_file);
    
    function post($url, $data, $cookie_file)
    {
        // 初始化
        $curl = curl_init($url);
        // 不输出header头信息
        curl_setopt($curl, CURLOPT_HEADER, 0);
        // 保存到字符串而不是输出
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie_file);
        curl_setopt($curl, CURLOPT_POST, 1);
        // 请求数据
        curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
        // 是否抓取跳转后的页面
        curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
        $req = curl_exec($curl);
        curl_close($curl);
        return $req;
    }
    
    function get($url, $cookie_file)
    {
        // 初始化
        $curl = curl_init($url);
        // 不输出header头信息
        curl_setopt($curl, CURLOPT_HEADER, 0);
        curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie_file);
        // 保存到字符串而不是输出
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        // 是否抓取跳转后的页面
        curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
        $req = curl_exec($curl);
        curl_close($curl);
        return $req;
    }
    

    répondre
    0
  • 怪我咯

    怪我咯2017-04-10 17:10:50

    首先使用chrome的调试功能,分析登陆表单提交的内容;
    使用curl的post提交表单 CURLOPT_POST CURLOPT_POSTFIELDS
    并保存cookie CURLOPT_COOKIEJAR CURLOPT_COOKIEFILE;

    `

    répondre
    0
  • Annulerrépondre