• Как на php убрать тег html эллемента, и очистить форму?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    По уровню вопроса конечно понятно что гениальности от кода ждать не стоит, но все же...
    Для начала пару занудных замечаний:
    1)
    if($query = $db->query("SELECT `login`, `password` FROM `admin`")){
    Не стоит выбирать все записи из таблицы, если вам нужна одна, та где логины совпадают. Это в целом плохая практика, но еще хуже когда такой подход будет применен к большой таблице. SQL для этого и придуман чтобы так не делать. Так же, если у вас есть таблица пользователи, не нужно дублировать функционал, перенесите админов туда же, указав им уровень доступа или роль.
    2) пароли в бд должны быть соответствующе зашифрованы, используйте соответствующие функции password_hash() и password_verify() при создании и проверке пароля.
    3) Больше совет, чем инструкция: испльзуйте один стиль обрамления кодовых блоков везде, либо текстовые конструкции типа if - endif, либо везде фигурные скобки. Второе предпочтительнее.

    Что касается собственно вопроса, есть несколько вариантов, самый кривой из которых уже написал сеньор Sergei Parfenov. При неверном логине код просто продолжается формой и вы имеете все данные о проверке, включая правильность/неправильность пароля. Стоит отметить что в данном случае блок проверки логина нужно обрамить проверкой метода запроса и вызывать ее только в случае если метод запроса POST (как это сделать - задание на дом).

    Второй вариант более адекватный, так как первый имеет ряд недостатков.
    1) В начале формы создаем переменные в сессии: $_session['message'] и $_session['old'] с пустыми значениями
    2) В блоке проверки логина $_session['old'] присваиваем значения пришедшие из формы $_POST.
    3) Если в ходе проверки у нас возникли ошибки, пишем сообщение об ошибке в $_session['message'].
    4) Выполняем переадресацию. В форме сначала переносим в переменную $message = $_session['message']??'';; и $_session['message'] очищаем. Тоже самое делаем с $old, не забывая что там обычно массив;
    5) Переносим в поля формы старые значения там где это нужно из $old;
    6) Проверяем что лежит в $message, если там что-то есть - выводим сообщение об ошибке.
    Профит.
    Ответ написан
    Комментировать
  • Почему у меня при миграции возникла ошибка в laravel 10?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Ошибка однозначно в кривом апгрейде лары до 10 версии. Самое простое что можно сделать - поднять новый проект на десятке, руками перенести код из контроллеров, моделей, миграций, сервисов...
    Ответ написан
  • PHP: Почему 'mb_convert_encoding' не конвертирует простую строку?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    по тому что гладиолус документация?
    Ответ написан
    4 комментария
  • Почему не удаётся запустить imagick на php 8.2, 8.3?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    через power shell командой php -i проверял, всегда показывало, что imagick есть и версия та, которую ставил.
    Это говорит о том, что меняли вы не тот php.ini, так как для командной строки и для модуля апача/демона для нжинкса php.ini лежит в другом месте. Тут надо запускать через веб сервер пхп файлик с phpinfo();

    а также отсутствует инфа в php info.
    Значит просто не туда смотрели. Ищите на страничке ini, смотрите где физически лежит ини файл для веба и меняйте настройки в нем.
    Ответ написан
  • Почему форма обратной связи php отправляет часть кода?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1) Тело хтмл письма, как и любой подвид иксмл, должно начинаться с оперделяющих тегов, у вас же тупо табличка отправляется.
    2) Заниматься мастурбациейфигней с отправкой через mail() в 21 веке как минимум стыдно, как максимум чревато проблемами при отладке и смене функциональности, не говоря уже о том что отправка хтмл контента и приложений становится задачей со звездочкой.
    3) Все легко решается переходом на нормальную библиотеку отправки почты, пхпмэйлер/свифтмэйлер и их многочисленные аналоги.
    Ответ написан
    3 комментария
  • Где взять бэкенд для фронтенд учебного проекта?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    Комментировать
  • Как посмотреть на строку в в которой запрос SQL выдает ошибку?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    для начала стоит посмотреть какого типа колонка `source`.`new.remains.costsum`, ее формат должен совпадать с форматом `target`.`remains_costsum` - double(15,5). В противном случае, если колонки не совпадают по типу, колонки не совпадают и по размеру и очевидно в `source`.`new.remains.costsum` содержится превышающее заданный диапазон значение.
    Ответ написан
  • Как узнать что загружает php на сервере debian?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Профайлинг, не?
    Ответ написан
    Комментировать
  • Как исправить ошибку при парсинге данных PHP?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    парсинг это не самая простая задача. И не самая быстрая. По этому нормально что парсинг происходит не очень быстро, а настройки сервера не позволяют довести дело до конца.
    Варианты:
    1) разбивайте парсер на части, где каждый шаг сохраняет результат в промежуточной таблице с полем "обработано", и вызывайте его последовательно, как отдельные скрипты
    2) Отключите ограничение на время работы скрипта, это делается либо в конфиге пхп, либо командой set_time_limit(0); Но возможно что ограничения сервера не позволят вам этого сделать.
    3) Запускайте скрипт из консоли, правда придется переписать его так, чтобы лара смогла его запустить, не помню навскидку как там организуется работа с cli скриптами, в других фреймворках часто есть возможность запустить конторллер из командной строки. В зенде вроде есть возможность использовать CliController.
    4) Очереди, раббитмкю как вариант. Формируйте очередь из задач, и они будут выполняться одна за другой как отдельные задачи.
    Ответ написан
    Комментировать
  • Bitrix. Mysql жрет процессор как не в себя. Куда копать?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    если оставить 90 тыс позиций - нагрузка на процессор падает больше чем втрое.
    Есть мысль что большое количество запросов происходит минуя индексы, которые возможно вообще отсутствуют. Первое что приходит на ум - залогировать все запросы, выбрать типовые и прогнать их ручками через explain. Заодно и посмотреть что там в плане памяти жрется.
    Так же стоит посмотреть движок таблиц, может там какой-нить майисам или вообще свой особый, бывало такое.
    Ну и возможно у вас где-то вызовы запросов вообще без лимитов, это вполне может сожрать и проц и память подчистую.

    нагрузка: 10-40 обращений в минуту.
    Это вообще ниачем. В купе с мизерной базой размером меньше миллиона записей на таблицу, такая нагрузка действительно вызывает удивление...
    Ответ написан
  • Как запретить скачивание файл по прямой ссылке?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Папка выше документ рута + readfile() + 2 заголовка. Ну и банальная проверка на роль.
    Ответ написан
    8 комментариев
  • Как проверять подлинность данных, отправляемых клиентом в базу данных?

    ThunderCat
    @ThunderCat Куратор тега Веб-разработка
    {PHP, MySql, HTML, JS, CSS} developer
    В этом куске кода критическая переменная это tokens. При нажатии на кнопку start со стороны клиента у пользователя отнимается один токен и кол-во общих токенов отправляется в бд
    Не надо тупить. Раз токен это критичные данные, то никаких "со стороны клиента" быть не должно. Нажат старт - на сервер отправилось "старт пошел", из данных в бд вычитается/прибавляется значение, обратно отсылается что в итоге получилось. С остальным так же - на сервер отправляется событие, а сервер считает чего куда прибавлять и возвращает результат на фронт.
    Ответ написан
    Комментировать
  • Как называется подпрограмма внутри массива?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    а если внутри элемента массива подпрограмма?
    для этого элемент массива должен быть объектом, и соответственно этот метод будет принадлежать этому объекту.
    Ответ написан
  • Нужна ли адаптивная вёрстка для компьютерного браузера, если кто-то будет уменьшать окно браузера до мобильной версии?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Насколько такой подход к разработке правильный?
    Нинасколько. Так как озон достаточно старая система, проектирование мобильной версии с отдельным мобильным видом наследие периода когда верстку сделать адаптивной было гораздо сложнее, а поисковые роботы еще ориентировались на субдомены по типу м.домен.тлд для отображения результатов поиска с мобильных устройств. Менять что-то с потерей поисковой индексации уже никто не будет.

    В сегодняшних реалиях такой подход для новых проектов неприемлем, так как это лишняя работа и лишний код отдельно для мобильной версии, что еще и обслуживание усложняет. Все делают мобайл фирст верстку (так как ~80% траффика это мобилы), и сразу адаптив, так как современный цсс делает это на раз-два. Короче, сейчас так не делают.

    Навряд ли многие люди так уменьшают окошко браузера вручную и для чего это нужно...
    Это нужно не для людей которые "уменьшают окошко", а для бесшовного перехода между устройствами, так как есть планшеты, нетбуки, мобилы с разным разрешением и просто масштабирование в браузере, и для всего этого зоопарка адаптив позволяет задать нормальный вид, практически для любого устройства в заданном диапазоне разрешений, причем без специальной подгонки под экран.
    Ответ написан
    7 комментариев
  • Ошибка с jquery?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    тут нужно либо крестик снять, либо трусы надеть. Вы делаете отложенную загрузку скрипта жквери (через дефер), и при этом вызываете код, который без него работать не будет.
    Вариантов 2:
    1) Убрать дефер на жквери скрипт
    2) Закатать весь код жквери в православный ванила жс евент загрузки, типа документ.аддевентлистенер (ДОМCонтентЛоадед)
    Ответ написан
    Комментировать
  • Что за CMS, на какой системе сделать подобный сайт?

    ThunderCat
    @ThunderCat Куратор тега Веб-разработка
    {PHP, MySql, HTML, JS, CSS} developer
    Любой сайт в интернете можно повторить (при наличии умений либо денег), причем выбор технологии/движка и прочих нюансов вообще не определяющий фактор. Сделать надо на том что знаешь, если делаешь сам, или на том что знает и рекомендует нанятый разработчик, если вы заказываете сайт у сторонних специалистов.
    Ответ написан
  • Как вставить разметку Open Graf на сайт с шаблонным header?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Как реализовать разное описание страниц и заголовки я нашла - с помощью переменных.
    ну так и
    То есть проблема все же в том, что нужно помещать ее в head.
    В чем проблема то? Выводите ваши теги в хеадер, так же как и все остальное - переменными.
    Ответ написан
  • Почему мой ноутбук не показывает мне сайты?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Все по классике:
    трейсроут
    проверить днсы
    Протестировать основные сайты на открытие
    Посмотреть ответы от сервера в консоли/нетворк браузера
    Ответ написан
    Комментировать
  • Категории не подгружаются при первой загрузке страницы, как исправить?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Судя по описанию, проблема в кэше.
    Система скорее всего вордпресс?
    Ответ написан