• Как выявить символы не поддерживаемые кодировкой?

    @Vitsliputsli
    Антон Шаманов,
    висивиг редактор т.ч. ограничить проблематично

    Странно, неужели не умеет такое из коробки? Тем не менее это наиболее простой для вас и наиболее удобный для пользователя вариант, если не менять таблицу.


    кодировку таблицы нельзя сменить как раз по причине того, что есть другие приложения использующие таблицу, поэтому хранить в другом формате не вариант.

    Это проблема, если в БД пишет код, которым вы не управляете, такое чревато.
    Написано
  • Как выявить символы не поддерживаемые кодировкой?

    @Vitsliputsli
    Михаил Ливач, да, согласен, можно посимвольно сравнить. Тогда замечание снимается.
    Но я бы в этом случае просто белый список символов сделал прямо на фронте.
    Написано
  • Как выявить символы не поддерживаемые кодировкой?

    @Vitsliputsli

    Соотв-но если изначальный utf8 не равен итоговому utf8 значит в исходной строке были символы вне кодовой таблицы koi8r

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

    @Vitsliputsli

    конвертнуть строку в koi8r и сравнить посимвольно

    Не нужно сравнивать, просто на фронте разрешите только те символы, которые нормально конвертируются.
    Либо как предложил Adamos, храните в base64, или в json с преобразованием utf в коды.
    Написано
  • Переподключение PHP к MySQL как правильно организовать?

    @Vitsliputsli
    Владимир Егудин,

    Применительно к данной ситуации - отключение не хорошая практика, так как подключение очень дорогостоящая операция. Как следствие в какой момент отключаться и подключаться - не понятно.

    Подключение не бесплатное, но далеко не дорогостоющее, тем более для mysql. И я не предлагаю для каждого запроса делать коннект, а реконнект по эксепшену это ведь тоже коннект.
    Отключаться нужно по неактивности, как выберете, хоть 10 минут, хоть 1 час. В вашей схеме, при асинхронности, это не должно быть проблемой.
    Я не настаиваю, что только так нужно, но на мой взгляд вместо "словить" ошибку и среагировать лучше недопустить ошибку.
    Написано
  • Как отправить HTTP на локальный сервер?

    @Vitsliputsli
    Lynn «Кофеман»,
    зачем писать две строчки если их можно не писать?

    Действия должны отображаться в коде, все что в нем не отображается - "магия". А это плохо, любая магия затрудняет чтение кода, просто пхпшники привыкли что искать нужно в $_POST и им это кажется само собой разумеющимся. Но это "странная магия", вероятно со времен Personal Home Page.
    Вообще, наличие такого парсинга это прекрасно, проблема что управлять им нельзя, и он сам вызывается в определенных условиях.

    GET и POST покрывают 99% запросов в обычном сайте (если вы не пишите REST API).

    Да, даже не обычные сайты в 80% случаев обходятся только get и post, только вот шлют в post json, ну иногда xml. Потому как rest это основной тренд, путь и не restful.

    И ещё один плюс x-www-form-urlencoded, его можно отправить без всякого JS

    Малозначимый плюс, пойди найди веб-ресурс без js.
    Написано
  • Как отправить HTTP на локальный сервер?

    @Vitsliputsli
    Lynn «Кофеман»,
    отправлять стандартный x-www-form-urlencoded, который PHP автоматически разберёт и положит в $_POST, а не вычитывать из php://input и парсить вручную json.

    А в чем кривизна? Там две строчки, причем очень логичные, читаем вход и парсим его. А вот то, что только для x-www-form-urlencoded и только для post-запросов данные парсятся внутри php и кладутся в некий глобальный массив выглядит как тяжелое наследство языка. Да и json всяко лучше, как более человекочитаемый и более лаконичный без этих километровых разделителей.
    Написано
  • Как отладить обновление строки, залоченой SELECT FOR UPDATE в MySQL8?

    @Vitsliputsli
    Ипатьев, может не совсем понятно написал. Я про то, что это не механизм тотального контроля, поэтому не зная что делает каждая из сторон для избежания гонки очень сложно с гонкой бороться.
    Непонятно откуда уверенность что сторонняя транзакция не выполнилась раньше, или может позже, но ничего не изменив, или может она не ждет блокировку и роллбечится.
    Написано
  • Как отладить обновление строки, залоченой SELECT FOR UPDATE в MySQL8?

    @Vitsliputsli

    сторонний сервис (у меня нет к нему доступа, я не знаю как он работает)

    select for update это попытка избежать гонки в вашем приложении, а не система прав. Она никому не запрещает запись, т.е. у "стороннего сервиса" нет такого запрета. Если вы не контролируете запись в БД, select for update вам ничем не поможет.
    Написано
  • Как отправить HTTP на локальный сервер?

    @Vitsliputsli
    Lynn «Кофеман»,
    хотя читать JSON в PHP несколько криво и лучше бы этого избегать

    Что именно криво и как этого избегать?
    Написано
  • В чем причина ошибки «unknown filesystem» команды grub2-install?

    @Vitsliputsli
    Antowa Kartowa, grub куда устанавливаете, в MBR или в раздел?
    Первый — bootable

    Если речь про метку на разделе, то скорее всего ставите в раздел, а здесь могут быть проблемы, в начале раздела не так много места и grub не сможет там разместить все необходимые модули для загрузки. А если используете fat32 и lvm они необходимы.
    Написано
  • Стабилен ли Manjaro?

    @Vitsliputsli
    Дмитрий, в том то и дело, что manjaro ставят те, кто не хочет настраивать сам, поэтому возможно отсюда и косяки, т.к. процент тех, кто не понимает что делает выше.
    Написано
  • Как передать переменную?

    @Vitsliputsli
    alexalexes, именно так, если СУБД поддерживает, то лучше использовать.
    Написано
  • Как передать переменную?

    @Vitsliputsli
    alexalexes, AUser0,
    Я немного слукавил, не со всех кавычек можно совершить побег.

    Не факт, кодировок много, в UTF8 полно различных вариантов кавычек и проверять как они все работают - так себе затея. Вспомните дыру в PDO в китайской кодировке. Поэтому гарантировать на 100% отсутствие инъекции может только prepared statements, причем натуральные, а не эмуляция.
    А вот с чиловым параметром проще:
    "SELECT * FROM `news_cards` WHERE id  = " . (int)$id

    здесь уже никак не получится провести инъекцию.
    Написано
  • Какое преимущество для текущей конфигурации обеспечивает настройка сетей VLAN?

    @Vitsliputsli
    Какое преимущество

    А какая задача?

    Можно же взять S1 и подключить к нему PC1, PC4 и т.д.

    Если задача изолировать по-парно машины и физически возможно переподключить - то можно, и на коммутаторах доступ в другие подсети закрыт (если это разные подсети, конечно, без маски непонятно).
    Если физически невозможно, то можно это сделать с помощью VLAN.
    Также вы можете вынести управление коммутаторами в отдельный VLAN для пущей безопасности.
    Написано
  • Как нынче делают WSS?

    @Vitsliputsli
    Антон Антон, а что там не предназначено? И почему на ноде лучше?
    Написано
  • Как писать запросы к API на стадии разработки, если backend еще нигде не хостится?

    @Vitsliputsli

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

    Мокирование
    Написано
  • Как быть если две библиотеки начинают зависят друг от друга?

    @Vitsliputsli
    inilim2,
    ну если это единственный выход, то грустно(


    вам предлагают чтобы core библиотека имела зависимость от "строковой" и "массивной" библиотек одновременно. Далее в проекте подключается только core, а строки и массивы подтягиваются сами.

    сделайте наоборот, выделите в Array Lib и String Lib общую часть, назовите ее Core Lib.
    Т.е. в ваших проектах по прежнему подключается Array Lib и/или String Lib. А с зависимостями прилетает Core Lib, которую используют и 1ая и 2ая библиотека.
    Написано
  • Почему скрипт выполняется не до конца?

    @Vitsliputsli
    tgarl, вряд ли, даже если это fpm, здесь пишем в файл, а не в стандартный вывод, поэтому неважно когда nginx устанет ждать. ignore_user_abort(true) опять же ни на что не повлияет, т.к. ничего не отправляем в стандартный вывод.
    max_execution_time или какаято иная причина преждевременного прерывания скрипта должна быть отражена в логе.
    Нужно больше информации, и больше вариантов запуска вышеуказанного скрипта. Сомневаюсь, что в логах ничего нет. У нас аш 3 приложения: интерпретатор выполняющий скрипт, мастер процесс fpm, nginx. И у каждого свои логи, и каждый както должен реагировать.
    Написано
  • Почему скрипт выполняется не до конца?

    @Vitsliputsli
    crack_user, прям такой скрипт? и все, больше в нем ничего нет?
    Это php-fpm или php-cli? Запустите и в том, и в другом, если есть другая версия php попробуйте и в ней тоже.
    Что будет если убрать sleep? Если поменять его значение?
    Добавьте вывод на экран инфо для каждого шага.

    Проблему наблюдаете только на сервере где запускаете, локально ее нет? Если да, то с этим скриптом уже можно задать вопрос владельцам сервера, что за хрень творится. Вполне возможно, что какието вредители на сервере жестко убивают скрипты.
    Написано