Все же вопрос в масштабе проекта, "нормальный код" - понятие растяжимое. Даже у гугла нередко находятся дыры в сервисах, а уж его рабочий процесс все же уровнем повыше, чем у мелких стартапов.
Но да, если апишка состоит из пары десятков роутов, а формат запросов более-менее статический, то обезопасить ее не составляет труда.
Александр Шаповал: Сейчас так и делаю. На тостере подсказали, что SOCKS может резаться хостингом, так как он не нативный HTTP протокол. Поэтому попробую постучать в поддержку. Спасибо за внимание.
Александр Шаповал: В прокси IP:port или IP:port:type. Но здесь это не важно, так как сама переменная прокси используется только как идентификатор в массиве. Чуть раньше она режется и из нее извлекаются данные:
Александр Шаповал: Не работают оба сокса, пятый тоже. В его случае соответственно возникает ошибка "Failed to resolve "сайт" for SOCKS5 connect". HTTP прокси работают.
Александр Шаповал: В том то и проблема, что я понятия не имею какие компоненты нужны для работы SOCKS прокси. Если бы знал, то пытался бы методом тестирования определить их наличие на хостинге (ну или сразу бы написал в тех.поддержку). А перебирать все рабочие компоненты на своем сервере и сравнивать их с теми, что на хостинге - крайне муторно и не эффективно. Надеюсь, что обойдется без этого. К тому же даже это может не помочь, если проблема в банальном недостатке прав или в чем-то подобном.
Огромное спасибо. Сама страница авторизации пускает и без js. Оказалось, что с помощью скрипта на главной странице записываются куки, не найдя которых сервер считает, что у браузера они попросту отключены. Я попросту засунул одну из этих кук в CURLOPT_COOKIE, после чего меня все же пустило. Хотя страница сразу же выбивает ошибку об истекшей сессии, нужный хэш я все же получил.
Примерно так я и сделал, в итоге как-то заставил работать. Однако до сих пор не нашел ключевых элементов, которые нужны для ответа. Забавно, но в итоге я даже полностью закоментировал header, а парс все равно работает. Остальное не трогал. Не исключено, что у них там какая-то проверка на посещение главной страницы.
Юрка Блохин: Увы, теперь Fatal error: Uncaught Error: Call to a member function find() on boolean in D:\os\OpenServer\domains\newtest.ru\index.php:18 Stack trace: #0 D:\os\OpenServer\domains\newtest.ru\index.php(52): GetRWGames(35) #1 {main} thrown in D:\os\OpenServer\domains\newtest.ru\index.php on line 18
У вас этот код исправно работал? Мб что-то у меня.
Юрка Блохин: Первая страница загружается, вторая тоже не пустая, но при выводе второй выбивает ошибку Method simple_html_dom::__toString() must not throw an exception
Не помогает. Проблема не в цикле foreach($data as $game), а в многократном использовании функции. Ошибку выбивает еще на этапе $data = $live->find(".lshpanel"), т.е. до цикла внутри функции даже не доходит.
vit134: Я о том, что ты в цикле с помощью
$html = new simple_html_dom();
$html->load_file($url);
echo $html;
Выгружаешь все на одну страницу, а потом парсишь его с помощью того же load_file.
Ну это очевидно, value сразу же обнуляется. Я решил весьма костыльным методом, загружаю результат парса в 1 файл и после с него же делаю парсинг в основную переменную. Видимо у SimpleHTMLDOM какие-то проблемы с мультипарсом.
Захаров Александр: При наличии Accept-Encoding gzip в хедере возвращает текст со сломанной кодировкой длиной в 21 символ. В случае использования deflate возвращает 0.