zoukankan      html  css  js  c++  java
  • php 带cookie登陆

    <?php
    /**
     * @version $id
     */
    define('SCRIPT_ROOT',dirname(__FILE__).'/');
    $act = trim($_REQUEST['act']);
    switch($act)
    {
        case 'login':
            // 获取验证码
            $code = trim($_REQUEST['code']);
            
            // $loginParams为curl模拟登录时post的参数
            $loginParams['act'] = 'login';
            $loginParams['password'] = 'chi';
            $loginParams['username'] = '%BD%97%E7%82';
            $loginParams['vcode'] = $code;
            
            // $cookieFile 为加载验证码时保存的cookie文件名 
            $cookieFile = SCRIPT_ROOT.'cookie.tmp';
            
            // $targetUrl curl 提交的目标地址
            $targetUrl = 'http://www.juhutang.com/';
            
            // 参数重置
            $content = curlLogin($targetUrl, $cookieFile, $loginParams);
            echo $content;
        break;
        case 'authcode':
            // Content-Type 验证码的图片类型
            header('Content-Type:image/png');
            showAuthcode('http://www.xxxx.com/imagecode.aspx');
            exit;
        break;
    }
    
    /**
     * 模拟登录
     * @param string $url 提交到的地址
     * @param string $cookieFile 保存cookie的文件
     * @param string $loginParams 提交时要post的参数
     * @return string $content 返回的内容
     */
    function curlLogin($url, $cookieFile, $loginParams)
    {
        $ch = curl_init($url);
        curl_setopt($ch,CURLOPT_COOKIEFILE, $cookieFile); //同时发送Cookie
        curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch,CURLOPT_POST, 1);
        curl_setopt($ch,CURLOPT_POSTFIELDS, $loginParams); //提交查询信息
        $content = curl_exec($ch);
        curl_close($ch);
        return $content;
    }
    
    /**
     * 加载目标网站图片验证码
     * @param string $authcode_url 目标网站验证码地址
     */
    function showAuthcode( $authcode_url )
    {
        $cookieFile = SCRIPT_ROOT.'cookie.tmp';
        $ch = curl_init($authcode_url);
        curl_setopt($ch,CURLOPT_COOKIEJAR, $cookieFile); // 把返回来的cookie信息保存在文件中
        curl_exec($ch);
        curl_close($ch);
    }
    ?>
    <iframe src="?act=authcode" style=' 100px; height:40px ' frameborder=0 ></iframe>
    <form>
    <input type="hidden" name="act" value="login">
    <input type="text" name="code" />
    <input type="submit" name="submit" >
    </form>

    代码非原创。

  • 相关阅读:
    透视投影矩阵的推导
    选择排序
    递归运动函数的实现
    插入排序
    基本光照模型
    顶点法向量从物体坐标系变换到世界坐标系
    Phong和BlinnPhong光照模型
    unity3d使用脚本保存屏幕截图
    【转】C++11常用特性的使用经验总结
    右手坐标系下LookAt视图矩阵的推导
  • 原文地址:https://www.cnblogs.com/php411161555/p/3899765.html
Copyright © 2011-2022 走看看