За последние 24 часа нас посетили 53292 программиста и 1765 роботов. Сейчас ищут 1476 программистов ...

Curl & cookie, Почему не работают?

Тема в разделе "Прочие вопросы по PHP", создана пользователем MaximumNew, 17 янв 2007.

  1. MaximumNew

    MaximumNew Активный пользователь

    С нами с:
    17 янв 2007
    Сообщения:
    5
    Симпатии:
    0
    понимаю что тема изъедена, но все же:

    скрипт:
    <?
    include("const.php");

    global $PROXY;

    $parseURL = parse_url($LOGINURL);

    $ch = curl_init();

    curl_setopt($ch, CURLOPT_PROXY,$PROXY);
    curl_setopt($ch, CURLOPT_COOKIEJAR, "/cookie.cookie");
    curl_setopt($ch, CURLOPT_URL,"адрес сайта");
    curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, "login=1&username=______&password=1234567&autologin=on");

    ob_start();
    curl_exec ($ch);
    ob_end_clean();

    curl_close ($ch);

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_PROXY,$PROXY);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch, CURLOPT_COOKIEFILE, "/cookie.cookie");
    curl_setopt($ch, CURLOPT_URL,"http://____________/bb/privmsg.php?mode=post&u=9349");
    curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
    curl_setopt ($ch, CURLOPT_HEADER, 1);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, "");
    $result = curl_exec ($ch);
    echo $result;
    curl_close ($ch);

    ?>

    на локальном хосте все работает,т.е. обращется к сайту авторизуется - сохраняет куки - потом используя их работает.
    при заливании на сервер(чтоб запускать удаленно) не видит куки-файл. что может быть???
     
  2. simpson

    simpson Активный пользователь

    С нами с:
    11 фев 2006
    Сообщения:
    1.650
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    на удаленном сервере есть такой файл?
     
  3. MaximumNew

    MaximumNew Активный пользователь

    С нами с:
    17 янв 2007
    Сообщения:
    5
    Симпатии:
    0
    скрипт на удаленном сервере в папке bot
    файл куки создается и обновляется в этой папке
     
  4. DarkElf

    DarkElf Активный пользователь

    С нами с:
    22 окт 2006
    Сообщения:
    1.632
    Симпатии:
    0
    мм, попробуй так: "./cookie.cookie"
     
  5. MaximumNew

    MaximumNew Активный пользователь

    С нами с:
    17 янв 2007
    Сообщения:
    5
    Симпатии:
    0
    тоже самое
    вот header:
    HTTP/1.1 302 Found Date: Wed, 17 Jan 2007 12:57:59 GMT Content-Type: text/html; charset=windows-1251 Connection: close Server: Apache Set-Cookie: bbc_data=a%3A2%3A%7Bs%3A11%3A%22autologinid%22%3Bs%3A0%3A%22%22%3Bs%3A6%3A%22userid%22%3Bi%3A-1%3B%7D; expires=Thu, 17-Jan-2008 12:57:59 GMT; path=/; domain=.___.com Set-Cookie: bbc_sid=2affcab73c2ca8aa64e119229064b9cf; path=/; domain=.____.com Vary: Accept-Encoding,User-Agent Location: http://_______.com/bb/login.php?redirec ... 229064b9cf

    отправляет на редирект, т.е. на авторизацию
     
  6. CoolShake

    CoolShake Активный пользователь

    С нами с:
    23 июл 2006
    Сообщения:
    44
    Симпатии:
    0
    Кстати, вопрос в тему :)
    Как получить куки из полученного HTTP-ответа сервера?
    Из "Set-Cookie: "..
     
  7. eduha

    eduha Активный пользователь

    С нами с:
    8 ноя 2006
    Сообщения:
    278
    Симпатии:
    0
    Адрес:
    Караганда
    Взять из массива $_COOKIE
     
  8. CoolShake

    CoolShake Активный пользователь

    С нами с:
    23 июл 2006
    Сообщения:
    44
    Симпатии:
    0
    Нет массива, есть ответ сервера в переменной $headers..
     
  9. eduha

    eduha Активный пользователь

    С нами с:
    8 ноя 2006
    Сообщения:
    278
    Симпатии:
    0
    Адрес:
    Караганда
    Тьфу ты, на название топика не посмотрел. Извиняюсь :)
     
  10. eduha

    eduha Активный пользователь

    С нами с:
    8 ноя 2006
    Сообщения:
    278
    Симпатии:
    0
    Адрес:
    Караганда
    Тогда примерно так:

    PHP:
    1. <?php
    2. $tmp = explode( "\r\n", $headers );
    3.  
    4. foreach( $tmp as $header ) {
    5.  
    6.     if( subStr( $header, 0, 11 ) == 'Set-Cookie:' ) {
    7.  
    8.         $cookie = explode( ';', subStr( $header, 12 ), 2 );
    9.         list( $name, $value ) = explode( '=', $cookie[0] );
    10.  
    11.         $cookies[ $name ] = urldecode( $value );
    12.  
    13.     }
    14.  
    15. }
    16.  
    17. ?>
     
  11. MaximumNew

    MaximumNew Активный пользователь

    С нами с:
    17 янв 2007
    Сообщения:
    5
    Симпатии:
    0
    на удаленной машине(где не работает):
    libcurl/7.12.1 OpenSSL/0.9.7c zlib/1.1.4

    на локальной(где все ок):
    libcurl/7.14.0 OpenSSL/0.9.6m zlib/1.2.3

    Вопрос: отличие версии curl может влиять на работу CURLOPT_COOKIEFILE ???
     
  12. MaximumNew

    MaximumNew Активный пользователь

    С нами с:
    17 янв 2007
    Сообщения:
    5
    Симпатии:
    0
    Проблема решена:
    на хостинге создана папка темповая с правами 777 все кукисы записываются и счтываются оттуда.
    Иногда правда прокси тормозит, но я думаю дело в прокси.
    (Отключаешь все ок).

    Вопрос другой теперь возник: при долгой работе скрипта хостинг его обрубает. я так понимаю, что в php.ini задано макс время работы скрипта. Как обойти данную проблему??? (чтоб скрипт работал независимо от настроек хостинга(временных))
     
  13. scor

    scor Активный пользователь

    С нами с:
    8 фев 2007
    Сообщения:
    22
    Симпатии:
    0
    попробуй ini_set('max_execution_time',0);
     
  14. Shawnr

    Shawnr Активный пользователь

    С нами с:
    19 сен 2007
    Сообщения:
    6
    Симпатии:
    0
    Чувак. сравни свой код с моим:

    PHP:
    1.  
    2. <?php
    3. $cookies = array();
    4. preg_match_all("|Set-Cookie:[\s]*([a-z0-9_-]+=[^\n;]+);|i",$header,$cookies);
    5. return isset($cookies[1]) ? $cookies[1] : false;
    6. ?>
    7.  
    зачем так усложнять? :)
     
  15. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    MaximumNew
    Форматируйте код! Тегами! Иначе расстрел.