Задать вопрос
  • Возможно ли восстановить данные с нерабочего смартфона?

    15432
    @15432
    Системный программист ^_^
    Да, для этого процессор и память перепаивают на полностью рабочий донорский телефон, запускают и извлекают данные. Обычно стоит дорого, но данные важнее
    Ответ написан
    5 комментариев
  • На сайте очень много видео. Какие есть идеи в оптимизации?

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

    @alexalexes
    1. Активные пользователи хранятся там же, где неактивные пользователи - в нормальной реляционной СУБД, а не редис.
    Активный пользователь отличается от неактивного, наличием даты-время подтверждения эл. почты. В этой же записи пользователя в отдельном атрибуте храните сгенерированный хеш-код для подтверждения, который используете в ссылке.
    2. В неавторизованном состоянии предусматриваете возможность повторной высылки кода подтверждения на указанный эл. адрес. (Прямо отдельная форма).
    3. Любые действия, связанные с высылкой письма должно подтверждаться проверкой пользователя, что он человек (капча, или использование сторонних сервисов проверки).
    4. Скрипт, который обрабатывает ссылку подтверждения почты тоже должен иметь защиту от ддоса.
    Все.
    Ответ написан
    7 комментариев
  • Кривая работа функции date php?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Неделя начинается с понедельника и идентифицируется своим порядковым номером в году. Первой календарной неделей года считают первую неделю, содержащую первый четверг текущего года. Последней календарной неделей календарного года считают неделю, которая предшествует первой календарной неделе следующего года. ISO 8601.
    Соответственно, 2024-12-29 - воскресенье, последний день последней, 52-й недели года.
    2024-12-30 - понедельник, входящий в неделю, где четвергом является 2025-01-02, то есть в первую неделю 2025 года.
    Ответ написан
    6 комментариев
  • Почему не могу зайти в phpmyadmin, 404 Not Found?

    @dodo512
    location ~ ^/phpmyadmin/(.+\.php)$ {
        root /usr/share/phpmyadmin;

    Путь к файлу формируется путём простого добавления URI к значению директивы root.

    URI = /phpmyadmin/index.php
    root = /usr/share/phpmyadmin

    В итоге nginx будет искать файл /usr/share/phpmyadmin/phpmyadmin/index.php

    Если в root убрать лишний /phpmyadmin.

    location ~ ^/phpmyadmin/(.+\.php)$ {
        root /usr/share;

    nginx будет искать файл /usr/share/phpmyadmin/index.php
    Ответ написан
    Комментировать
  • Стоит ли использовать Django для создания многофункционального сайта?

    @Belvarm
    Java TeamLead, интеграционные решения
    Стоит использовать те фреймворки, которые вы знаете, а то будет мало пользы
    Ответ написан
    Комментировать
  • Почему PHP выполняет математические операции неправильно?

    Коротко - потому что IEEE 754

    Выполняет он математические операции правильно, но некоторые числа компьютер просто не способен представить со 100% точностью, тк для них нужно было бы бесконечное количество памяти.

    Точно также, как мы не можем записать все цифры числа 1/3 в десятичной системе, точно также и компьютер иногда не может записать все цифры в двоичной.

    Если ты работаешь с деньгами, то тогда используй то, что делают все банки - представляй суммы денег не как дробные числа, а как целые. Например место 1.5 рублей записывай как 150 копеек. Запятую добавишь при выводе человеку.
    btw тут в комментах пишут, что для денег тоже есть паттерн по-лучше конкретно для php.

    Если при делении у тебя получилось дробное количество копеек - округляй так, как велит закон.

    Если ты делаешь какие-то математические вычисления - возможно тебе нужны рациональные числа.
    Не знаю, что обычно для этого в пхп используют, но нагуглил https://github.com/webgriffe/rational
    https://github.com/markrogoyski/math-php

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

    Если тебе критически важна скорость, а точность - не так важна, то оставайся на IEEE754 и просто округляй то N значимых цифр (обычно больше 5 цифр мало кому нужно)
    Ответ написан
    13 комментариев
  • Почему PHP выполняет математические операции неправильно?

    Vamp
    @Vamp
    Потому что типом данных double нет возможности представить число 0.58. Поэтому компьютер берёт наиболее близкое к 0.58 число, которое double может выразить.

    Если вам нужны точные вычисления, то следует воспользоваться специальными функциями:

    $format = bcdiv("580000000", "1000000000", 2); // "0.58"
    
    var_dump(bcmul($format, "100")); // string(2) "58"


    Существует даже специальный сайт, рассказывающий о данной особенности математики чисел с плавающей запятой: https://0.30000000000000004.com/
    Ответ написан
    Комментировать
  • ИИ на стадии обучения программированию. Стоит ли?

    ИИ не позволяет тебе научиться двум очень важным навыкам:
    1. Поиск и фактчекинг информации
    2. Дебаггинг, самостоятельный поиск и решение проблем.

    "Ломание головы, почему код не работает" - это важная часть учёбы.

    Любая LLM - это не всезнающий джин и у всех есть свои неприятные ограничения с которыми ты рано или поздно столкнёшься.

    И RAG, всякие MoE, подключение поисковика не всегда могут помочь.

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

    Я не говорю, что тебе нужно срочно отказываться и прекращать использовать chatgpt. Это точно такой же инструмент, как и поисковик, всякие QnA, stackoverfloe и тд, со своими ограничениями и нишами, где он хорошо работает.
    Ответ написан
    Комментировать
  • Устанавливать ли в php таймзону пользователя?

    @alexalexes
    Проблем с временными зонами вообще не будет, если их представление выдавить максимально ближе к модели представления данных на интерфейсе пользователя.
    Нужно конвертировать в строку только непосредственно перед отрисовкой дату и время из UTC, и обратно загонять время в UTC, если забираете пользовательский ввод.
    Весь бек должен работать в одной временной зоне, а от пользователя знать, что он в такой-то временной зоне, только в контексте сессионной переменной, если это необходимо.
    Ответ написан
    Комментировать
  • Сохранить Json файл в котором присутствует base64 отправленый без urlencode?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Пробелы вполне поддерживаются стандартом JSON - их не нужно никак экранировать и что либо делать с ними.
    Ответ написан
    2 комментария
  • Можно ли прикрутить нативную функцию?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Можно, но не нужно.

    Функция, которая пытается проискейпить все данные скопом сама по себе не нужна. Каждое значение надо форматировать отдельно.
    И уж тем более функция, которая портит исходные данные. Представим, что одну и ту же информацию мы отправляем по емейлу, и в СМС. Сначала проискейпим HTML для шаблона письма, а потом эти же данные отправим в SMS... И там будут эти "
    И уж тем более функция, которой требуется доступ к свойству объекта на запись, который далеко не всегда есть.
    Ответ написан
    3 комментария
  • Можно ли видео на сайте без сохранение на диск показывать в меньшем разрешении?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Видео в любом случае должно быть кем то сконвертировано, перед отправкой клиенту, варианты:
    - Либо множество заранее подготовленных видео роликов с нужным качеством (ютуб так делает), потребуется сильно больше места на диске, но нагрузка на процессор будет сильно меньше + можно выбрать ночное время для обработки.
    - Либо сервер, который будет конвертировать видео в реальном времени, но нагрузка на процессор будет сильно больше.
    Ответ написан
    5 комментариев
  • Какой CRUD генератор для Laravel является общепринятым в 2025?

    Sanes
    @Sanes
    Из популярных и бесплатных MoonShine, FilamentPHP, Orchid. Можно назвать их админками.
    Но толку от них немного. Только базовый функционал, дальше боль.
    А прям генератор, то лучше посмотреть Blueprint
    Ответ написан
    Комментировать
  • Какой использовать стек для написания онлайн сервиса управления производством?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    На том, который лучше всего знают ваши разработчики.
    Ответ написан
    Комментировать
  • Как заменить текст в файле .csv с помощью PHP?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Угу. Сначала понаставим @, чтобы скрыть все ошибки, а потом будем голову ломать, почему ничего не работает и ошибок не показывает.

    А вообще, это делается в одну строку.
    file_put_contents($outfilename, str_replace('Российский рубль', 'RUB', file_get_contents($infilename)));
    Ответ написан
    Комментировать
  • Как реализовать авторизацию на ТВ по 6 значному коду?

    Или проще сделать наоборот: показывать код на мобильном устройстве, а на ТВ вводить?

    Для пользователя проще вводить что-либо на телефоне, а не на телевизоре.

    В общем-то такой способ входа не только на телевизорах и yt практикуется. Такое есть ещё у Microsoft и Github при использовании oauth, например. Ещё видел такое у samsung на телевизорах/мониторах и у nintendo на свиче

    Смысл такой:
    1. Клиент инициирует процесс аутентификации запросом к серверу аутентификации и просит, чтобы аутентификация происходила на другом клиенте. (при этом передаётся clientid / client secret просто чтобы понять, что за приложение этот запрос инициировало).

    2. Сервер генерирует какой-то уникальный идентификатор для этого запроса с некоторым временем жизни (обычно не больше 30 минут). И передаёт его клиенту в ответе на запрос.

    3. Клиент показывает пользователю:
    1) qr-код с ссылкой для аутентификации, где уже зашит этот id
    2) ссылку в виде текста
    3) этот id, если вдруг его придётся вводить руками

    4. Пользователь переходит в итоге по ссылке и опционально вводит этот id. Дальше идёт обычная oauth аутентификация, только без коллбэка (в конце, вместо коллбэка просто страничка аля "всё готово, страницу можно закрыть")

    5. Параллельно с этим клиент в фоне опрашивает сервер аутентификации о том, прошла ли аутентификация (просто периодические запросы раз в n секунд, long polling, sse, websocket - не важно). В один прекрасный момент сервер сообщит, что аутентификация прошла и передаст твои обычные токены (обычно пару access/refresh)
    Ответ написан
    Комментировать
  • Насколько правильным будет решение на ларавель?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    Есть стандартное не надо ничего придумывать.

    Добавляешь слушатель на событие updating
    В слушателе проверяешь нужные поля на isDirty()
    Если нужные поля "dirty" то делаешь манипуляции с отправкой на модерацию

    Открой в исходниках модель и просмотри все методы которые она поставляет. Там много чего интересного и все описано.
    Ответ написан
    Комментировать
  • Как выполнять отладку на php?

    colonel
    @colonel
    Разработчик PHP, Laravel
    Ответ написан
    Комментировать