这段代码在PHP CURL代码在命令模式下运行正常,但在游览器模式下不行,有IE里面运行程序的时候,怎么也不能生成cookie文件信息....困了我好久啊..<?php
class CURL {
   var $callback = false;

function setCallback($func_name) {
   $this->callback = $func_name;
}

function doRequest($method, $url, $vars) {
   $ch = curl_init();
   curl_setopt($ch, CURLOPT_URL, $url);
   curl_setopt($ch, CURLOPT_HEADER, 1);
   curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
   curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
   curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
   curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
   if ($method == 'POST') {
       curl_setopt($ch, CURLOPT_POST, 1);
       curl_setopt($ch, CURLOPT_POSTFIELDS, $vars);
   }
   $data = curl_exec($ch);
   curl_close($ch);
   if ($data) {
       if ($this->callback)
       {
           $callback = $this->callback;
           $this->callback = false;
           return call_user_func($callback, $data);
       } else {
           return $data;
       }
   } else {
       return curl_error($ch);
   }
}

function get($url) {
   return $this->doRequest('GET', $url, 'NULL');
}

function post($url, $vars) {
   return $this->doRequest('POST', $url, $vars);
}
}$curl = new CURL();
echo $curl->get("http://www.baidu.com");

解决方案 »

  1.   

    这是PHP手册上的代码,直接拷贝下来的,绝对不会有错...但在运行的时候,就是不能保存COOKIE文件,郁闷啊
      

  2.   

    最后打印出来的curl_errno是什么呢?
      

  3.   

    好像是没有任何错误...这个代码在命令模式MS-DOS下运行是完全正常的
      

  4.   

    我查了一下HEADER信息,好像是CURL在游览器模式下运行时,COOKIE功能全部失效了...不知道怎么处理
      

  5.   

    检查web服务器用户是否有写入文件的权限
      

  6.   

    这个应该是PHP的写入权限吧,这些PHP程序能够任意地创建删除文件,应该是有权限的吧
      

  7.   

    我拷贝了命令模式下的HTTP头信息如下:TTP/1.1 200 OK
    Date: Wed, 11 Nov 2009 12:46:32 GMT
    Server: BWS/1.0
    Content-Length: 3520
    Content-Type: text/html;charset=gb2312
    Cache-Control: private
    Expires: Wed, 11 Nov 2009 12:46:32 GMT
    Set-Cookie: BAIDUID=47D0C1B960D3747407E8F2A32566C3C4:FG=1; expires=Wed, 11-Nov-39 12:46:32 GMT; path=/; domain=.baidu.com
    P3P: CP=" OTI DSP COR IVA OUR IND COM "
    在IE窗口模式运行的HTTP头信息却是这样的:HTTP/1.1 200 OK
    Date: Wed, 11 Nov 2009 12:46:16 GMT
    Server: BWS/1.0
    Content-Length: 3520
    Content-Type: text/html;charset=gb2312
    Cache-Control: private
    Expires: Wed, 11 Nov 2009 12:46:16 GMT
     
    这是为什么啊
      

  8.   

    也就是说,窗口模式下运行CURL程序,其中的"Set-Cookie"消失了