За последние 24 часа нас посетили 68524 программиста и 10346 роботов. Сейчас ищут 2780 программистов ...

Curl авторизация в одноклассниках, множество авторизаций

Тема в разделе "PHP для новичков", создана пользователем jNevs, 27 окт 2016.

  1. jNevs

    jNevs Новичок

    С нами с:
    27 окт 2016
    Сообщения:
    4
    Симпатии:
    0
    Здравствуйте, уважаемые умельцы. Суть, собственно, в названии темы. Используется следующий код:

    $user_agent = 'Mozilla/5.0 (Windows; U; Windows NT 6.0; ru; rv:1.9.2.13) ' .
    'Gecko/20101203 Firefox/3.6.13 ( .NET CLR 3.5.30729)';

    $login = 'логин';
    $password = 'пароль';
    $ch = curl_init();

    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__) . '/cookie.txt');
    curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__) . '/cookie.txt');
    curl_setopt($ch, CURLOPT_HEADER, true);
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_URL, 'http://www.ok.ru/dk?cmd=AnonymLogin&st.cmd=anonymLogin&tkn=941');

    $post = array(
    'st.redirect' => '',
    'st.posted' => 'set',
    'st.email' => $login,
    'st.password' => $password,
    'st.screenSize' => '',
    'st.browserSize' => '',
    'st.flashVer' => ''
    );

    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post));
    $answer = curl_exec($ch);

    // в ответ получили главную страницу
    echo $answer;

    curl_close($ch);
    В код добавил поиск по переменной $answer на ключевое слово, дабы определить, авторизовался ли пользователь или нет. Если да - вывод сообщения, если нет - die.

    Авторизовался на одном аккаунте, заработало. На хосте создался файл cookie.txt, записались данные. Успешно спарсил Имя, Фамилию и информацию о юзере. Попытался проделать с другим аккаунтом это - не работает. Подскажите пожалуйста, как это исправить? Дабы можно было авторизоваться каждый раз отдельно. Пробовал избавляться от файлов куки путём удаления, но не вышло ничего.
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.213
    Симпатии:
    1.711
    Адрес:
    Молдова, г.Кишинёв
    Запрещено обсуждать парсинг в правилах, используй API
     
  3. jNevs

    jNevs Новичок

    С нами с:
    27 окт 2016
    Сообщения:
    4
    Симпатии:
    0
    Здравствуйте. Спасибо за замечание, но мне не нужен парсер. Я показал пример того, что авторизация прошла успешно и доказательство тому - те данные, которые я получил. Мне необходимо разобраться именно с авторизацией. На другой аккаунт не желает заходить... не могу понять в чём проблема. Может кто-либо даст маленькую наводку?
     
  4. maxmuha

    maxmuha Новичок

    С нами с:
    11 янв 2015
    Сообщения:
    107
    Симпатии:
    0
    Адрес:
    Мурманск
    Для другого акаунта использовать другой куки файл, а то как авторизованного определяет...
    Походу...
     
  5. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.012
    Симпатии:
    1.679
    Адрес:
    :сердА
    Бота пишешь? Это тоже не приветствуется.
     
  6. jNevs

    jNevs Новичок

    С нами с:
    27 окт 2016
    Сообщения:
    4
    Симпатии:
    0
    Пробовал. Не работает.
    --- Добавлено ---
    Нет конечно. В моих планах это вообще не входит. Необходима лишь авторизация для двух-трёх аккаунтов ( как пример ).
     
  7. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.012
    Симпатии:
    1.679
    Адрес:
    :сердА
    Ну а тогда в чем проблема в плане использования API одноклассников? Неужто курлом долбиться об них легче?
    --- Добавлено ---
    У тебя в адресной строке, куда ты шлешь, чего только нет. Например, переменная tkn, которая, стало быть, является неким токеном. Скорее всего, специфичным для каждого пользователя, потому что ты выдрал этот адрес из браузера и, разумеется, смог залогиниться удаленно под пользователем, с которого был заход на момент выдирания адреса. А под другим не можешь.
     
  8. jNevs

    jNevs Новичок

    С нами с:
    27 окт 2016
    Сообщения:
    4
    Симпатии:
    0
    Тему можно закрывать. Разобрался. Для каждого юзера - свой вход.
    --- Добавлено ---
    Спасибо всем за помощь!