首页 > 后端开发 > php教程 > 你能实现模拟POST提交登录http://bbs.lampbrother.net/ 这个网站吗??

你能实现模拟POST提交登录http://bbs.lampbrother.net/ 这个网站吗??

WBOY
发布: 2016-06-06 20:46:43
原创
1766 人浏览过

无论你用什么方法都行?只要能写出代码,腾讯面试题啊

回复内容:

无论你用什么方法都行?只要能写出代码,腾讯面试题啊

<code class="lang-php"><?php $post_data = http_build_query(array(
    'step' => 2,
    'lgt' => 2,    
    'forward' => '',
    'pwuser' => 'hehe@163.com',
    'pwpwd' => '123456',
    'question' => 0,
    'customquest' => '',
    'answer' => '',
    'hideid' => 0,
    'submit' => '',
    'jumpurl' => 'http://bbs.lampbrother.net/index.php',
));
$login_url = 'http://bbs.lampbrother.net/login.php';
$user_agent = ' Mozilla/5.0 (Windows NT 6.1; WOW64; rv:30.0) Gecko/20100101 Firefox/30.0';

$cookie_file = dirname(__FILE__).'/cookie.txt';
touch($cookie_file);

$ch = curl_init();
curl_setopt_array($ch, array(
    CURLOPT_COOKIESESSION => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HEADER => false,
    CURLOPT_VERBOSE => false,
    CURLOPT_COOKIEJAR => $cookie_file,
    CURLOPT_COOKIEFILE => $cookie_file,
    CURLOPT_POSTFIELDS => $post_data,
    CURLOPT_POST => true,
    CURLOPT_USERAGENT => $user_agent,
    CURLOPT_URL => $login_url,
));
$response = curl_exec($ch);
curl_close($ch);

$response = convert2utf8($response);

$login_status = preg_match('#<p>]*>您已经顺利登录</p>#u', $response, $match) ? 'success': 'failed';
echo 'login ', $login_status;

/* functions */
function detectEncoding($str) {
    return mb_detect_encoding($str, array('UTF-8', 'CP936', 'BIG5', 'ASCII'));
}

function convert2gbk($str) {
    return convertEncoding($str, 'CP936');
}

function convert2utf8($str) {
    return convertEncoding($str, 'UTF-8');
}

function convertEncoding($str, $to_encoding) {
    if ($to_encoding !== ($encoding = detectEncoding($str))) {
        $str = mb_convert_encoding($str, $to_encoding, $encoding);
    }

    return $str;
}
</code>
登录后复制
相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板