• Как загрузить данные из PHP после капчи без перезагрузки страницы?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега PHP
    Предполагаю, что есть какая-то возможность на этапе проверки IP-адреса в условии if-else прервать выполнение показа страницы и показать ее после прохождения капчи.
    Нет такой возможности.
    Ответ написан
    Комментировать
  • Как сделать, чтобы при клике на другой пункт меню предыдущий элемент закрывался?

    @Medvejonok86
    Задайте всем пунктам меню один класс. Примерно так:
    <div class="menu">
       <div class="item close">Пункт 1</div>
       <div class="item close">Пункт 2</div>
       <div class="item close">Пункт 3</div>
    </div>

    Дальше вешаем обработчик на клик и пишем логику обработки события.
    $(document).ready(function () {
       $(".menu .item").on("click", function() {
          $(".menu .item").addClass("close");
          $(this).removeClass("close");
       });
    });
    Ответ написан
    2 комментария
  • Почему целесообразнее не использовать new для работы с классами, а предпочесть DI?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега PHP
    Вот почему: PHPunit замокать класс внутри тестируемого класса?
    Бонус-раунд: DI упрощает работу с зависимостями зависимостей. Если ваш MyService принимает какой-нибудь логер в зависимостях, который в свою очередь ожидает какой-нибудь драйвер файловой системы, вы задолбаетесь собирать их через new.
    Ответ написан
    Комментировать
  • Как запретить удаление товаров созданных вручную при обмене сайта с 1С?

    babarun
    @babarun Куратор тега 1С-Битрикс
    Безумный план моих идей в руках больных людей
    с помощью какого события реализовать запрет

    • OnBeforeIBlockElementDelete
    • OnBeforeCatalogImport1C
    Ответ написан
    Комментировать
  • Можно ли такое реализовать с помощью MySQL?

    @KingstonKMS
    1. Если полей для разных типов не много, то можно сделать все в одной таблице. Но это, как написали, денормализованный вариант.
    2. Отдельные связанные таблицы для хранения параметров разных типов оптимальный вариант с учётом возможного увеличения как параметров, так и типов аккаунтов.
    3. Но вы можете и json хранить в базе, осуществлять поиск и индексацию, см. https://dev.mysql.com/doc/refman/8.0/en/json.html
    Ответ написан
    3 комментария
  • Создаёт ли видео на сайте нагрузку на сервер?

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

    Влияет если видео будут много смотреть: нагрузка на канал, нагрузка на диск (чтение), дольше держаться открытыми соединения. Много это понятие относительное, зависит какой у тебя хостинг.

    Если действительно наличие видео создает проблему, то можно вынести на какой-нибудь специальный хостинг и вставлять уже их плеер (Youtube, Rutube, VK, Vimeo,etc) или разместить его на специальном облачном сервисе (Amazon, Yandex, Google, Azure, Selectel, etc) и тогда показывать его через свой плеер.
    Ответ написан
    Комментировать
  • Как ускорить процесс загрузки файлов в PHP?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Скорость канала на сервере — 200 Мбит/с
    Вангую что это скорость на выход, на вход будет совершенно другая скорость, не указанная в рекламном буклете, или написанная где-то под звездочкой оооочень мелким шрифтом.
    Есть вероятность что в вебсервере стоит ограничение на скорость загрузки на клиента, но это можно выяснить и через просмотр конфигов, если таковые доступны.

    Что делать?
    1) Пнуть провайдера и спросить про скорость аплоуда.
    2) Если молчат - проверить самостоятельно, например замерить скорость загрузки файла курлом.
    3) Проверить загрузку через фтп/сфтп
    4) Много думать, ругаться с провайдером
    5) Профит
    Ответ написан
    Комментировать
  • Как вызвать страницу другого сайта и выполнить на ней действие?

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

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

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Но т.к. Твиттер заблокирован я подумал, что может быть это все не законно, но так ли это?

    Он заблочен РКН, но не признан экстремистской организацией, в отличие от инсты и fb.
    Правила твиттера, при цитирование, Вы должны поставить ссылку на источник.
    С одной стороны мне кажется её рискованно делать, с другой видел много новостей, которые пришли с заблокированных сайтов и всё вроде нормально.

    Ошибка выжившего, Вас не будут трогать, пока Вы не представляете интереса.
    Ответ написан
    Комментировать
  • Можно ли в mysql хранить 200 колонок, для 10+млн записей?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Смотрим здесь. Получаем для обычного INT 4 байта на одно число, для BIGINT 8 байт.
    200 * 4 * 10'000'000 = 8'000'000'000 или 8Gb.
    200 * 8 * 10'000'000 = 16'000'000'000 или 16Gb.
    По нынешним меркам сущие пустяки.
    Хранить, конечно же, нужно в нормальной форме, иначе суммирование придётся делать в приложении.
    Ответ написан
    3 комментария
  • Как в php при помощи SimpleXml добавить атрибуты?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    <?php
    $xml = new SimpleXmlElement(<<<XML
    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE yml_catalog SYSTEM "shops.dtd">
    <yml_catalog>
    </yml_catalog>
    XML
    );
    $xml->addAttribute('date', (new DateTimeImmutable())->format('Y-m-d H:i'));
    print $xml->asXML();
    // <?xml version="1.0" encoding="utf-8"?>
    // <!DOCTYPE yml_catalog SYSTEM "shops.dtd">
    // <yml_catalog date="2024-01-24 16:42">
    // </yml_catalog>
    Ответ написан
    Комментировать
  • VS Code творит лютую дичь при компиляции и отладке?

    wataru
    @wataru
    Разработчик на С++, экс-олимпиадник.
    Это называется "оптимизируюший компилятор". Он может выкинуть какие-то строчки, часть кода переписать и перетасовать. Соптимизировать по своему усмотрению. Поэтому для отладки используют специальные debug сборки. Установите компилятору флаг -O0, чтобы отлкючить оптимизацию.

    В закоменченную фунцию он может заходить, если вы не перекомпилировали перед запуском.
    Ответ написан
    7 комментариев
  • Почему на хостинге у многих есть папка public_html и почему она так называется?

    martin74ua
    @martin74ua Куратор тега Linux
    Linux administrator
    Раньше, когда трава была зеленее, интернет меньше и добрее, существовало вот такое в настройках веб сервера:

    # UserDir: The name of the directory that is appended onto a user's home
    # directory if a ~user request is received.
    #
    # The path to the end user account 'public_html' directory must be
    # accessible to the webserver userid. This usually means that ~userid
    # must have permissions of 711, ~userid/public_html must have permissions
    # of 755, and documents contained therein must be world-readable.
    # Otherwise, the client will only receive a "403 Forbidden" message.
    #
    # See also: httpd.apache.org/docs/misc/FAQ.html#forbidden
    #


    Т.е. можно было просто получить логин на сервер, где был запущен веб сервер и получить домашнюю страничку вида:
    example.com/~username

    И вот с тех древних времен так и потянулось... Каталог, в котором размещаются файлы сайта - public_html....
    Ответ написан
    4 комментария
  • Как исправить несоответствие версии сортировки?

    Melkij
    @Melkij
    PostgreSQL DBA
    Специальный варнинг, очень явно подсказывающий, что держать физическую репликацию на разных ОС - идея плохая. Причина в время от времени происходящих изменении правил сортировки строк: https://wiki.postgresql.org/wiki/Locale_data_changes
    СУБД это задевает в части индексов, если на мастере было '1-1' < '11', то запись запишется в одно место btree, а если на реплике оператор сравнения говорит что '1-1' > '11', то выполнение запроса смотрит в логичное для этого результата место индекса и вообще не находит данные. Потому что мастер их записал располагая другим ответом функции сравнения строк.
    Так и проявляется IRL, поиск по индексу говорит что данных нет, но если форсировать seqscan - то данные находятся.

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

    delphinpro
    @delphinpro Куратор тега PHP
    frontend developer
    простая работа со строковыми функциями.
    1. Найти позицию последнего слэша
    2. Вырезать часть строки от начала до найденной позиции
    Ответ написан
    3 комментария
  • Почему не работает maring и padding?

    delphinpro
    @delphinpro Куратор тега CSS
    frontend developer
    У inline элементов не может быть вертикальных внешних отступов (margin).
    Внутренние отступы (padding) работают.
    Сделайте элемент блочным block, flex, inline-block и т.п.
    Ответ написан
    Комментировать
  • Как вывести разные названия раздела в меню и в заголовке в 1С Битрикс?

    @samsepi0l
    Что значит как вывести? В зависимости от того как у вас хранятся эти названия, получаете далее выводите.
    Если вопрос стоит как сделать, добавляете дополнительное поле для раздела и туда пишите название для меню. Потом в нужном месте получаете, выводите.
    Ответ написан
    Комментировать
  • Как вывести дату на диаграмме, если ее нет в базе?

    @RusaDrako
    При формировании данных сначала построй массив дат за период (пустые), а потом заполни его данными (которые есть).

    // Получаем массив $res
    // Формируем массив дат
    $list = [];
    $minDate = strtotime('-7 days');
    $maxDate = strtotime(date());
    for($date = $minDate; $date <= $maxDate; $date += 24*60*60) {
    	$list[date('Y-m-d', $date)] = 0;
    }
    // Заполняем данными
    foreach ($res as $row) {
    	$list[date('d.m.Y', strtotime($row['stat_day']))] = $row['count'];
    }
    $list_date[] = array_keys($list);
    $list_count[] = array_values($list);
    Ответ написан
    2 комментария
  • Как отследить падение Апача и перезапустить его?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Файл /usr/lib/systemd/system/httpd.service: Restart=on-failure
    И конечно разумеется: systemctl daemon-reload
    Ответ написан
    3 комментария
  • Как отследить падение Апача и перезапустить его?

    @q2digger
    никого не трогаю, починяю примус
    monit
    Ответ написан
    8 комментариев