Curl CURLOPT_COOKIEJAR

sunchess

Новичок
Curl CURLOPT_COOKIEJAR

Не могу понять, в мане написано, что при выставлении
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
Все кукисы должны сохраняться в этот файл, но почемуто не сохраняет, в чем может быть причина?
ниже полный код

PHP:
$ch = curl_init();
          curl_setopt($ch, CURLOPT_URL, $url);
          curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
          curl_setopt($ch, CURLOPT_COOKIEJAR,'cookie.txt');
          curl_setopt($ch, CURLOPT_HEADER, TRUE);
          //if isset ref
          if($ref!='')
            curl_setopt($ch, CURLOPT_REFERER, $ref);
          //if isset cookie
          if($cookie!='')
             curl_setopt($ch, CURLOPT_COOKIE, $cookie);
          curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)');
          curl_setopt($ch, CURLOPT_TIMEOUT, 20);
          $content = curl_exec($ch);
          print_r(curl_getinfo($ch));
          if(curl_error($ch))
               {
                echo "\n\ncURL error:" . curl_error($ch);
                echo "\n\ncURL error:" . curl_errno($ch);
                //$flagerrcurl = true;
               }
          curl_close($ch);
 

partizan

Новичок
Я так делаю:
PHP:
function get_cookies($header){
           $cookies="";
           $rows=explode("\n",$header);
           for ($i=0;$i<count($rows);$i++) {
              $header=$rows[$i];
              if (substr($header,0,11)=='Set-Cookie:') {
                  $pos=strpos($header,';');
                  if ($pos)
                     $header=substr($header,12,$pos-12); else
                     $header=substr($header,12,strlen($header)-13);
                  if ($cookies!="") $cookies.=';';
                  $cookies.=$header;
                  };
              };
           return $cookies;
     };
 

440hz

php.ru
sunchess

а права на этот файл и эту директорию стоят соответствующие, надеюсь?

8)

взял твой код как есть.

Код:
gw(root):#>php curl.php
Array
(
    [url] => [url]http://440hz.ru[/url]
    [content_type] => text/html; charset=windows-1251
    [http_code] => 200
    [header_size] => 561
    [request_size] => 135
    [filetime] => -1
    [ssl_verify_result] => 0
    [redirect_count] => 0
    [total_time] => 0.097066
    [namelookup_time] => 0.002522
    [connect_time] => 0.006039
    [pretransfer_time] => 0.006194
    [size_upload] => 0
    [size_download] => 7234
    [speed_download] => 74526
    [speed_upload] => 0
    [download_content_length] => 0
    [upload_content_length] => 0
    [starttransfer_time] => 0.08695
    [redirect_time] => 0
)
gw(root):#>lsl cookie.*
-rw-r--r--  1 root  www  254 18 июл 18:05 cookie.txt
gw(root):#>cat cookie.txt
# Netscape HTTP Cookie File
# [url]http://www.netscape.com/newsref/std/cookie_spec.html[/url]
# This file was generated by libcurl! Edit at your own risk.

440hz.ru        FALSE   /       FALSE   1184767710      BILLING_LNG     ru
440hz.ru        FALSE   /       FALSE   1153318110      OOPS_SID        q2nwhdkaertqz6zb
 

sunchess

Новичок
440hz, спасибо что протестил, тестирую в win, все функции открытия записи и тд работают нормально, а именно curl не записывает...
буду думать...
 

dolcom

Новичок
Хоть уже и поздно, но лучше поздно чем никада=) допиши через точку $_SERVER['DOCUMENT_ROOT'] к имени файла 'cookie.txt'. Т.е. так: $_SERVER['DOCUMENT_ROOT'].'/cookie.txt' тогда файлик сохранится в папке со скриптом)
 
Сверху