ФорумПрограммированиеPHP для идиотов → Авторизация

Авторизация

  • madmax

    Сообщения: 18 Репутация: N Группа: Кто попало

    Spritz Март 7, 2012, 9:19 д.п.

    Всем привет. нужно авторизироватся на этот сайт с моего скрипта. и что бы при авторизации(если правильно ввел пас пароль) в след. раз при написании 127.0.0.1 уже заходило на профайл так как я перед этим залагинился. Адрес что бы оставался 127,0,0,1. Знаю что есть этот модуль/код ну не получается. В пшп дуб дубом, выручите ребята. Скачал DudeCurl

    <?
    require_once 'libs/DudeCurl.class.php';

    header("Content-type: text/html; charset=utf-8");

    $start = microtime(1);
    function debug()
    {
    $params = func_get_args();

    echo "<pre>";
    foreach ($params as $param)
    {
    print_r($param);
    echo "<hr/>";
    }
    global $start;

    echo "generation time: ".(microtime(1)-$start);
    die ();
    }

    $curl = new DudeCurl("http://www.iccup.com/dologin.php");
    $curl->Exec();

    preg_match_all("#name=\"(dsh|GALX)\".*?value=\"(.*?)\"#ism", $curl->GetContent(), $post);
    $post['login'] = "Мой логин";
    $post['passw'] = "Пасс";

    $curl->Init("http://www.iccup.com/login.php");
    $curl->Options->post = $post;
    $html = $curl->Exec();

    preg_match("#39;(.*?)\#39;#ism", $html, $sid);
    $sid = htmlspecialchars_decode($sid[1]);

    $curl->Init($sid);
    $curl->Options->followlocation = 1;

    $html = $curl->Exec();

    echo $html;
    ?>


    Вот сайт. http://ru.iccup.com/login.php
  • Ivan

    Сообщения: 1316 Репутация: N Группа: Адекваты

    Spritz Март 7, 2012, 10:47 д.п., спустя 1 час 28 минут 31 секунду

    Дотеры нубы =)
  • madmax

    Сообщения: 18 Репутация: N Группа: Кто попало

    Spritz Март 7, 2012, 11:05 д.п., спустя 18 минут 21 секунду

    поможете?
  • madmax

    Сообщения: 18 Репутация: N Группа: Кто попало

    Spritz Март 7, 2012, 11:20 д.п., спустя 14 минут 25 секунд

    Смысл в том что бы захидло на сайт под логином/паралем - авторизовалось и запоминало данные действия. И при этом всем использовался мой адрес. И что бы когда я обновлял страницу уже заходило на профайл.
  • madmax

    Сообщения: 18 Репутация: N Группа: Кто попало

    Spritz Март 7, 2012, 2:38 п.п., спустя 3 часа 17 минут 42 секунды

    Не помогает. Сделал так:
    [man]<?
    $url = 'http://www.iccup.com/login/login.php'; // URL сайта на котором будем авторизоваться
    $urlTo = 'http://www.iccup.com/login.php'; // URL на которой будем слать POST данные
    $login = '.Prot'; // Логин
    $passw = '661075551030'; // Пароль
    $post = 'login=.Prot&passw=661075551030' . $login . '&password=' . $passw; // POST данные
    $ch = curl_init(); // Инициализируем сеанс CURL
    curl_setopt($ch, CURLOPT_URL, $url); // Заходим на сайт
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Делаем так, чтобы страница не выдавалась сразу в поток, а можно было ее записать в переменную
    $html = curl_exec($ch); // Имитируем заход на сайт
    curl_setopt($ch, CURLOPT_URL, $urlTo); // Устанавливаем адрес куда будем слать POST данные
    curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt'); // Записываем cookies в файл, чтобы потом можно было их считать
    curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt'); // Теперь читаем cookies с файла
    curl_setopt($ch, CURLOPT_POST, true); // Говорим, что информация будет отправляться методом POST
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post); // Передаем POST данные
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // Иногда бывает, что после отправки данных происходит редирект heaer('Location:…').
    // Этот параметр говорит о то, чтобы мы следовали за ними, а не оставались на месте после отправки данных
    $html = curl_exec($ch); // Записываем пришедшие данные в переменную
    curl_close($ch); // Закрываем сеанс работы CURL
    echo $html; // И вуаля :) Выводим авторизованную страницу
    ?>[/man]
    Авторизуется. Ну в куки не записует нечего(файл) Потом при обновлении 127,0,0,1 заного пытается авторизоваться, ну уже пишет ошибка потому что до этого авторизовались
    Спустя 265 сек.
    <?
    $url = 'http://www.iccup.com/login/login.php'; // URL сайта на котором будем авторизоваться
    $urlTo = 'http://www.iccup.com/login.php'; // URL на которой будем слать POST данные
    $login = '.Prot'; // Логин
    $passw = '661075551030'; // Пароль
    $post = 'login=.Prot&passw=661075551030' . $login . '&password=' . $passw; // POST данные
    $ch = curl_init(); // Инициализируем сеанс CURL
    curl_setopt($ch, CURLOPT_URL, $url); // Заходим на сайт
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Делаем так, чтобы страница не выдавалась сразу в поток, а можно было ее записать в переменную
    $html = curl_exec($ch); // Имитируем заход на сайт
    curl_setopt($ch, CURLOPT_URL, $urlTo); // Устанавливаем адрес куда будем слать POST данные
    curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt'); // Записываем cookies в файл, чтобы потом можно было их считать
    curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt'); // Теперь читаем cookies с файла
    curl_setopt($ch, CURLOPT_POST, true); // Говорим, что информация будет отправляться методом POST
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post); // Передаем POST данные
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // Иногда бывает, что после отправки данных происходит редирект heaer('Location:…').
    // Этот параметр говорит о то, чтобы мы следовали за ними, а не оставались на месте после отправки данных
    $html = curl_exec($ch); // Записываем пришедшие данные в переменную
    curl_close($ch); // Закрываем сеанс работы CURL
    echo $html; // И вуаля :) Выводим авторизованную страницу
    ?>
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz Март 7, 2012, 3:13 п.п., спустя 35 минут 34 секунды

    madmax, лови дотер. я добрый сегодня.

    <?php
    error_reporting(E_ALL & ~E_NOTICE);
    require_once 'libs/DudeCurl.class.php';

    header("Content-type: text/html; charset=utf-8");

    define("LOGIN", 'хуйтебе');
    define("PASSWORD", 'и тебе');

    $curl = new DudeCurl("http://ru.iccup.com/login/login.php");
    $curl->Exec();
    $curl->Init("http://ru.iccup.com/login/gologin.php");
    $curl->Options->post = array(
    'login' => LOGIN,
    'passw' => PASSWORD,
    'dologin' => "Login"
    );
    $curl->Exec();

    $curl->Init("http://ru.iccup.com/settings.html");
    $html = $curl->Exec();
    die($html);
    Сапожник без сапог
  • madmax

    Сообщения: 18 Репутация: N Группа: Кто попало

    Spritz Март 8, 2012, 1:02 д.п., спустя 9 часов 48 минут 34 секунды

    Благодорю мастер. Вы мастер. Спасибо,спасибо
  • madmax

    Сообщения: 18 Репутация: N Группа: Кто попало

    Spritz Март 8, 2012, 1:16 д.п., спустя 14 минут 31 секунду

    А не подскажите как это все сделать, только что бы после выполнения все функци ишла сыль не на сетинг, а исполнялась в файл куки, и сохранялась там. Возможно не харашо обьяснил, ну я думаю вы поняли.
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz Март 8, 2012, 1:21 д.п., спустя 4 минуты 36 секунд

    madmax, тебе надо куки получить чтоли список?
    Сапожник без сапог
  • madmax

    Сообщения: 18 Репутация: N Группа: Кто попало

    Spritz Март 8, 2012, 3:55 д.п., спустя 2 часа 34 минуты 24 секунды

    <?
    $url = 'http://ru.iccup.com/login/login.php'; // URL сайта на котором будем авторизоваться
    $urlTo = 'http://ru.iccup.com/login/gologin.php'; // URL на которой будем слать POST данные
    $login = 'Логин'; // Логин
    $passw = 'Пасс'; // Пароль
    $post = 'Тут что поставить?' . $login . '&password=' . $passw; // POST данные
    $ch = curl_init(); // Инициализируем сеанс CURL
    curl_setopt($ch, CURLOPT_URL, $url); // Заходим на сайт
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Делаем так, чтобы страница не выдавалась сразу в поток, а можно было ее записать в переменную
    $html = curl_exec($ch); // Имитируем заход на сайт
    curl_setopt($ch, CURLOPT_URL, $urlTo); // Устанавливаем адрес куда будем слать POST данные
    curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt'); // Записываем cookies в файл, чтобы потом можно было их считать
    curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt'); // Теперь читаем cookies с файла
    curl_setopt($ch, CURLOPT_POST, true); // Говорим, что информация будет отправляться методом POST
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post); // Передаем POST данные
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // Иногда бывает, что после отправки данных происходит редирект heaer('Location:…').
    // Этот параметр говорит о то, чтобы мы следовали за ними, а не оставались на месте после отправки данных
    $html = curl_exec($ch); // Записываем пришедшие данные в переменную
    curl_close($ch); // Закрываем сеанс работы CURL
    echo $html; // И вуаля :) Выводим авторизованную страницу
    ?>

    тут что-то не правильно ввел. немогу разобратся.
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz Март 8, 2012, 4:05 д.п., спустя 9 минут 22 секунды

    тут что-то не правильно ввел. немогу разобратся.

    ну это я смотреть не буду.
    Спустя 65 сек.
    из дуд курла получить их массивом можно так.

    print_r($curl->Cookies->GetAll());
    Сапожник без сапог

Пожалуйста, авторизуйтесь, чтобы написать комментарий!