• 技术文章 >后端开发 >php教程

    模拟post失败 为何

    2016-06-13 11:04:58原创524
    模拟post失败 为什么?
    本帖最后由 h420943302 于 2012-12-11 11:18:30 编辑



    被认证人姓名:

    *(请填写中文字符)


    身份证号:

    *(15或18位数字)






    $url='http://127.0.0.1/think_proj/review/index.php/Curl';
    $cookie_id=' ECS[visit_times]=2;vvxU_2132_saltkey=oAOaIinB;vvxU_2132_lastvisit=1353993212; vvxU_2132_ulastactivity=1fcbqdoGt1V5Yt5eRaTVuz%2Bwjv1qvM09zYAqbDb4KL6RKzWORniM; lzstat_uv=11374893582414091332|923667; PHPSESSID=pcq1alboi8sq3r9n7d32du20m6';
    $post_fields='checkname='.urlencode($name).'&checknum='.$num;
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_COOKIE, $cookie_id);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields);
    $contents = curl_exec($ch);
    curl_close($ch);echo $contents;

    为什么输出来的都是提交前的 画面,一直得不到post后的画面 我哪里写错了。。
    ------解决方案--------------------
    // 模拟请求数据
    Function Curl($url,$postfields,$referer='',$cookie_jar='./cookie.txt'){
    $Cur = curl_init();
    $Opt = Array(
    CURLOPT_URL => $url,
    CURLOPT_HEADER => 1,
    CURLOPT_NOBODY => 1,
    CURLOPT_PORT => 80, //端口
    CURLOPT_POST => 1, //发送一个常规的POST请求,类型为:application/x-www-form-urlencoded,就像表单提交的一样。
    CURLOPT_POSTFIELDS => $postfields,//要传送的所有数据,如果要传送一个文件,[email protected]
    CURLOPT_RETURNTRANSFER => 1,// 获取的信息以文件流的形式返回,而不是直接输出。

    CURLOPT_SSL_VERIFYHOST => 1,// 从证书中检查SSL加密算法是否存在
    CURLOPT_SSL_VERIFYPEER => 0,// 对认证证书来源的检查,0表示阻止对证书的合法性的检查。
    //CURLOPT_COOKIE => GetCook($url),

    //CURLOPT_USERAGENT => "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)",//模拟用户使用的浏览器,在HTTP请求中包含一个"user-agent"头的字符串。
    CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:9.0.1) Gecko/20100101 Firefox/9.0.1',
    CURLOPT_FOLLOWLOCATION => 1,
    CURLOPT_COOKIEJAR => Dirname(__FILE__).$cookie_jar,
    CURLOPT_COOKIEFILE => Dirname(__FILE__).$cookie_jar,
    CURLOPT_REFERER => $referer,
    );
    curl_setopt_array($Cur,$Opt);
    $code = curl_exec($Cur);
    curl_close($Cur);
    unSet($Cur);
    Return $code;
    }

    Function GetCook($url) {
    $Curl=curl_init($url);
    curl_setopt($Curl,CURLOPT_HEADER,1);
    curl_setopt($Curl,CURLOPT_RETURNTRANSFER,1);
    $Cook=curl_exec($Curl);
    curl_close($Curl);
    $Out='';
    preg_match("/ssid\=(.[^;]*)/i",$Cook,$Out);
    Return $Out[1];
    }

    $url = "http://pcik.7di.net/pcik_in";
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:nbsp CURLOPT Curl gt lt
    上一篇:给站点装配arp防火墙是什么意思 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • php对称加解密的5个问答小结• 请问下REWRITE模式开启为什么会没有作用?• PHP session使用经验汇总_PHP教程• PHP验证码类实例_PHP教程• CodeIgniter PHP 显示值截取的值解决方案_PHP教程
    1/1

    PHP中文网