Ответы пользователя по тегу Веб-разработка
  • Знаки Èíà вместо кириллицы на сайте написанном на Perl. Как исправить кодировку?

    eXcNightRider
    @eXcNightRider Автор вопроса
    FullStack Web Developer | DevOps
    Из свежего: взял два основных файла из проекта, удалил все запросы в Postgres, чтобы не поднимать его на рабочем компьютере (Mint 19.3), запустил, всё работает, по кодировке всё идеально. Эти же файлы на будущем боевом сервере с теми же кракозябрами. Конфиги апача - идентичны, настройки локали - идентичны. Пока не знаю, что ещё можно проверить
    Ответ написан
  • Как реализовать экспорт данных из excel на лендинг?

    eXcNightRider
    @eXcNightRider
    FullStack Web Developer | DevOps
    В качестве парсера файлов Excel очень хорошо работает вот этот компонент Php Spreadsheet
    Схема стандартная: аплоад файла в безопасном месте, думаю, это понятно, файл читается, парсится, цены записываются в БД. Если хочется вариант без лишних компонентов, то используйте вместо Excel формат csv и стандартные функции php для работы с ним.
    Ответ написан
    5 комментариев
  • Стратегия поиска решения?

    eXcNightRider
    @eXcNightRider
    FullStack Web Developer | DevOps
    Нет какого либо четкого алгоритма, ситуаций много, не всегда всё идет по одному плану. Прежде всего очень помогает код ревью, когда читаешь код по строчкам и прокручиваешь в голове всё что делает каждая строчка, мысленно моделируя выполнение кода в голове. Во время дебага внимательно читайте сообщение об ошибках. Если бэкэнд на php то очень полезен xdebug, если фронтенд, то консоль браузера. Далее ведем цепочку вызовов от места, где всё упало пока не найдем место, где начало падать, ставим точки остановки, тестируем, исправляем. Если ошибка не понятна, то тогда уже гуглить. Обычно в контексте ошибки, упоминаемой функции\ компонента, в результатах поиска появится всё что нужно: гитхаб, стэковерфлоу, тостер и другие.
    Ответ написан
    Комментировать
  • 301 редиреrт с catalog2 на catalog?

    eXcNightRider
    @eXcNightRider
    FullStack Web Developer | DevOps
    Этот вопрос можно решить самому, если пользоваться гуглом
    RewriteBase /
    RewriteRule ^main-folder/old-folder/(.*)$ /main-folder/new-folder/$1 [L,R=301]
    Ответ написан
    Комментировать
  • Почему падает php7-fpm при повышенной нагрузке на MariaDB?

    eXcNightRider
    @eXcNightRider
    FullStack Web Developer | DevOps
    Либо падение происходит потому что параметр idle_timeout по умолчанию 30 секунд и их не хватает, либо превышен лимит дочерних процессов у FAST CGI. Можно увеличить лимиты memory_limit и max_execution_time, read_buffer time в конфиге Марии. Не уверен, что это сильно поможет. Лучше проставьте индексы в БД, чтобы злые запросы стали добрее и укладывались в таймауты.
    Ответ написан
    Комментировать
  • В каком порядке разрабатывать и тестировать web-приложение?

    eXcNightRider
    @eXcNightRider
    FullStack Web Developer | DevOps
    Самое главное в подобных проектах ИМХО это безопасность. После определения стека технологий я бы начинал реализовывать управление пользователями и правами доступа так как это основа - скелет, если можно. Затем логика уже самого приложения и права доступа на просмотр уже между пользователями (Мои записи может видеть...кто?)
    Ответ написан
    Комментировать
  • Как лучше реализовать механизм множественных сессий?

    eXcNightRider
    @eXcNightRider
    FullStack Web Developer | DevOps
    Мне кажется у вас всё слишком усложнено. Поэтому реализовать множественные сессии в таком решении может быть затруднительно. Что можно в Вашем случае сделать?

    Вам не нужны current_session и long_session. Используйте классический механизм сессий. Чтобы в куки записывался id сессии и её время жизни, а в базу данных id сессии и id пользователя - остальные данные типа времени входа - по вкусу. Храните записи сессий в базе таким образом, чтобы на один id пользователя можно было сделать несколько записей. Таким образом у вас не будут отваливаться сессии при входе на разных устройствах. И не переживайте за записи в БД - они не будут занимать много места. В конце концов можно записывать таймштамп истечения срока сессии и по крону периодически проверять и чистить старые записи.
    Пример реализации подобного решения вы можете найти в библиотеке birke/remembermeссылка на github
    Ответ написан
    1 комментарий