开发者社区> 问答> 正文

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

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

展开
收起
杨冬芳 2016-06-21 11:38:05 3411 0
1 条回答
写回答
取消 提交回答
  • IT从业

    拿去用,不谢
    screenshot

    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;
    }
    2019-07-17 19:44:42
    赞同 展开评论 打赏
问答分类:
PHP
问答地址:
问答排行榜
最热
最新

相关电子书

更多
PHP 2017.北京 全球开发者大会——高可用的PHP 立即下载
PHP安全开发:从白帽角度做安全 立即下载
复杂PHP系统性能瓶颈排查及优化 立即下载