Задать вопрос
  • Как можно ускорить выполнение SQL запроса?

    yesbro
    @yesbro
    Думаю, помогаю думать
    План запроса, пожалуйста :)

    Результат запроса полностью помешается в память? peak_memory_used (из EXPLAIN filesort_summary) больше чем sort_buffer_size из настроек базы?

    Запрос похоже никак не оптимизировать. Вот обсуждение подобной проблемы https://stackoverflow.com/questions/75306623/order...

    Надо или тюнить mysql или думать над каким-то кешированием/промежуточными расчетами (хотя пока не вижу что тут можно кешировать).
    Ответ написан
  • Почему не работает метод setVisibility с параметром public для Laravel и AWS S3?

    yesbro
    @yesbro
    Думаю, помогаю думать
    А в настройках самого бакета ты разрешил делать файлы публичными? Насколько я помню там по умолчанию все запрещено. https://websetnet.net/ru/how-to-manage-public-acce...
    Ответ написан
    2 комментария
  • Как правильно развернуть локальный репозиторий для работы с имеющимся сайтом?

    yesbro
    @yesbro
    Думаю, помогаю думать
    1) Создаешь пустой приватный репозиторий на github/bitbacket/gitlab

    2) В том месте где сайт
    - инициализируешь локальный для сервера репозиторий git init
    - создаешь файл .gitignore и указываешь в нем те файлы и папки, которые не должны попасть в репозиторий
    - добавляешь файлы в репозиторий git add . && git commit -m 'Form server'
    - генерируешь публичный и приватный ssh ключ https://docs.github.com/en/authentication/connecti... и добавляешь публичную часть в настройки своего аккаунта на github/bitbacket/gitlab
    - связываешь локальный серверный репозиторий с основным удаленным на github/bitbacket/gitlab выполнение команды git remote origin ***где вместо звездочек урл (для доступа по ssh) твоего репозитория, обычно он есть на главной странице твоего репозитория
    - пушишь свои изменения git push -u origin master:master

    3) На своем рабочем компьютере

    - генерируешь публичный и приватный ssh ключ на своем компьютере https://docs.github.com/en/authentication/connecti... и добавляешь публичную часть в настройки своего аккаунта на github/bitbacket/gitlab и добавляешь публичную часть в настройки своего аккаунта на github/bitbacket/gitlab (это уже второй ключ)
    - создаешь локально папку где у тебя будет лежать код твоего сайта
    - клонируешь туда сайт из удаленного репозиторий git clone *** ./ где вместо звездочек урл (для доступа по ssh) твоего репозитория
    - коммит и пуш далее стандартным ообразом
    Ответ написан
    Комментировать
  • Как получать данные для Telegram WebApp authentication?

    yesbro
    @yesbro
    Думаю, помогаю думать
    Правильно ли я понял схему?

    1) На самом сайте регистрации и входа нет.
    2) Что бы попасть на сайт нужно зайти на бота в телеграм и нажать там какую-то кнопку. После этого открывается сайт где ты уже аутентифицирован.

    Есть серверные реализации телеграм-клиента, которыми ты можешь управлять из своего кода. Там ты сможешь от имени пользователя взаимодействовать с ботом и получить нужную тебе ссылку со всеми параметрами, а потом использовать ее как надо.

    Посмотри вот тут https://habr.com/ru/articles/433268/ - это отправная точка для поиска нужного тебе решения.
    Ответ написан
    1 комментарий
  • Каким образом человек может попасть на хакнутый им сервер?

    yesbro
    @yesbro
    Думаю, помогаю думать
    Могли оставить какой-нибудь скрипт, который по запросу из сети выполнить любой заранее заложенный или загруженный в процессе код. Могли майнер оставить. Могли какой-то сервис развернуть. Могли в крон положить скрипт который через Х дней даст доступ по ключу или добавит пользователя. А могли ничего не сделать. Вариантов слишком много :) Проще переустановить. Логи могли и подчистить.
    Ответ написан
    9 комментариев
  • Есть ли метод кеширования iframe стороннего сайта?

    yesbro
    @yesbro
    Думаю, помогаю думать
    Получать данные для ифрейма через отдельный пхп-скрипт, который будет их кешировать. Обновлять кеш с какой-то переодичностью (например запускать через крон). Данные для вывода на сайт брать из кеша.

    Так что направление мысли верно. Как-то закешировать их можно, а точнее, как угодно. Хоть весь ответ, хоть распрарсить и только необходимые данные. Для кеша тоже можно использовать что будет удобнее: базу данных, редис, мемкеш, файлы.
    Ответ написан
  • Где браузер хранит сведения о пользователе?

    yesbro
    @yesbro
    Думаю, помогаю думать
    1) В cookies или localStorage.

    2) Можно, но не всегда.
    Ответ написан
    5 комментариев
  • Не ставится background-image через селектор в теге selection, за то в теге div с тем же селектором все работает прекрасно. В чем ошибка и почему так?

    yesbro
    @yesbro
    Думаю, помогаю думать
    Может быть вместо тега selection должен быть тег section?
    Ответ написан
    Комментировать
  • Что тут задача фронтенда, а что бэкэнда?

    yesbro
    @yesbro
    Думаю, помогаю думать
    Да. Минимальная задача верстальщика сверстать этот блок. Более опытный (и если есть такая необходимость) может еще сделать js-слайдер.

    Теоретически функционал Недавно просмотренные можно реализовать полностью на фронтенде (список просмотренных: названия, цена, картинка хранит в локалстордже), но тогда этого разработчика я не стал бы называться простым верстальщиком. Это уже фронтенд-разработчик/программист/инженер. Да и есть у этого ограничения. Например если цена на товар поменялась, то в браузере клиента будет старая. Или если товар снят с продажи, то он все равно его увидит. Ну и надо понимать, что это совершенно разный объем работ.

    В классическом случае этот функционал + интеграцию верстки в шаблон делает бекенд-разработчик.
    Ответ написан
    3 комментария
  • Как сконфигурировать бэк и фронт через api?

    yesbro
    @yesbro
    Думаю, помогаю думать
    У тебя есть урл фронта (node + vue) и урл апи (nginx + php fpm + postgress).

    По урл фронта ты из браузера обращаешься к своему фронту. Node + Vue смотрят свои маршруты, генерирую html страницы и отдают их тебе в браузер.

    Браузер отображается страницы при необходимости обращаясь к апи. Там уже свои маршруты которым управляем симфони.

    Это если в общих чертах.
    Ответ написан
    Комментировать
  • Как наработать навык декомпозиции задач?

    yesbro
    @yesbro
    Думаю, помогаю думать
    С декомпозицией все просто. Для начала берешь любую задачу из жизни и думаешь какие шаги нужно сделать что бы ее решить. Когда это станет просто, то переходишь к программированию. Лучше всего взять какой-то готовый небольшой проект и сам себе ставишь задачи, сначала очень простые(!!!), потом сложнее(добавить метод, добавить что-то еще, изменить логику и прочее). Не начинаешь программировать пока по шагам не напишешь себе что надо делать. В процессе разработки смотришь насколько твой план расходится с реальностью. Запоминаешь, учитываешь в следующий раз.

    Для получения навыка решения алгоритмических задач есть куча соответствующих сайтов - начинаешь с самых простых уровней.

    Для развития логического мышления изучи формальную логику и так же решай задачи.
    Ответ написан
    Комментировать
  • Как сделать ограничитель поля символов?

    yesbro
    @yesbro
    Думаю, помогаю думать
    Для начала реши как ты будешь отображать числа в которых число разрядов больше чем достуно в калькуляторе для вывода. А потом уже можно заниматься исправлением бага.
    Ответ написан
    Комментировать
  • Как сделать сортировку по двум полям?

    yesbro
    @yesbro
    Думаю, помогаю думать
    Думаю, что lesson_number у тебя текстовое поле, если поменяешь на целое число, то заработает как надо :)

    Ну или можешь в запросе привести тип к числу. Почитай вот это https://stackoverflow.com/questions/7792738/numeri...
    Ответ написан
    Комментировать
  • Почему не работает восстановление пароля?

    yesbro
    @yesbro
    Думаю, помогаю думать
    $Row = mysqli_fetch_assoc(mysqli_query($connect, 'SELECT `login` FROM `users` WHERE `id` = '.str_replace(md5('Hello'), '', $param['code'])));
    
        if(!$Row['login']) MessageSend(1,'Невозможно восстановить пароль.', '/login');


    Это просто. У тебя $Row['login'] пустое. А это значит что у тебя по id не найден пользователь.

    В коде опять какая-то странная конструкция получения id. Разбирайся чему равно id, чему $param['code']. Как это делать я тебя ранее подсказывал.
    Ответ написан
  • Как победить 504, грузя большой файл на s3?

    yesbro
    @yesbro
    Думаю, помогаю думать
    Файлы загружаются на сервер одновременно (в одном запросе) или по очереди? Какая ошибка в логе/на странице? Это ошибка php или nginx? Может есть какой-то прокси/балансировщик перед nginx?
    Ответ написан
  • Почему бесконечный цикл?

    yesbro
    @yesbro
    Думаю, помогаю думать
    Совет выше правильный. while надо заменить на foreach. While работает пока выражение внутри круглых скобок будет возвращать true (с учетом приведения типов), а непустой массив всегда возвращает true. Судя по комментарию ты думаешь что while так же как foreach будет перебирать массив по элементам. Это ошибка.
    Ответ написан
    1 комментарий
  • Возможно ли реализовать по одному url статические и динамические параметры?

    yesbro
    @yesbro
    Думаю, помогаю думать
    Можно. Во-первых порядок имеет значение, выбирается первый подходящий роут. Во-вторых, у новых версий Лары есть возможность задать отдельный обработчик для незаданных роутов https://laravel.com/docs/10.x/routing#fallback-routes (правда там slug не передается в метод, но эти данные можно получить другим путем).

    Тот пример что ты выше привел должен работать корректно.
    Ответ написан
  • Как верифицировать вебсайт пользователя?

    yesbro
    @yesbro
    Думаю, помогаю думать
    Есть стандартные схемы для верификации прав доступа к сайту.

    1) Файл с уникальным именем.
    2) Мета-тег в хедере с уникальной строкой
    3) HTTP заголовок с уникальной сторокой.

    Код на мыло в домене сайта тоже можно, но тогда это уже будет подтверждение не прав доступа к сайту, а принадлежности к организации. Надо понимать в чем разница и устраивает ли она.

    Для соц сетей решение только одно. Надо опубликовать пост с каким-то уникальным кодом.
    Ответ написан
    Комментировать
  • Как лучше реализовать поиск по сайту, написанному на Nuxt 3?

    yesbro
    @yesbro
    Думаю, помогаю думать
    Думаю можно, но тебе самому придется написать поискового паука, который будет обходить твой сайт и добавлять/обновлять контент в базе Elastic с нужной частотой.

    Пример нет думаю потому что это редкий случай, когда надо делать поиск по сайту и при этом контент частью статика, а частью в БД.

    Может быть проще будет статически контент тоже перенести в БД?
    Ответ написан
    Комментировать
  • Как запушить проект webpаck на GitHub, но при этом не толкать все зависимости?

    yesbro
    @yesbro
    Думаю, помогаю думать
    Надо добавить папку node_modules в .gitignore

    Если файлы уже добавлены под контроль гит, то просто добавление этой папки в gitignore не поможет. Надо сперва удалить эти файлы, потом добавить папку в gitignore, а потом уже снова подтянуть зависимости.
    Ответ написан
    9 комментариев