Задать вопрос
  • Как сделать в MySQL изменение поля строки через время?

    Lastor
    @Lastor
    В чем сила, брат? В ньютонах.
    Вообще это очень нерационально гонять mysql почем зря каждую секунду.
    Более целесообразно при выборке вместо поля suc проверять разницу текущего времени с полем date.
    например
    select * from tableName where `date` > now() - interval 10 day

    А если suc принципиально нужен, то:
    select id, login, `date`, (`date` > now() - interval 10 day) as suc from tableName
    Ответ написан
    Комментировать
  • Как заполнить пустой массив хеш таблицей из другого массива php?

    Stalker_RED
    @Stalker_RED
    Ошибка в ничем. Код работает: https://ideone.com/UQ1EGS

    И вот такой код работает, причем вообще без циклов. На больших массивах разница в скорости будет заметна.
    $result = ['data' => [
    	'main'      => $keywords['data'],
    	'secondary' => $keywords['data'],
    ]];
    https://ideone.com/fi0l5o

    А если вам не просто сдублировать, то откройте для себя array_filter()
    Ответ написан
    Комментировать
  • Какие способы декодирования существуют в PHP?

    delphinpro
    @delphinpro Куратор тега PHP
    frontend developer
    Обычный обфусцированный код.
    Достаточно отворматировать, чтобы уловить что там

    \x74\x69\155\145 - юникодная запись = time
    (upd: подобные строки легко перевести в читамеый вид, закинув ее в consol.log в браузере
    Или в phpStorm Вырезать/Вставить Ctrl-X/Ctrl-V)

    $O8666750554638273663 - переменная
    O6505149678668561343: - метка

    $list = ["openInventory" => [
      "name" => "Taking Inventory",
      "requires" => []
    ];


    public function __construct(Server $O8666750554638273663) {
            goto O1970219884901744879;
    
            O6505149678668561343:
            $O1777212593691497481 = @fopen($this->path, "wb");
            goto O4083818622447351734;
    
            O3393899177948378635:
            $this->fp = $O1777212593691497481;
            goto O0537484758143303834;
    
            O8048393773490650940:
            $this->encodeData();
            goto O2278372111902823051;
    
            O2791274778590356360:
            $this->generalData();
            goto O8382244228756303546;
    
            O1005405451303321896:
            $this->data["time"] = $this->time;
            goto O6370898434236048902;
    
            O8942154602257954378:


    Можно закинуть в IDE, сделать автоформат, посидеть, переименовав переменные в нормальные имена и всё. А если дорабатывать собрались, то пожалуй стоит сделать рефакторинг, избавившись от goto. Тут придется посидеть подольше.
    Ответ написан
    Комментировать
  • Почему canvas на телефоне работает по другому?

    sfi0zy
    @sfi0zy Куратор тега JavaScript
    Creative frontend developer
    В codepen я нашел интересный проект...

    Это WebGL Fluid Simulation. И оригинальная ее версия на телефонах работает хорошо. Вы нашли какую-то из вариаций на тему этой штуки. Думаю для вас будет проще взять оригинал, а не отлаживать тот пример, который вы нашли.
    Ответ написан
    1 комментарий
  • Как оптимизировать таблицу с JSON строкой в mysql?

    Lastor
    @Lastor
    В чем сила, брат? В ньютонах.
    Если вы уверены в том, что в обозримом будущем вам не понадобится поиск по другим полям или вы точно не захотите сделать join с их участием, то json будет работать быстрее. И сохранять его проще.
    А если потом захотите, то придётся создать дополнительные таблицы, и сохранить как нормализованные данные.
    Но эта задача не сложна и всего лишь потенциальна (может и не понадобится).
    Ответ написан
    6 комментариев
  • Как сменить подпись создателя коммита jetBrains?

    xez
    @xez
    TL Junior Roo
    https://git-scm.com/book/ru/v2/Введение-Первоначал...

    Первое, что вам следует сделать после установки Git — указать ваше имя и адрес электронной почты. Это важно, потому что каждый коммит в Git содержит эту информацию, и она включена в коммиты, передаваемые вами, и не может быть далее изменена:

    $ git config --global user.name "John Doe"
    $ git config --global user.email johndoe@example.com


    Ответ написан
    Комментировать
  • Как настроить SSL сертификат на нескольких серверах, имея лишь одно доменное имя?


    но у меня есть лишь одно доменное имя

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


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

    Сертификат тебе нужен только в одном случае - если ты делаешь публично доступный по Https сайт или сервис.

    Если ты делаешь сервис только для других своих сервисов, то можешь использовать самоподписанные сертификаты.
    Если ты общаешься не по Https (как в случае с базой данных", то тебе Https-сертификат тоже не нужен. (Если база данных поддерживает TLS, то можно тоже воспользоваться самоподписанным)
    Ответ написан
    Комментировать
  • Как мне сделать фильтрацию по категориям, из базы данных (mysql)?

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

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    Классическая потеря this. Правда, странно, что при этом нет ошибок в консоли, когда вы на window пытаетесь removeClass вызвать.

    $(".box43z6r6QZ").click(function(){
       var $el = $(this);
    
        $el.addClass("hG8KlY3Q");
    
        setTimeout(function(){
            $el.removeClass("hG8KlY3Q");
        }, 1000);
    });
    Ответ написан
    Комментировать
  • PHPStan проверка свойства класса при наследовании?

    @nolotion
    стан тебе все правильно говорит - ты объявляешь параметр объекта класса A, а обращаешься к атрибутам которых там нет.
    если у тебя кейс "а я так не вызываю" - то и пиши правильную сигнатуру метода: public static function price(B $objectB)

    потому что если твой говнокод в классе C будет использовать другой разработчик - то он передаст тебе какой-нибудь объект D extends A без опшинов и будет прав, потому что ты сам написал такой контракт
    а твой код упадет
    Ответ написан
    Комментировать
  • Почему у php недостаточно прав на перезапись файлов?

    Stalker_RED
    @Stalker_RED
    Запускается через php скрипт.
    как именно запускается? Через SSH-консоль, через вебсервер, может через крон? Это все может быть под разными пользователями.

    Для начала разобраться какие пользователи вообще замешаны. Для этого на боевом сервере делаешь эксперимент:
    создаешь файлик от имени обычного скрипта, от имени вашего опртимизатора, и от имени фтп-заливки.
    Вот прям создай папочку "test" и залей в нее hello_ftp.txt через ftp
    Затем из php скрипта сделай file_put_contents('test/hello_php.txt', 'foo');
    И в оптимизатор тоже добавь похожее file_put_contents('test/hello_optimizator.txt', 'foo');

    Затем зайди через SSH в папку test, напиши ls -l
    Если SSH нет, то можно опять-же сделать скриптом
    $files = glob('/path/to/test/*');
    foreach ($files as $fn) {
        echo $fn . ' | ' . fileowner($fn) . '<br>' . PHP_EOL;
    }

    Скорее всего найдутся отличия. Останется придумать как изменить способ запуска, чтобы проблема не поворялась в будущем, ну и поправить владельца у уже существующих файлов (chown).
    Ответ написан
    3 комментария
  • Как отправить форму на почту с помощью PHP?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    PHP файл, который должен отправлять форму мне на почту.
    Не должен, должен передать в очередь отправки. Дальше система сама решает что делать.

    Подскажите, пожалуйста, в чем моя ошибка?
    Использование внутренней функции mail() оправдано только в случае если это полностью контролируемый и настроенный вами сервер.

    Используйте phpmailer/swiftmailer.
    Ответ написан
    1 комментарий
  • Как скопировать файл на ext4 image без прав root?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Да, можно, используя debugfs:

    $ dd if=/dev/zero of=test.img bs=1M count=10
    $ mkfs.ext4 test.img
    $ debugfs -w test.img
    debugfs: write my_file.txt new_file.txt
    Ответ написан
    1 комментарий
  • Как сделать чтобы PHP скрипт по завершении работы отправлял на фронт уведомление?


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

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

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

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

    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, чтобы она освобождала память как только может.
    Ответ написан
    Комментировать