За последние 24 часа нас посетили 18576 программистов и 1614 роботов. Сейчас ищут 1792 программиста ...

Подскажите как доделать код

Тема в разделе "Сделайте за меня", создана пользователем kimxan, 14 янв 2016.

  1. kimxan

    kimxan Новичок

    С нами с:
    14 янв 2016
    Сообщения:
    9
    Симпатии:
    0
    Код для автоматической авторизации на сайт https://my.mobiletool.ru/
    Вот, что выдает браузер

    Код (PHP):
    1. <?
    2. //О том, что мы авторизовались будем судить по наличию формы logout
    3. function isAuth( $data ){
    4.   return preg_match('#<form[^>]+id="logout"#Usi',$data);
    5. }
    6.  
    7. function request($url,$post = 0){
    8.   $ch = curl_init();
    9.   curl_setopt($ch, CURLOPT_URL, $url ); // отправляем на
    10.   curl_setopt($ch, CURLOPT_HEADER, 0); // пустые заголовки
    11.   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // возвратить то что вернул сервер
    12.   curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); // следовать за редиректами
    13.   curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);// таймаут4
    14.   curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    15.   curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__).'/cookie.txt'); // сохранять куки в файл
    16.   curl_setopt($ch, CURLOPT_COOKIEFILE,  dirname(__FILE__).'/cookie.txt');
    17.   curl_setopt($ch, CURLOPT_POST, $post!==0 ); // использовать данные в post
    18.   if($post)
    19.     curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
    20.   $data = curl_exec($ch);
    21.   curl_close($ch);
    22.   return $data;
    23. }
    24.  
    25. $url = 'https://my.mobiletool.ru/login/';
    26. $data = request('https://my.mobiletool.ru/');
    27. include 'simple_html_dom.php';
    28. $data = str_get_html($data);
    29. $auth = array(
    30.     'login'=>'vip123.qwe@mail.ru',
    31.     'pass'=>'qazxswedcvfr', 
    32.     'csrf_token'=>$data->find('input[name="csrf_token"]',0)->value
    33. );
    34. $data->clear();
    35. unset($data);
    36. echo isAuth(request($url,$auth))?'Success':'Failed';
    37. ?>
    Браузер выдает:
    Подскажите, пожалуйста, что не так я делаю. Уже 5 день мучаюсь

    Подсказка от модератора:
    Любой код или текст конфигурации пишите между тегом [code=php] и [/code].
    Используйте отступы в коде для форматирования текста.
    Это помогает быстрее понять вас, увеличивает шанс на получение ответа.
    Что выделять? Например: PHP, HTML, CSS, JavaScript, SQL, XML, .htaccess, ini, регулярные выражения, код шаблонизаторов, результаты array/object dump и т. д.
     
  2. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    Re: Автоматическая авторизация на сторонний сайт

    код сам себя иклюдит поэтому идет повторная попытка объявления тех же функций что уже объявлены.
     
  3. kimxan

    kimxan Новичок

    С нами с:
    14 янв 2016
    Сообщения:
    9
    Симпатии:
    0
    Можешь помочь реализовать задуманное?
     
  4. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    могу. даже опыт есть - viewtopic.php?p=405114#p405114
    но мы тут в разделе для новичков поэтому ты хочешь чтоб мы тебя чему-то научили. в твоем случае мне кажется нужно с нуля начать изучать алгоритмизацию программирования. ну то есть чтоб твой код бы последовательной логикой действий от входа до выхода а не чёрт знает как намешанной кашей с итоговым замыканием на саму себя. например можешь как по ссылке выше - организовать статический класс и в нем через статические метода организовать отдельные запросы к апи.

    Добавлено спустя 7 минут 31 секунду:
    надо было не в джоб а во фриланс. не знаешь что такое "работа"?
     
  5. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Перенёс и эту тему.