За последние 24 часа нас посетили 20788 программистов и 1135 роботов. Сейчас ищут 294 программиста ...

Застрял на этапе авторизации

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

Метки:
Статус темы:
Закрыта.
  1. kamas

    kamas Новичок

    С нами с:
    27 дек 2021
    Сообщения:
    1
    Симпатии:
    0
    Не получается пройти авторизацию сайта, перепробовал несколько вариантов не пойму в чём ошибка, прошу подсказать

    bootstrap.php
    Код (Text):
    1. <?php
    2. date_default_timezone_set("Europe/Moscow");
    3.  
    4. use Unirest\Request;
    5.  
    6. require __DIR__ . '/vendor/autoload.php';
    7. require __DIR__ . '/util.php';
    8.  
    9. foreach (glob(__DIR__ . '/functions/*.php') as $file) {
    10.     require $file;
    11. }
    12.  
    13. $cli = new League\CLImate\CLImate;
    14. $request = new Request;
    15.  
    16. define("SIGN_IN_URL", "http://tiwar.ru/?sign_in=1");
    17. define("AUTH_URL", "http://tiwar.ru");
    18. define("BASE_URL", "http://tiwar.ru");
    19. define("ARENA", "http://tiwar.ru/arena/");

    bot.php
    Код (Text):
    1. <?php
    2.  
    3. require __DIR__ . '/bootstrap.php';
    4.  
    5. $LOCATION = 'Главная';
    6.  
    7. if (!isAuth()) {
    8.     auth('Херовим', '123456789');
    9. } else {
    10.     say('Найдена активная сессия, пропуск авторизации...');
    11. }
    12.  
    13. arena();

    isAuth.php
    Код (Text):
    1. <?php
    2.  
    3. function isAuth()
    4. {
    5.     global $request;
    6.  
    7.     $response = request()->get(BASE_URL)->raw_body;
    8.  
    9.     update($response);
    10.    
    11.     return stripos($response, 'Настройки') !== false;
    12. }

    auth.php
    Код (Text):
    1. <?php
    2.  
    3. function auth($login, $pass)
    4. {
    5.     global $request;
    6.  
    7.     $response = request()->post(AUTH_URL, null, ['login' => $login, 'pass' => $pass])->raw_body;
    8.    
    9.     update($response);
    10.  
    11.     if (stripos($response, 'Настройки') !== false) {
    12.         say("Успешная авторизация", 'lightGreen');
    13.     } else {
    14.         say("Ошибка при авторизации", 'lightRed');
    15.         die;
    16.     }
    17. }

    arena.php
    Код (Text):
    1. <?php
    2.  
    3. function arena()
    4. {
    5.     global $request, $LOCATION;
    6.  
    7.     $LOCATION = 'Арена';
    8.  
    9.     $response = request()->get(ARENA)->raw_body;
    10.  
    11.     update($response);
    12.  
    13.     $link = get_arena_attack_link($response);
    14.  
    15.     $countAttack = 1;
    16.     while (true) {
    17.         say("Атака #{$countAttack}");
    18.         $url = BASE_URL . "{$link}";
    19.         $response = request()->get($url)->raw_body;
    20.         $continue = print_arena_result($response);
    21.         update($response);
    22.         $link = get_arena_attack_link($response);
    23.  
    24.         if (!$continue) {
    25.            // sleep(60 * 15);
    26.         } else {
    27.             $countAttack++;
    28.         }
    29.     }
    30.  
    31.     say('Арена стоп');
    32.  
    33. }
    34.  
    35. function get_arena_attack_link($response)
    36. {
    37.     preg_match_all("/<a class='btn' href='\/arena\/(.+?)'>/", $response, $link);
    38.     $link = data_get($link, '1.0', false);
    39.  
    40.     return "/arena/{$link}";
    41. }
    42.  
    43. function print_arena_result($response)
    44. {
    45.     if (stripos($response, 'Победа') !== false) {
    46.         preg_match_all("/Награда:(.+?)<br\/>/", $response, $rewards);
    47.         $rewards = data_get($rewards, '1.0', false);
    48.  
    49.         if ($rewards) {
    50.             $rewards = trim(strip_tags($rewards));
    51.             $rewards = "Награда: {$rewards}";
    52.         }
    53.  
    54.         say("Победа! {$rewards}", "lightGreen");
    55.         return true;
    56.     } elseif (stripos($response, 'Для нападения надо минимум') !== false) {
    57.         preg_match_all("/<span class=\"dred\">(.+?)<\/span>/", $response, $label);
    58.         $label = trim(strip_tags(data_get($label, '1.0', "Не хватает жизни/энергии.")));
    59.         say($label, "lightRed");
    60.         return false;
    61.     } else {
    62.         return say("Проигрыш.", "lightRed");
    63.         return true;
    64.     }
    65. }
     
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.816
    Симпатии:
    735
    Адрес:
    Татарстан
    даже нечего сказать.....

    function isAuth() что делает? зачем проверяет слово Настройки ...непонятно

    PHP:
    1. function auth($login, $pass)
    2. {
    3.     global $request;
    4.  
    5.     $response = request()->post(AUTH_URL, null, ['login' => $login, 'pass' => $pass])->raw_body;
    6.  
    7.     update($response);
    что делает функция .. хз? судя по всему куда-то что-то отправляет
    а потом по наличию ф ответе слова Настройка определяет авторизовался ли )))
    куча непонятностей короче...
     
  3. Makar41

    Makar41 Новичок

    С нами с:
    16 авг 2021
    Сообщения:
    10
    Симпатии:
    1
    чаще всего проблема с этой функцией , так что фиксить нужно )
     
  4. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.548
    Симпатии:
    1.754
    Разобрал код. Попытка авторизации на чужом сайте. Запрещено правилом форума №7. Нет апи - нечего там авторизироваться. Тему закрываю.
     
Статус темы:
Закрыта.