有的网站会用不同的域名设置COOKIE,这样好像CURL就会漏掉一些COOKIE。例如CURL访问网站www.xxx.com首页时,它会立即设置一个属于xxx.com的COOKIE,在首页填写用户名确定后转到www.xxx.com/next.php,这时会设置一个属于www.xxx.com的COOKIE。请问这两个COOKIE要怎么成功获取呢?CurlCookie域名

解决方案 »

  1.   

    CURLOPT_COOKIE
    设定HTTP请求中“Set-Cookie:”部分的内容。
    CURLOPT_COOKIEFILE
    包含cookie信息的文件名称,这个cookie文件可以是Netscape格式或者HTTP风格的header信息。
    CURLOPT_COOKIEJAR
    连接关闭以后,存放cookie信息的文件名称
      

  2.   


    谢谢你的回复访问首页时,首页会生成属于xxx.com的COOKIE,CURL取不到这个COOKIE:    $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, 'http://www.xxx.com');
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
        curl_setopt($ch, CURLOPT_COOKIEJAR, $cookieFile);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        $contents = curl_exec($ch);
        curl_close($ch);填写用户名确定后,转到第二页时,会生成属于www.xxx.com的COOKIE,CURL可以成功取得这个COOKIE:    $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, 'http://www.xxx.com/next.php');
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
        curl_setopt($ch, CURLOPT_COOKIEFILE, $cookieFile);
        curl_setopt($ch, CURLOPT_COOKIEJAR, $cookieFile);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        $contents = curl_exec($ch);
        curl_close($ch);为什么CURL访问http://www.xxx.com的时候,www.xxx.com会生成一个属于xxx.com的COOKIE呢?这会不会就是CURL取不到COOKIE的原因?
      

  3.   

    具体情况要具体分析,你最好给出真实的 url
      

  4.   

    已经解决了,原来是JS设置的,谢谢你。还有一个问题想问你一下:curl_exec()之后就立即curl_close()和curl_exec()之后暂停5分钟再curl_close(),那对于被curl的网站来说,会有什么不同呢?