Задать вопрос
  • Docker. Docker-compose. Запуск через cron. Как?

    @vitaly_il1
    DevOps Consulting
    1) посмотрите ошибки при запуске из крона - в почте, если нет редиректа
    2) попробуйте без timestamp в имени файла - мне помнится что были какие-то проблемы
    Ответ написан
    3 комментария
  • Можно ли развить IT стартап без знания кодирования и как?

    @caballero
    Программист
    стартап это прежде всего бизнес а не "сайт-платформа"
    сделать сайт самое простое нанял айтишнегов и сделали, а вот продвинть раскруть и заставить приносить прибыль это уже никакого отношения к кодированию не имеет
    Ответ написан
    Комментировать
  • Можно ли развить IT стартап без знания кодирования и как?

    DevMan
    @DevMan
    фигня вопрос: идея на миллиард – шоб взлетело.
    никто не пилит стартапы без денег. или вкладывают свои (не обязательно буквально, хотя и это не редкость), или ищут людей, которые поверят в идею и вложаться.
    Ответ написан
    Комментировать
  • Как правильно использовать mysqli_num_rows()?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Это очень хороший вопрос.
    Ответ на него - никак не использовать.

    Да, в mysqli действительно есть специальная функция, которая может сказать, какое количество строк вернул запрос SELECT.
    Традиционно употребляется в двух случаях:

    а) когда это не нужно
    б) когда приводит к катастрофическим последствиям

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

    Второй вариант - если эта функция используется чтобы посчитать, сколько строк лежит в БД. В таком варианте это будет откровенное вредительство, поскольку данных может быть очень много, и все эти данные БД должна сначала получить у себя, а потом отправить в РНР. Заняв всю доступную память или даже вызвав фатальную ошибку нехватки памяти.

    Правильным решением этой задачи будет сделать запрос вида SELECT COUNT(*) FROM .... В этом случае БД сама внутри себя посчитает количество строк (очень быстро) и вернёт только одно число, которое не занимает оперативную память вообще.

    Вот и получается, что функция mysqli_num_rows() является либо вредной, либо бесполезной

    В данном случае надо сначала получить записи из БД
    // БЕЗОПАСНО выполняем запрос
    $stmt = $link->prepare("SELECT * FROM comments WHERE art_id = ?");
    $stmt->bind_param("s", $note_id);
    $stmt->execute();
    // получаем данные
    $result = $stmt->get_result();
    $comments = $result->fetch_all(MYSQLI_ASSOC);
    ?>

    А после этого уже их выводить
    <?php if ($comments): ?>
        <?php foreach ($comments as $row): ?>
             <?=$row['comment']?><br>
        <?php endforeach ?>
    <?php else: ?>
        Эту запись еще никто не комментировал
    <?php endif ?>


    Как видно, никакой mysqli_num_rows нам не понадобилось
    Ответ написан
    9 комментариев
  • Почему при описании старых ПК объем ОЗУ указывают в словах а не байтах?

    sotvm
    @sotvm
    Умный поймёт, а дураку и так всё равно.
    2000 ячеек, каждая по 20
    это не одно и тоже , что 200 по 200 или 20 по 2000,
    хотя в байтах объём будет одинаков.
    так понятно?
    Ответ написан
    4 комментария
  • Взламывают базу данных, как?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    база данных открта внешне, т.е к ней можно удалённо подключаться

    Одно из другого не следует. Для работы из вне имеет смысл использовать ssh тоннель.

    только с одного ip адреса - адреса где лежит сайт

    Если у вас shared хостинг - у меня для вас плохие новости...

    как это возможно?

    Инспектируйте код вашего сайта, полностью. Возможно права на загружаемые файлы не корректные, или в web root лежит помимо точки входа еще что-то исполняемое.
    Вполне возможно в случае ошибки - вы стектрейс выводите и еще какие-то данные.
    Возможно debug панель не закрыта.
    Возможно у вас пароль легко взламывается.
    Возможно взломали не конкретно вас, а хостера.

    Но начние с поиска: у кого в принципе есть доступ к вашей БД. Иногда взлом происходит изнутри, это печально, но случается.
    Ответ написан
    Комментировать
  • Как защитить себя в чужой wi-fi сети?

    @rPman
    Сама по себе открытая сетка таит в себе опасности только для веб-сайтов, открываемых не по https протоколу, плюс владелец сети может мониторить посещаемые ресурсы через dns и ip адреса сайтов, если они работают без cdn-like прослоек (подчеркиваю - будет понятно какие сайты и как много данных туда и оттуда качаешь, не больше, возможно при использовании адресного анализа по таймингам и размерам данных, определять для некоторых сайтах, на каких страницах примерно, находишься, и то на уровне вероятностей).

    В браузере к примеру можно запретить в принципе использовать http протокол (firefox - настройки - privacy - https only mode), и следить, чтобы сертификат на сайтах не давал бы предупреждений (сообщение об этом сложно пропустить).

    p.s. классический вектор атаки, заходишь на местный файл обменник ftp, скачиваешь казалось бы заведомо надежную вещь, но злой админ/провайдер на автомате инжектит трояна в каждый exe-шник, загружаемый от туда.

    Кстати, трояна можно разместить и в каком-нибудь с виду безобидном avi файле, если пользователь был на столько глуп что пользуется штатным windows проигрывателем (там когда то была опция автоматической загрузки кодека по адресу в видео файле, хз как обстоит дело сейчас, маловероятно что ее убрали)

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

    Ну и на засыпку, кто знает, что какой-нибудь drweb cureit/kaspersky cleaner/ (подставь любого производителя ПО на которого можно надавить административно) подсовывают на машины российских клиентов, т.е. атака не провайдера а через разработчика.
    Ответ написан
    Комментировать
  • Исправить ошибку cors, используя nginx на стороне клиента?

    Может на сайте сделаете какой-нибудь URL, который будет отдавать правильные CORS заголовки, и принимать XML, который тут же, уже с сервера (которому не важны CORS'ы), уйдёт на видеорегистраторы.
    Ответ написан
  • Почему php считает две одинаковые строки за разные?

    toxa82
    @toxa82
    То что выглядит как пробел может иметь другой код символа и поэтому строки могут быть не равны.
    Ответ написан
    3 комментария
  • Для чего класть подключение файла в буфер?

    Stalker_RED
    @Stalker_RED
    Это на случай, если в подключаемом файле есть вывод, типа echo, print_r или фрагменты html.
    Ответ написан
    1 комментарий
  • Для чего класть подключение файла в буфер?

    @Nc_Soft
    Это чтобы выдать контент не сразу во время вызова, а собрать его в переменную.
    Ответ написан
    Комментировать
  • Как спроектировать фреймворк?

    php666
    @php666
    PHP-макака
    Я понимаю про SOLID там, но если следовать правилу единой ответсвенности, то файлов будет просто целая гора,
    да. так оно и и будет

    Также встает вопрос, например, у меня сейчас маршрутизация а-ля микрофреймворк, чтобы прикрутить MVC надо реализовывать поиск контроллера и вызов метода. Должен ли этим заниматься отдельный класс?
    не надо спрашивать такие вопросы. Если ты что-то пишешь, то должен быть уверен в правильности своей архитектуры. Иначе ты на каждый чих будешь вопрос задавать.

    Пишу небольшой фреймворк для себя в образовательных целях
    в целом идея абсолютно глупая, вредная и приведет тебя только к выгоранию. Ибо по сути ты будешь бесплатно работать, что-то делать, а толку не будет. Я сам писал фреймворк несколько лет в свободное время, написал, но лучше тебе потратить это всё на изучение того, что сейчас есть и сделать конечный продукт - будет больше пользы. Плюс опыт работы на актуальном инструменте в карму.

    Любой фреймворк сейчас - это совокупность из десятков кубиков, каждый из которых разрабатывался и тестировался десятками, а то и сотнями людей, лучших профессионалов в своей области. Попытки в 21 году написать свой фреймворк, всё равно, что в одиночку спроектировать автомобиль, ЛУЧШЕ, чем мировые аналоги. Аналогия примерно такая же, т.е. это НЕВОЗМОЖНО.

    Не занимайся ерундой.
    Ответ написан
    5 комментариев
  • Что лучше использовать для хранения уникальных за сутки ip адресов?

    sergiks
    @sergiks Куратор тега PHP
    ♬♬
    Redis вполне подходит для задачи.

    К примеру, для каждого ip формировать ключ вида дата:ip. Например SET "20210205:192.168.1.5" "" — для каждого ip создавать ключ с пустой строкой.

    После полуночи IP начнут сохраняться с новой датой, а PHP скрипт по крону разберёт предыдущие сутки KEYS "20210205:*" и сохранит собранные IP в БД.

    Ещё лучше каждые сутки держать как хэш, где имя это дата, поля ip, и значения счетчики хитов с этого ip. Делать каждый раз HINCRBY "дата" "ip" 1 См. HINCRBY

    P.S. ip, если там только IPv4, это 4 байта, можно хранить как целые числа, а не строки – компактнее.
    Ответ написан
    2 комментария
  • Спасет ли это от mysql инъекции?

    Да.
    Ответ написан
    Комментировать
  • Как исправить ошибку при создании подготовленного MYSQL запроса?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    '?' - строка с вопросительным знаком
    ? - плейсхолдер
    Ответ написан
    Комментировать
  • Платежные API, как и где хранить информацию о платеже между редиректами?

    Sanes
    @Sanes
    Платежная система присылает ответ на обработчик отдельным запросом. Редирект пользователя на ваше усмотрение. Можно на список счетов или на страницу счета. Зависит от платежной системы. Как укажете, так и будет.
    Ответ написан
    Комментировать
  • Как записать iso windows на флешку из linux?

    @nehrung
    Не забывайте кликать кнопку "Отметить решением"!
    Есть такая кроссплатформенная утилита - unetbootin. С её помощью любой загрузочный iso-образ легко превращается в Live-USB-флэшку.
    Ответ написан
    4 комментария
  • Как реализуются трекающие пиксели?

    Lynn
    @Lynn
    nginx, js, css
    Запрос за пикселем ничем не отличается от любого другого. Никто не мешает передать его в nodejs ещё и обрабатывать как угодно — класть в базу, считать статистику и тп
    Ответ написан
    5 комментариев