За последние 24 часа нас посетили 59187 программистов и 1811 роботов. Сейчас ищут 943 программиста ...

куки в курлах

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

  1. radioedit

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

    С нами с:
    17 апр 2007
    Сообщения:
    19
    Симпатии:
    0
    скрипт заходит на сайт авторизируется, но при переходе на новую страницу этого сайта сведения об авторизации теряются

    вот ф-я на курлах

    function get_content($url, $params="")
    {
    $uagent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)";
    $rurl='http://www.google.com/';

    global $good_proxy;
    if ($good_proxy =='') return 'timeout';
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_REFERER, $rurl);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_USERAGENT, $uagent);
    curl_setopt($ch, CURLOPT_TIMEOUT, 18);
    curl_setopt($ch, CURLOPT_COOKIEFILE, './include_modules/cookies.txt');
    curl_setopt($ch, CURLOPT_COOKIEJAR, './include_modules/cookies.txt');
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_PROXY, $good_proxy);
    if ($params != '')
    {
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
    }
    $content = curl_exec($ch);

    if (curl_errno ($ch) == 0)
    {
    curl_close($ch);
    return $content;
    }
    else
    {
    curl_close($ch);
    return 'timeout';
    }
    }


    есть ли у кого какие соображения на этот счет, буду рад их выслушать,
     
  2. Alekzander

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

    С нами с:
    24 июл 2006
    Сообщения:
    104
    Симпатии:
    0
    Адрес:
    Из поднебесной
    Такая же проблема. Господа кто знает решение данной проблемы напишите!
     
  3. nimistar

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

    С нами с:
    30 май 2007
    Сообщения:
    919
    Симпатии:
    0
    Авторизация пользователя на сайте через сессии:
    1. заходим на сайт и получаем форму авторизации (при этом иницилизируется сессия - которая возможно! записывается в куки)
    2. на основе заполненных полей принимается решение о авторизации пользователя с данными сессии возможно! из куковов)

    соответственно приведенный скрипт реализует только первый этап из двух .... (а то и трех ходов)

    CURLOPT_COOKIEFILE - Название файла, содержащего данные куков. Файл куков может быть в формате Netscape, или только простые заголовки СТИЛЯ HTTP, записанные в файл.
    (я невижеу здесь автоматической обработки куков ... хотя ... просто с этим не экспериментировал ...)

    то есть нужно сначало коснутся формы авторизации и получить сессионные данные ...и потом заслать запрос на авторизацию с посылом полученной сессии ... и потом уже что-либо вытворять на удаленном сайте использую для при этом текущие данные сессии ...

    ЗЫ: жду подтверждения мысли от гуру этого сайта :)!
     
  4. radioedit

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

    С нами с:
    17 апр 2007
    Сообщения:
    19
    Симпатии:
    0
    собственно почему только первая часть.
    отсылаются примерно следующие параметры
    $params= name=myname&mail=mymail@mail.ru&homepage=http://www.google.com&subject=mysybject&form_id=comment_form&op=op&op=Post comment&comment=mycomment

    в куки все нормально записывается т.е. запись примерно такая

    .mobile-erp.ru TRUE / FALSE 1187275518 PHPSESSID 8bc453b110b2dd204d4cbe4f177050cd

    и по большому счету авторизация проходится НО... когда я начинаю действовать дальше уже казалось бы как авторизованный пользователь получаю следующее
    The name you used belongs to a registered user

    Т. е. авторизация теряется.... :cry:

    ПОЧЕМУ?????????