Ответы пользователя по тегу Веб-разработка
  • Лучше выбрать Symfony или Laravel для новичка и виртуального хостинга?

    sergiks
    @sergiks Куратор тега Веб-разработка
    ♬♬
    Цель: изучить оба фреймворка и уметь с ними работать.

    Сделать проект на то и на сём.

    Начать проще с Laravel, он чуть доступнее, проще, в красивой яркой упаковке. В то же время он построен на компонентах Illuminate, которые зачастую под капотом используют компоненты Symfony. Например, см. зависимости консольного компонента Laravel.

    Другой проект попробуйте сделать на Symfony. Увидите, как много общего, похожего с уже знакомым Laravel.

    Как часто здесь бывает, ответ на вопрос, на самом деле:
    «хватит уже задавать никчёмные вопросы, берись и делай».
    Ответ написан
    Комментировать
  • Сайт с доступом только по https. Плюсы и минусы?

    sergiks
    @sergiks Куратор тега Веб-разработка
    ♬♬
    Chrome, начиная с версии 90, а сейчас актуальная 109, по умолчанию пробует в первую очередь протокол HTTPS (источник новости)

    В Firefox появился режим https-only, который вообще запрещает любые подключения по незащищённому HTTP, если вручную не добавили сайт в исключения.

    Так что решение админов не открывать HTTP вообще — немного радикально, игнорирует убогих с устаревшими системами-браузерами, приведёт к потере пары посетителей, но в целом, некритично.
    Ответ написан
  • С помощью чего сделать шаблон для страницы html?

    sergiks
    @sergiks Куратор тега Веб-разработка
    ♬♬
    Я бы рыл в сторону Twig темплейтов.
    Если помимо PHP запускали Composer.
    Ответ написан
    Комментировать
  • Всплывающие уведомление javascript после которого выполнятся php. Как сделать?

    sergiks
    @sergiks Куратор тега Веб-разработка
    ♬♬
    Нехорошо изменять вопрос. Но вот обновлённый ответ:
    window.confirm()
    Использование:
    const isUserOk = window.confirm("Вы уверены?");
    if (isUserOk) {
      // нажал ОК
      fetch('https://example.com/api/ok.php');
    } else {
      // нажал Отмена
      fetch('https://example.com/api/cancel.php');
    }


    Старый ответ:
    window.prompt()
    Ответ написан
    3 комментария
  • Как защитить видео на сайте?

    sergiks
    @sergiks Куратор тега Веб-разработка
    ♬♬
    Делал сто лет назад проект с видеоуроками. На Амазоне в S3 лежали файлы, раздавались в плеер через CloudFront.

    Перед каждым воспроизведением генерилась уникальная ссылка с подписью, которая привязана ко времени и «живёт» недолго – см. Signed URLs

    Так что если решили вопрос с оплатой Амазона, я бы рекомендовал через них реализовать.

    Или посмотрите сервис Kinescope.ru – они предлагают услугу доставки контента и его защиты.
    Ответ написан
    1 комментарий
  • Как хранить сайт на гитхабе?

    sergiks
    @sergiks Куратор тега Веб-разработка
    ♬♬
    github pages

    1. создать репо с названием username.github.io, где username – точное имя вашего аккаунта или организации, в которой это репо
    2. в нём создать index.html
    3. запушить в основную ветку main
    4. открыть https://username.github.io


    Потом можно настроить и свой домен на этот сайт.

    Единственная неприятность, если сайт требует билда скриптов и прочего, в итоге придётся коммитить и скомпилированные файлы.
    Ответ написан
    Комментировать
  • Отличия GET от POST?

    sergiks
    @sergiks Куратор тега Веб-разработка
    ♬♬
    Общение веб-браузера c сервером по протоколу HTTP напоминает обычный текстовый чат. Никакой магии.

    Браузер устанавливает соединение с сервером и пишет ему текстом, как будто, «Привет, как дела».
    Веб сервер в ответ что-то возвращает, типа «Ничего так, пойдёт».

    Настоящий диалог строго регламентирован протоколом. Первая строчка, которую должен прислать браузер содержит название метода, адрес и версию протокола:GET /about/index.html HTTP/1.1

    Ну, или POST /guestbook HTTP/1.1. Или ещё какой-то из методов и адресов.

    Вы можете подключиться к веб-серверу обычным telnet'ом по 80-му порту, если найдёте веб-сервер, позволяющий подключаться без SSL (без https://), и попробовать вообще вручную вводить все эти строки, изображая браузер.

    Таким образом, различие методов GET и POST — целиком зависит от веб-сервера. Существует стандарт, описывающий все ньюансы. Рекомендации, которых лучше придерживаться. Но в конечном счёте это всего лишь чат )
    Ответ написан
    Комментировать
  • Как реализовать синхронный просмотр видео с возможностью поставить на паузу один кадр для всех зрителей?

    sergiks
    @sergiks Куратор тега Веб-разработка
    ♬♬
    1. синхронизация. У всех участников должно быть точное общее время. Для этого есть протокол NTP (Network Time Protocol) — позволяющий примерно синхронизироваться, несмотря на тормоза сети.
    2. взаимодействие в реальном времени. Про веб-сокеты, как вариант, уже написали.
    3. пауза одним из зрителей помимо команды «встать на паузу» отправляет ещё и точную временную метку в видео у того, кто поставил на паузу. У остальных видео отползает на этот же кадр. Т.к. небольшой рассинхрон неизбежен.
    4. запуск видео у присоединившегося зрителя: синхронизация часов со всеми, понимание времени-в-видео относительно текущего времени, подгонка его плеера под это смещение.
    Ответ написан
    2 комментария
  • Имеет ли смысл хранить в БД информацию о разных разрешениях картинки?

    sergiks
    @sergiks Куратор тега Веб-разработка
    ♬♬
    Пара мыслей в пользу хранения в БД всех имён. И переименования в какие-то сгенеренные длинные имена с хэшами.

    1. теоретически возможна коллизия:
    уже есть картинка с исходным именем img-300x160.jpg (ну, загрузили скачанную с такого же сайта и залили к вам). И потом кто-то загружает картинку img.jpg для которой сгенерится версия 300x160.

    2. другая история – защита от хотлинка файлов. Скажем, ВКонтакте имена статики меняет раз в неск. дней.
    Ответ написан
  • Как сделать доступ к сайту с одной точки?

    sergiks
    @sergiks Куратор тега Веб-разработка
    ♬♬
    первым узнаёт об IP-адресе посетителя веб-сервер (Apache, NGINX, что-то ещё) – он устанавливает сетевое соединение.

    a) Фильтровать на основе IP можно силами веб-сервера (в вопросе не указали, какой у вас). «Белому списку» IP показывать сайт, всем прочим – заглушку.

    b) Backend сайта (в вопросе никаких подробностей) тоже вполне справится с задачей. Может получить IP адрес посетителя от веб-сервера, и принимать решение в коде бэка: заглушку или нормальный контент.
    Ответ написан
    7 комментариев
  • Что лучше, развернуть фронтенд и бакенд на одном домене или разных субдоменах?

    sergiks
    @sergiks Куратор тега Веб-разработка
    ♬♬
    находясь на едином домене, фронт и бэк беспричинно оказываются «связаны» как минимум общей точкой входа.

    Если их развязать, разместив на разных поддоменах, это позволит, например, независимо переезжать с сервера на сервер только бэку; или перенести статичный фронт на CDN, не трогая бэк.
    Ответ написан
    Комментировать
  • Какой выбрать сервис для создания минималистического веб-сайта?

    sergiks
    @sergiks Куратор тега Веб-разработка
    ♬♬
    github pages
    Если я правильно понял, сайт — статичный.
    Ответ написан
    Комментировать
  • Как создать сайт с минимальными ресурсами?

    sergiks
    @sergiks Куратор тега Веб-разработка
    ♬♬
    Минимально — по акции зарегистрировать домен ~89 рублей (за 1-й год, потом на вас наживутся).
    И бесплатно хостить статичный сайт на github — см. pages.github.com, и там же внизу "custom URL" / "custom domain".
    Ответ написан
    Комментировать
  • Где можно пообщаться неформально насчет программирования?

    sergiks
    @sergiks Куратор тега Веб-разработка
    ♬♬
    Освоение широкой темы веб-дева и около сродни познанию мира новорождённым; изучению нового языка от азов к уровню, где местные с их диалектом и сленгом примут за своего; открытию карты игрового мира.

    Карту можно прокручивать в сторону, открывая её вширь, или уточнять детали, zoom-in.

    Вряд ли нужен гид, который подскажет, куда стоит крутить в первую очередь, и где остановиться и рассмотреть детали. Это самостоятельный путь Воина. (Оммммм : )

    В реальности, я бы исходил из текущих проектов, а так же варился в контексте статей и вопросов на том же Хабре. Чем шире кастрюля, крупнее аудитория — тем объёмнее охват технологий, о которых там можно узнать прямо или косвенно.

    Узкий по участникам и темам какой-то Tg чат тут проигрывает — он более подвержен недостаткам «инфо пузыря», изолированного от окружающего.

    &tldr; читайте Хабр и крупные англоязычные ресурсы.
    Ответ написан
    Комментировать
  • Удалить элемент стиля через javascript?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    1. Через document.styleSheets получить список всех загруженных листов стилей.
    2. В них отсыскать это правило.
    3. Удалить его.
    4. Заменить на версию без правила про padding.
    Ответ написан
  • Как запустить 5000 потоков параллельно с GET запросами?

    sergiks
    @sergiks Куратор тега PHP
    ♬♬
    Посмотрите на Swoole PHP – он хорошо умеет в неблокирующую асинхронность и корутины. Так сможете в меньшее число тредов запустить неблокирующие curl запросы. Swoole работает со стандартным libcurl – можно тот же GuzzleHTTP использовать.
    Ответ написан
    Комментировать
  • Как запретить использовать веб приложение с больше одной вкладки в браузере?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Написать Shared Web Worker.
    Подписаться на сообщения от него: он может прислать команду «деактивируйся!» (и «активируйся снова!» – в сложном варианте).

    При старте отправлять в него сообщение, регистрирующее вкладку по уникальному ID. Случайное-уникальное, хранится в скрипте во вкладке, запоминается и в воркере.

    Воркер по такому сообщению принимает новый ID и деактивирует остальные (отправляет им сообщения).
    Принцип «каждый новый побеждает предыдущих».

    Если нужно реализовать возврат полномочий к предыдущей вкладке, когда закрыли «активную» – можно придумать протокол. Воркер может по очереди пинговать ID вкладок: «жив?» – нет (таймаут) – следующий «жив?» – жив — «будешь главным».
    Ответ написан
    Комментировать
  • Как сделать авторизацию на сайте через телеграм?

    sergiks
    @sergiks Куратор тега Веб-разработка
    ♬♬
    Лучше просто кнопкой: виджет + зарегистрировать бота.
    Пример проверки авторизации на PHP.

    Если хотите как в вашем сценарии, это сложнее и менее надёжно.

    Можно сделать, чтобы Бот отправлял Пользователю JWT. В котором зашифрован Telegram-id Пользователя и, как вариант, время жизни этого токена.
    Пользователь вводит этот токен у вас на сайте (или переходит по ссылке из сообщения бота), и ваш бэк его расшифровывает (ключи есть только у вас на бэке), убеждается в подлинности, и получает из него Telegram-id входящего Пользователя.

    Когда токен просрочен или потерян, Пользователь всегда может получить свежий через бот. В БД для авторизации хранить ничего не надо.
    Ответ написан
    Комментировать
  • Возможно ли при создании сайта "забиндить" клавишу чтобы какое действие выполнялось непосредственно на сайте?

    sergiks
    @sergiks Куратор тега Веб-разработка
    ♬♬
    document.addEventListener('keydown', (e) => {
      if (e.code === 'KeyQ') {
        // выполнить действие при нажатии клавишы Q
        window.location.href = 'https://example.com/other_page.html';
      }
    });
    Ответ написан
    Комментировать
  • Какие есть эффективные способы защиты формы от ручного спама?

    sergiks
    @sergiks Куратор тега Веб-разработка
    ♬♬
    Может, запретить вставку из clipboard и разрешить только набор текста клавишами, по одному символу?
    Ответ написан
    2 комментария