Задать вопрос
  • Почему поступает пустой запрос, и выдает ошибку?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Бросайте вы эти видеоуроки, они вас плохому научат.
    1. Не надо напрямую подставлять переменные в запрос, для этого есть плейсхолдеры. Читать про SQL Injection.
    2. Не надо руками ловить ошибки mysqli. Надо устанавливать правильные опции при подключении. Читать https://habr.com/ru/post/662523/
    3. Если уж вы ловите ошибки самостоятельно, то выводите полный текст ошибки, а не просто паническое "Ой, что-то случилось!".
    4. Не надо хранить в своей базе данные кредитных карт клиентов, да ещё и вместе с CVV. Учитывая пункт 1, это всё равно, что писать их на заборе. Читать про PCI DSS.
    Ответ написан
    4 комментария
  • Может ли быть MVC Без views?

    View - это не всегда то, что видит пользователь.
    Под View также вполне подпадает json-объект, который возвращает контроллер в случае апишки.


    Или для чистого API есть более подходящие архитектуры?

    MVC - это не то чтобы архитектура, строго говоря. Скорее паттерн, который может быть реализован по разному.
    У тебя есть какие-то объекты-представления, которые отдаются клиенту, какая-то модель предметной области, в которой описаны все ограничения и возможные операции, и контроллер, который гоняет из одного в другое.

    PS: Не нужно придумывать красивое название для архитектуры, чтобы писать нормально.

    А так вообще для вдохновения посмотри на:
    - Hexagonal architecture
    - Onion architecture
    - Clean architecture
    - Ports and adapters
    - N-tier architecture
    - Vertical slice architecture
    Ответ написан
    1 комментарий
  • MYSQL Пишет что неверный синтаксис--из-за этого не пишет результат в переменную соответственно не выводит данные куда нужно?

    delphinpro
    @delphinpro Куратор тега PHP
    frontend developer
    Вы же можете проверить, какой запрос у вас получился:
    $query = "SELECT*FROM `users` WHERE BNB='.$BNB.',BUSD='.$BUSD.', TRX='.$TRX.', USDT='.$USDT.'";
    var_dump($query); die;


    Здесь нет конкатенации. Точки уберите

    $query = "SELECT * FROM `users` WHERE BNB='$BNB' AND BUSD='$BUSD' AND TRX='$TRX' AND USDT='$USDT'";
    Ответ написан
    Комментировать
  • Может ли свитч выступать шлюзом?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Если свитч (коммутатор), всотроен в шлюз (роутер), то проблемы никакой нет.
    Практически все девайсы (устройства) для рынка SOHO (для малых предприятий) так и устроены.
    Другими словами, в каждый небольшой роутер обычно встроен коммутатор.
    Но не наобот - практически никогда во коммутатор не встраивают роутер.

    Так что свич обычно не может выступать шлюзом!

    Но из каждого правила есть исключения - в промышленные, дорогие и управляемые коммутаторы обычно встраивают ПО для обеспечения элементов роутинга :) И тогда коммутатор может быть и частично роутером.
    Ответ написан
    2 комментария
  • Может ли свитч выступать шлюзом?

    paran0id
    @paran0id
    Умный, но ленивый
    Шлюзы (маршрутизаторы) и свитчи (коммутаторы) действуют на разных уровнях модели OSI - третьем и втором соответственно. Хотя бывают и L3-коммутаторы, но это уже не про маленькие предприятия. В маленьких обычно стоит роутер SOHO-класса (домашний), в котором объединены маршрутизатор, коммутатор и точка доступа wifi.
    Ответ написан
    2 комментария
  • Как сделать запрос mysql без цикла?

    iMedved2009
    @iMedved2009
    Не люблю людей
    Ответ написан
    Комментировать
  • Генератор случайного числа с отправкой на почту?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    У вас вопрос буквально уровня
    "Надо в понедельник пойти на алгебру, во вторник на литературу, а по пятницам на обж. Может кто сталкивался с таким???"
    Никаких "вариантов" тут встречать не надо. Если человек в принципе умеет ходить, и знает что такое алгебра с литературой.

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

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    class ResponseObject
    {
        public static function parse(object $data): ResponseObject1|ResponseObject2|ResponseObject3|ResponseObject4
        {
            switch ($data->type) {
                case 'type1':
                    return new ResponseObject1($data);
                case 'type2':
                    return new ResponseObject2($data);
                case 'type3':
                    return new ResponseObject3($data);
                case 'type4':
                    return new ResponseObject4($data); 
            }
        }
    }
    Ответ написан
    3 комментария
  • Возможно ли одним запросом разрешить null во всех столбцах?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Если речь об одной таблице - да, все поля могут быть откорректированы одним ALTER TABLE.
    Если о нескольких - то для каждой таблицы нужно будет выполнить отдельный запрос.
    Ответ написан
    Комментировать
  • Выучил синтаксис языка. как использовать его на практике?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Надо действительно написать этот самый круд.
    А дальше его переписывать.
    Этим можно себя занять очень надолго.
    Причем не надо сразу задрав штаны бежать за красивыми словами - эмвэце, оопэ.
    Учиться надо постепенно. Иначе станешь не разработчиком, а попугаем.

    MVC надо прочувствовать. Надо поставить себя в ситуацию, когда станет понятно - "Вот я дебил, зачем же я SQL вперемешку с HTML писал! Теперь придется выковыривать. Но уж дальше у меня логика и вывод будут разделены!".
    А потом - "Вот я дебил, зачем же я прямо в контроллере всю логику шарабашил! Теперь в консольной команде то ли код дублировать, то ли опять логику из НТТР интерфейса выковыривать".
    И потом - "Вот я дебил, всё сам на коленке писал, когда в фреймворке всё уже готовое!"
    И так много-много итераций.

    И это я не перечисляю совсем уж детсадовские инсайты, типа "вот я дебил, оказывается если SQL запросы не защищать, то и авторизацию по сути писать бесполезно - все равно кто хочешь зайдет" и "Ой, оказывается кроме меня на сайте ещё другие пользователи есть! И им ошибки показывать не надо!"

    В общем, надо сделать простое приложение, по возможности положить его онлайн, и заниматься его развитием.
    Ответ написан
    2 комментария
  • Нужно ли в таких случаях делать защиту от инъекций?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Нужно, разумеется.
    Это как в одном пошлом анекдоте про поручика Ржевского,
    - Запрос есть? Значит нужно.

    Если кажется, что защита слишком сложная, то либо вариант предложенный Сергей delphinpro в комментариях,
    $stmt = mysqli_prepare($connect, "INSERT INTO `bd` (`id`, `name`, `tel`) VALUES (NULL, ?, ?)");
    mysqli_stmt_execute($stmt, [$_POST['name'],  $_POST['tel']]);

    Либо, поскольку это ещё не везде работает, пишется маленькая функция на 5 строк, и кладётся в файл, где прописано соединение с БД
    function prepared_query($mysqli, $sql, $params, $types = "")
    {
        $types = $types ?: str_repeat("s", count($params));
        $stmt = $mysqli->prepare($sql);
        $stmt->bind_param($types, ...$params);
        $stmt->execute();
        return $stmt;
    }

    И дальше просто
    $sql = "INSERT INTO `bd` (`name`, `tel`) VALUES (?,?)";
    prepared_query($connect, $sql, [$_POST['name'], $_POST['tel']]);

    Просто, быстро, аккуратно, безопасно
    Ответ написан
    Комментировать
  • Нужно ли выполнять асинхронные запросы чтоб ускорить выполнение кода на PHP?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Когда я вижу такие вопросы, мне хочется плакать.
    "У меня микроскоп показывает только грязь на пальцах. У меня получится посмотреть вакуоли, если я приделаю к микроскопу ветряной двигатель?"

    Если код работает медленно, то надо не выдумывать какие-то фантазии про асинхронные запросы, а ускорить выполнение кода. Который должен выполняться максимум за 0.008 секунды
    Ответ написан
    2 комментария
  • Как сделать появление второго select при выборе значения в первом html\php?

    Adamos
    @Adamos
    А РНР здесь и ни при чем. Для этого нужен javascript.
    Такая логика называется chained select. Для нее должен работать AJAX-запрос к серверу: в запросе город, в ответе - список серверов. Либо, если список не слишком велик, эти данные можно сразу включить в страницу и просто выбирать нужные по событию изменения первого select.
    Ответ написан
    5 комментариев
  • Какой язык программирования учить системному администратору?

    @Akina
    Сетевой и системный админ, SQL-программист.
    какой язык более универсальный для системного/сетевого администратора?

    Shell scripting - обязательно.
    А также любые другие языки, входящие в штатную поставку обслуживаемых ОС и ПО, включая встроенное ПО оборудования - по возможности и желанию. Но минимальное понимание - обязательно.

    К примеру написать бота в телеграмм, организовать вывод показателей с серверов на сайт, и запилить минимальное приложение для мониторинга под windows/android, не заморачиваясь над фронт-ендом.

    Вообще-то системный (тем более сетевой) администратор такой фигнёй не занимается.
    Ответ написан
    Комментировать
  • Логические операторы PHP: and, or vs &&, ||?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Поскольку у && приоритет выше, то традиционно выбирают его, чтобы потом не было неожиданностей, как во втором примере.

    Я, собственно, не вижу никакого удобства во втором случае.
    Код должен читаться на лету, без необходимости вчитываться и производить логические вычисления в голове с учётом приоритета выполнения операторов. А здесь мы видим эталонный говнокод, который надо переписать на
    $x = is_good();
    if($x and $y>0)

    Я оставил здесь AND для наглядности, но по-хорошему я бы заменил на &&, просто чтобы следовать единому стилю.
    Ответ написан
    1 комментарий
  • Насколько индекс ускоряет выборку с условием-неравенством?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега MySQL
    Будет ли этот запрос быстрее работать, если для столбца `time` есть индекс?
    Это покажет EXPLAIN, а ещё лучше - само выполнение запроса с индексом и без него. Скорее всего - будет.

    Вообще насколько целесообразно делать индексы на все столбцы, которые есть в условии выборки и в которых много уникальных значений?
    В этом и заключается смысл индексации.
    Ответ написан
    Комментировать
  • Как сделать так, чтобы если человек заходил с одного бразера - показывалось одно, а с другого браузера - другое?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега PHP
    Давайте сделаем что-нибудь полезное. К примеру, определим, какой браузер использует тот, кто смотрит в данный момент нашу страницу. Для этого мы проверим строку с именем браузера, посылаемую нам в HTTP-запросе. Эта информация хранится в переменной. Переменные в PHP всегда предваряются знаком доллара. Интересующая нас в данный момент переменная называется $_SERVER['HTTP_USER_AGENT'].

    https://www.php.net/manual/ru/tutorial.useful.php
    Ответ написан
    Комментировать
  • Отслеживание новых записей в бд в реальном времени?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Самое простое - периодический запрос клиентом обновлённой информации.
    Более сложное - websocket + вызов скрипта из БД по триггеру AFTER INSERT.
    Ответ написан
  • Как защитить видео на сайте?

    sergiks
    @sergiks Куратор тега Веб-разработка
    ♬♬
    Делал сто лет назад проект с видеоуроками. На Амазоне в S3 лежали файлы, раздавались в плеер через CloudFront.

    Перед каждым воспроизведением генерилась уникальная ссылка с подписью, которая привязана ко времени и «живёт» недолго – см. Signed URLs

    Так что если решили вопрос с оплатой Амазона, я бы рекомендовал через них реализовать.

    Или посмотрите сервис Kinescope.ru – они предлагают услугу доставки контента и его защиты.
    Ответ написан
    1 комментарий