Ответы пользователя по тегу Веб-разработка
  • Управление устройствами IoT через веб-интерфейс (MQTT или HTTP)?

    @remzalp
    Программер чего попало на чем попало
    Raspberry Pi в локалке и хорошо.
    На ней поднять mosquitto с поддержкой веб-сокетов, тогда и из браузера можно напрямую с mqtt общаться
    бонусом можно Node-red поднять, там и логика и просмотр
    Ответ написан
    Комментировать
  • Безопасно ли использовать секретный поддомен для dev версии проекта?

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

    Если авторизация чем-то мешает, то просто можно средствами веб-сервера блокировать доступ не с ип адресов разработчика (.htaccess, nginx.conf), либо организовать cookies, которая будет проверяться перед отдачей контента.
    Ответ написан
    3 комментария
  • Кодировка при curl?

    @remzalp
    Программер чего попало на чем попало
    У Вас проблема в том, что отдаёте кодировку UTF-8, а размещаете текст в кодировке 1251.
    Варианты:
    1. ответ kruslan - меняете кодировку до UTF-8 полученного текста
    2. header('Content-Type: text/html; charset=windows-1251')
    где-то в самом начале кода еще до вывода любого текста.
    Ответ написан
    Комментировать
  • Почему при скачке больших файлов через curl иногда они не докачиваются?

    @remzalp
    Программер чего попало на чем попало
    логируете всё на стороне php (лог ошибок посмотреть)
    берётё tcpdump, сохраняете дамп, анализируете в Wireshark

    одна из очевидных ошибок - пытаетесь всё забрать в оперативную память (отдаёте в переменную), а надо отдавать указатель на файл. CURLOPT_RETURNTRANSFER в случае больших файлов - вреден.

    Пример:
    $out = fopen($local_path.$newfilename,"wb");
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_FILE, $out);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_URL, $file);

    curl_exec($ch);
    curl_close($ch);
    Ответ написан
    Комментировать
  • Php curl multi user requests?

    @remzalp
    Программер чего попало на чем попало
    1. Убедитесь, что удаленный сервер на ваш комп умеет отдавать одновременно несколько страниц. Например апачевский ab:
    ab -c 10 -n 100 http://localhost:8080/
    Аккуратно! Сопоставимо с ДоС атакой по нагрузке, убедитесь, что с той стороны будут рады Вас принять. Будет запрашивать в несколько потоков один и тот же урл.

    2. Убедитесь, что локальному серверу хватает мощности, чтобы просто отдавать страницы в несколько потоков тем же ab

    3. Попробуйте не модулем PHP работать, а вызывать через php.net/manual/ru/function.passthru.php
    НЕБЕЗОПАСНО, только теста ради.

    4. Попробуйте в тестовом скрипте не стартовать сессии (не уверен, что в этом причина, но бывает блокировка).

    И когда исключите всё за пределами cUrl, уже можно будет ковыряться с ним.
    Ответ написан
    3 комментария
  • Как правильно отправить CURL запрос на сайт с капчей?

    @remzalp
    Программер чего попало на чем попало
    Сама идеология HTTP протокола в том, что каждый запрос независимый. Единственный костыль, который позволяет отследить состояние - cookie.

    Вся последовательность работы:
    1. скачать страницу с капчей
    2. Тут же СКАЧАТЬ КАРТИНКУ КАПЧИ - вот тут у вас косяк, потому что вы отдаете урл картинки, она открывается другим браузером - у юзера, с другими куками и другим ип адресом, сохранить её в файл
    3. отдать картинку юзеру с вашего локального сервера, получить от него текст капчи
    4. текст капчи отпостить на форму из п.1

    на всех этапах следим за куками. Wireshark/tcpdump в помощь, позволит заглянуть глубже некуда.

    Функции request() из первого файла более чем достаточно, зачем костылить одноименную такую же функцию во втором случае?
    Ответ написан