Задать вопрос
  • Как вернуть данные после обработки POST?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Для начала, обработка ошибок не должна ничего выводить в месте где возникла ошибка. Ошибки всегда накапливаются в переменной (обычно в массиве), в конце блока проверок проверяется есть ли ошибки в накопительной переменной, и уже исходя из логики идет либо запись в бд, либо возврат ошибок пользователю.

    В случае аякса возвращается json с ошибками, хорошей практикой будет завести отдельное поле error, которое служит для яваскрипта сигналом обработки ошибки, и поле, содержащее текст ошибки. После вывода ошибки через echo, скрипт завершают - exit(); В яваскрипте аякса отправленные данные попадают в переменную, прописанную как аргумент success функции - success(data){...}

    В случае субмита формы - массив с ошибками пишется в сессию, туда же записываются все принятые значения из $_POST, чтобы на исходной форме пользователю не приходилось снова все вписывать в поля. Ну и выполняется редирект на форму, поля пишутся из сессии, выводится ошибка из сессии, сессия чистится. Считается хорошим тоном поставить exit(); после редиректа, хотя в современных версиях пхп скрипт завершается автоматически.
    Ответ написан
    Комментировать
  • Не могу юзать namespace?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1) Что делает хтмл в коде класса? Про разделение кода и представления не слышали?
    2) Нэймспейсы придуманы для автозагрузки, по этому вывод их в первые строки файла обязателен
    3) Чтение документации сильно облегчает жизнь
    4) Чтение ошибок облегчает жизнь даже тем кто плохо читал документацию
    Ответ написан
    6 комментариев
  • Как собрать данные в одном месте?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Не могу прочесть, тут что-то на эльфийском... (с) Фродо


    Есть несколько сайтов на нативном php
    Я правильно понимаю что у вас есть доступ к коду (если такие подробности известны), но вы в нем не особо разбираетесь (так как что за данные и откуда вы не написали)?

    Есть главный сайт - crm, необходимо в базу этого сайта добавлять данные с других сайтов, в какую-то определенную таблицу
    Ну, допустим, то есть на других сайтах тоже бд? Или какие данные нужно добавлять?

    возможно ли вообще такое реализовать?
    Конечно, вопрос только что конкретно нужно и что конкретно вы сможете реализовать. Вариантов масса:
    - Написать парсер со стороны crm, по таймеру обновлять данные с сайтов
    - Написать апи для каждого сайта, и через него из crm запрашивать обновления
    - Написать апи на crm и на сайтах при добавлении отправлять дубль в апи crm
    - Тупо перенести нужные таблицы дампом с сайтов на сервер crm
    ну и еще куча идей, тут уже от кучи обстоятельств зависит как удобнее/проще делать...
    Ответ написан
  • Как автоматически выводить данные с полученного post/get запроса?

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

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Объясню на примере, у меня есть 2 таблицы.
    1 - это список всех клиентов.
    2 - это список активных клиентов.
    Это неверный подход. Для лучшего понимания советую почитать про нормальные формы бд.

    Если коротко и сильно упрощенно - есть принцип, по которому все что можно узнать об объекте из 1 таблицы или поля, даже если для этого нужны какие-то манипуляции (например объединения таблиц или вычисления значений, например сумма/минимум/максимум) не должно дублироваться. В вашем случае у вас все решается дополнительным полем, которое будет однозначно отделять группу активных от неактивных, при этом дублирования данных не будет, все записи будут по прежнему уникальны.
    Ответ написан
    Комментировать
  • Ajax подключённый к форме не работает?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    $('#form').on('submit',function (e) {
      e.preventDefault();
    ...
    Ответ написан
    2 комментария
  • В чем причина ошибки?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1)
    expects parameter 1 to be mysqli_result, bool given
    ожидаем результат запроса, но получаем булеан. Почему? 99% кривой запрос, но этого мы не узнаем, так как кода нету. Для нормального отображения ошибок запросов, нужно добавить после соединения
    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

    2)
    Здесь уже проблема с хедером
    Да нет, с хедером все ок. Проблема что тут его уже нельзя отправить, так как вы что-то вывели в браузер (скорее всего как раз ошибку из п.1). Что легко гуглится (Результатов: примерно 6 170 000).
    Ответ написан
  • Что не так с регуляркой?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    #_adv_([\d]){1,4}_#gui
    Ответ написан
  • Что делать, если не можешь понять?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Гуглить + Читать разные источники, в каком-то будет более простое и понятное объяснение, в каком-то чуть сложнее, когда с общими положениями все станет понятно - снова прочтите документацию/непонятное объяснение, скоре всего все встанет на места.
    Ответ написан
    Комментировать
  • Выводит полностью код php что делать?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Вангую шорттеги...
    Ответ написан
    2 комментария
  • Можно ли увеличивать блоки не снизу а сверху?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    display: flex;
    align-items: end;
    Ответ написан
    Комментировать
  • Как сделать выборку?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    https://www.w3resource.com/sql/aggregate-functions...

    Тупое решение "в лоб" будет что-то типа
    селект * 
    фром тбл 
    вэа юзер_ид ин(
              селект юзер_ид 
              фром тбл 
              вэа валуе_ид = 23
              груп бай валуе_ид
              хэвинг каунт(*) = 2
    ) т1
    энд валуе_ид = 22
    Ответ написан
    4 комментария
  • Как зашифровать на PHP строку в токен 32 символа?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    зашифровать массив (строка JSON) на пхп в красивый токен 32-64 символа (на подобие хэширования MD5) и иметь возможность его расшифровать.
    Надеюсь вы в курсе, что MD5 необратимый алгоритм? Именно по этому с его помощью можно получить строку фиксированной длинны (при этом получая небольшой процент коллизий) от строки любой длинны. Очевидно, что строку произвольной длинны, больше чем 32 или 64 символа, невозможно упаковать в стандартную длину (например 1000 символов запаковать в 64, иначе нафига нужны бы были архиваторы).

    Однако, можно сделать иначе: На сервере хранить строку (например в бд), а ключом к ней будет хэш от этой строки, можно даже с солью.
    Ответ написан
    Комментировать
  • Почему $(this).closest("form") не возвращает форму?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    Все работает
    https://jsfiddle.net/2ykqwdt3/
    Ответ написан
    Комментировать
  • Как мне отобразить выключен ли элемент?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    <?php 
    $elements = (тут вытаскиваем из бд все элементы);
    ?>
    ...
    <?php 
    if($elements[35]['status'] ==1){?>
    <div class="absolute top-[514px] left-[30px]" style="transform: rotate(15deg);">
    ...
    <?php } ?>
    Ответ написан
    2 комментария
  • Стоит ли работать с Drupal в 2022?

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

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

    ThunderCat
    @ThunderCat Куратор тега Веб-разработка
    {PHP, MySql, HTML, JS, CSS} developer
    Вордпресс + пяток плагинов, или какой-нибудь октобер цмс... Собсно это же блоги + комменты, не?
    Ответ написан
    Комментировать
  • Как сделать ссылку jQuery в PHP коде, который обновит страницу с новыми GET параметрами?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Задумался над тем, что бы попробовать перевести свою страницу на формат без перезагрузки всей страницы, а лишь ее основы внутри.
    Это называется SPA (single page application), и не всегда это хорошая идея.

    Все сводится к тому, что делать нужно это на Jquery.
    Плохая идея, для этого есть совершенно другие, более подходящие инструменты - react, vue...

    Но после этого страница не перезагружалась, а просто принимала эти данные и обновляла информацию на всей странице, выводя пользователю эту же страницу, но с новыми результатами?
    В общем случае используют несколько приемов: Урл подменяют с помощью history pushState, запросы отправляют через fetch или средствами фреймворка, бэкенд при этом обычно отдает не хтмл, а json, по сути передавая только нужные данные, из которых фронтенд строит уже нужный хтмл из компонент.
    Ответ написан
    1 комментарий
  • Как убрать ограничение в 1M на загрузку файлов?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    php.ini
    memory_limit = 32M
    upload_max_filesize = 32M
    post_max_size = 32M

    так же, неплохо бы проверить что вы редактируете нужный php.ini, запустив phpinfo() и проверив путь до php.ini, в вашем конфиге указан /etc/php/7.4/fpm/php.ini

    nginx.conf
    client_max_body_size 32M;
    Bash:
    /sbin/nginx -s reload
    или
    sudo systemctl reload nginx.service

    Сейчас же в конфиге php стоит 8мб, ровно столько же отображается если сделать phpinfo();
    63d0fe614a517216751258.jpeg
    Ответ написан
    1 комментарий