• Как сделать чтобы PHP скрипт по завершении работы отправлял на фронт уведомление?

    vabka
    @vabka
    Токсичный шарпист

    Или например при выполнении скрипта на бэке записывать в базу результат а фронт будет через 5 минут спрашивать бэк все ли готово?

    Этот вариант в любом случае придётся реализовать, тк ты не можешь гарантировать, что всё время от запроса до итогового результата у пользователя будет работать сеть.

    Я рекомендую всётаки озадачиться вебсокетами, тк это сейчас наиболее стандартный спобом общения клиента с сервером в реальном времени.

    Без вебсокетов можно попробовать server sent events, но лично я никогда ихне пробовал и не знаю подводных.
    Ответ написан
    Комментировать
  • Какой движок для магазина выбрать? как дела у shop-script?

    Sanes
    @Sanes
    Я бы выбрал CS-Cart. Есть Community версия с незначительными ограничениями. В вашем случае может быть избыточным. Для совсем простого магазина посмотрел бы Modx+Minishop.
    Ответ написан
    Комментировать
  • Как выдернуть объект из массива с самым длинным полем?

    ms-dred
    @ms-dred Автор вопроса
    Вечно что то не то и что то не так...
    array.reduce((prev, cur) => cur.field.length > prev.field.length ? cur : prev)
    Ответ написан
    Комментировать
  • Как в php вывести переменную или константу внутри конструкции?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Нужно вместо "moscow" вставить переменную или константу.
    А если что-то надо вывести, то это надо делать внутри фигурных скобок
    Ответ написан
    2 комментария
  • Как сделать, чтобы сайт закрывался или становилась белая страница при открытии консоли?

    @alexalexes
    Никак. Любая составляющая сайта, переданная на сторону клиента, может использоваться и изучаться клиентом как угодно и какими угодно инструментами (кто сказал, что на другой стороне будет браузер?), как в полезном ключе, так и в зловредном.
    Краеугольным вопросом безопасности вашего ресурса является не противодействие анализу той части, которая получает клиент, а сделать так, чтобы серверная часть не реагировала на запросы, которые не соответствуют бизнес-логике клиентской части (или считала ошибкой, выводя соответствующее сообщение).
    На стороне сервера нужно проверять валидность данных, получаемых от клиента, как по правам доступа (имеет ли право клиент совершать определенное действие), так и по содержанию (данные, приводящие к изменениям, не будут ли приводить к противоречивому состоянию базы?).
    Ответ написан
    1 комментарий
  • Как настроить автоматические сборку проекта и очереди перед загрузкой на Github?

    Stalker_RED
    @Stalker_RED
    Все js и css файлы проекта должны быть скомпилированы Vite
    не должны! В гите у вас исходники, скомилированные штуки не обязаны быть в исходниках (хотя иногда их и добавляют).
    Вы при желании можете скомпилировать их заранее, и залить в гит, либо выложить как релиз

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

    Stalker_RED
    @Stalker_RED
    Это не обычное исключение. Нехватка памяти - это аварийная ситуация, при которой скрипт завершается.
    Но вы можете отловить ее при помощи register_shutdown_function().

    UPD: вот тут еще рекомендуют зарезервировать кусок памяти заранее, чтобы освободить ее когда поймаете ошибку
    https://stackoverflow.com/questions/8440439/safely...

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

    Melkij
    @Melkij
    PostgreSQL DBA
    Смотрим.

    DDR4-2400 даёт 19200мб/с, при CL17 имеет латентность 14.16 ns
    DDR4-3200 даёт 25600мб/с, при CL20 имеет латентность 12.5 ns

    Выше пропускная способность - лучше
    Ниже латентность - лучше

    Это даже не касаясь вопроса второго канала памяти, в теории дающего удвоение пропускной способности при той же латентности.

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

    mahmudchon
    @mahmudchon
    <?php
    $class = '';
    if ( 'определенная страница' == true ) {
        $class = ' header_black';
    }
    ?>
    
    <div class="header<?= $class ?>">
        <!-- содержимое -->
    </div>
    
    <style>
    .header_black {
        background: #000;
    }
    </style>
    Ответ написан
    Комментировать
  • Как установить php 8.2 на ubuntu 18.04?

    SignFinder
    @SignFinder
    Wintel\Unix Engineer\DevOps
    1. В конфиге ondrej-ubuntu-php-bionic.list могут быть разные репо для разных версий, и некоторые могут быть выключены.
    2. На его сайте можно посмотреть состав версий.
    3. У ubuntu 18.04 закончился срок стандартной поддержки, можно перейти на новую через версию через do-release-upgrade
    Ответ написан
    Комментировать
  • Как Настроить фильтр в админке Битрикс?

    @samsepi0l
    Заходите в настройки инфоблока. На вкладке "Свойства", в нужном свойстве ставите чекбокс - "Выводить на странице списка элементов поле для фильтрации по этому свойству"
    Ответ написан
    1 комментарий
  • Bitrix почему OnEndBufferContent перезаписывает контент?

    событие только для вывода пользователю?
    Что это значит в вашем понимании и с чего вы это взяли?

    У вас там по ссылке параметр принимается, а вы удивляетесь, что можете менять его значение?
    Ответ написан
    4 комментария
  • Почему я не могу попасть в single-user mode [решено]?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    WTF? Это у меня кривые руки или в ядре при переходе от 4.х к 5.х опять что-то втихушку поправили

    single -- это не параметр ядра вообще. Это параметр init. Сравнивай системы инициализации.
    С systemd для этого эффекта можно использовать параметр systemd.unit=rescue, см.

    Ну и имеет смысл проверить, что grep -w single /proc/cmdline подтверждает, что параметр в неизменном виде добрался до юзерспейса.
    Ответ написан
    9 комментариев
  • Почему в $_FILE может передаваться только один, последний файлы из прикрепленных в input?

    SilenceOfWinter
    @SilenceOfWinter Куратор тега PHP
    та еще зажигалка...
    поле должно называться filedetect[]
    Ответ написан
    1 комментарий
  • Как в Bitrix разместить свой пункт в административном меню не в меню "Сервисы" через файл .left.menu.php?

    Ge1i0N
    @Ge1i0N
    Не нужно трогать файлы ядра.
    Используйте событие OnBuildGlobalMenu и будет вам счастье.
    В своих модулях и того проще, если посмотреть документацию по созданию модулей.
    Ответ написан
    1 комментарий
  • Как вывести только четные значения массива, не создавая новый массив?

    @NeshnyyFevral
    const find = (arr) => arr.filter((el) => el % 2 === 0);
    
    console.log(find([2,3,4,6,8]));
    Ответ написан
    Комментировать
  • Как вывести данные из двух таблиц?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Ошибка детская, она вот в этом: "Есть 2 таблицы, в которых одинаковые поля".
    Очень часто новички, которые не понимают, как работает база данных, делают подобное.
    И всегда потом приходится переделывать, даже если очень не хочется.
    Потому что в БД не должно быть таблиц с одинаковыми полями. Собственно, сообразительные новички уже на этом вопросе, "как выбрать из двух таблиц" начинают понимать, что у них что-то пошло не так.

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

    Имя таблицы, кстати, тоже очень странное. Наверняка там внутри тоже треш и угар и вот её-то как раз и надо разделить, только не горизонтально, а вертикально. Судя по составу полей, нужна одна таблица city и одна таблица people, в которой указывается только city id
    Ответ написан
    2 комментария
  • Как вывести данные из двух таблиц?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    SELECT * FROM `people_city1` UNION SELECT * FROM `people_city2`


    И да учите сиквел он позволяет даже признаться в любви девушке, а не всякую бизнес логику
    Ответ написан
    Комментировать
  • Как лучше для SEO реализовать 2 языка на сайте?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    en.site.com (site.com/en)

    site.com/en
    как автоматически на основе языка браузера посылать посетителя на его языковую версию?

    В вопросе указаны WordPress и "js при переключении языка из-под сервера" (NodeJS). На каком ЯП переключать - не понятно...
    если все же прибегнуть к переключателю css dispay:none для инг контента, то как тот же гугл примет одну статью для разных регионов

    Жесть.
    И есть ли смысл морочиться с этим с помощью js при переключении языка из-под сервера

    Именно так и надо делать. Определение языка на сервере (не на клиенте) по языку браузера > редирект на директорию по названию языка (site.com/en) > отдача статики (страницы) уже с определенным языком.
    И если я гуглю сайт с vpn с google.com получаю чистую инг версию, если напрямую в России - чистую ру версию

    Вообще лучше чекать именно по языку браузера. По ip - нужно иметь свежую ip базу, чтобы с ними сверяться.
    И как будут хранится артиклы в вордпрессе: одна статья в себе содержит 2 языка (2 контента в бд) или для версии site.com/en на хостинге лежит чистая инг версия сайта?

    Я бы хранил отдельными статьями. Все таки так проще прописывать title и остальные мета-теги.
    Отдельная версия типа en.site.ru даст спокойно добавлять артиклы в ру блог, не парясь об их добавлении и перевода для инг версии

    Вы правильно указали - это будет отдельный сайт, и крутить его нужно будет отдельно.
    На крайняк можно добавить виджет гугл транслейта для хот перевода ру артикла, если нет инг версии

    Поисковик не будет юзать Ваш "гугл транслейта", соответственно индексация будет не очень.

    Пример решения на php, с определением языка по заголовку браузера и ридектом на соответствующую директорию:
    if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
      $lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
      switch ($lang){
        case "en":
          // en version
          header("Location: /en");
          exit();
        case "es":
          // es version
          header("Location: /es");
          exit();
        default:
          // ru version (default)
          break;
      }
    }
    Ответ написан
    Комментировать