• Что лучше взять, выделенную БД или подключить свою на vps?

    Zoominger
    @Zoominger
    System Integrator
    Есть ли какая-то разница?

    Безусловно. Локальная база гораздо быстрее в работе на больших объёмах.
    Ответ написан
    2 комментария
  • Почему верстальщики не соблюдают семантику?

    Aetae
    @Aetae
    Тлен
    Зря. Нам слишком мало платят, чтоб париться ещё и за это бесполезное дерьмо. Семантика-_янтика, кого это вообще волнует.)

    Это из той же серии что "правильный" REST - когда можно абсолютно бессмысленно потратить пол дня прикидывая какой же HTTP код лучше всего пойдёт данной ситуации, в итоге либо получив свой "уникальный" кусок мусора, понятный всё равно только тебе, либо завернув все ответы в итоге в 418 200 с нормальным статусом в теле.
    Ответ написан
    5 комментариев
  • Как убрать пробелы при форматирование кода phpstorm?

    Preferences/Settings | Editor | Code Style | PHP | Wrapping and Braces | Function declaration parameters | Align when multiline.
    Ответ написан
    Комментировать
  • Как безопасно передать переменную от JS к PHP чтобы ее нельзя было подменить?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    Если в коде фронтенда присутствуют "секретные" данные, значит где-то в момент проектирования приложения нехилый косяк. Это значит от js НЕ ДОЛЖНО приходить данных, непроверяемых через бэкенд.

    Малопонятно что вы пытаетесь сделать, но вы точно делаете это неправильно.
    Ответ написан
    Комментировать
  • Чем отличаются видеокарты с одним чипом разных вендоров?

    vabka
    @vabka
    Токсичный шарпист
    Различие в системе охлаждения и схеме питания.
    Ещё различия могут быть в физических размерах.
    Иногда ещё память может различаться (производитель памяти: hynix / samsung)
    Ещё вендоры могут разгон из коробки свой сделать.

    NVIDIA GeForce RTX 3060

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

    Простой вопрос - простой ответ. Чип поменять можно!
    При ремонте ноутбуков неоднократно менял чипы звуковушек. Но это не факт, что поможет.
    Потому что:
    а) проблема может быть действительно в драйверах или связке драйвер-ОС (т.е. софтовая). Для проверки можно поставить любой из современных линуксов (десктопных), и проверить.
    б) Хрипеть может не сам кодек, а усилитель после него. В каких-то ноутбуках он прямо в чипе (т.е. чип один), в каких-то отдельный. upd. Посмотрел в схеме от похожего - там ALC271X - на динамики прямо с него идёт.
    в) хрипеть могут сами динамики (но если в наушниках то же самое - вероятнее всего не в них дело).
    Ответ написан
    Комментировать
  • Как узнать наличие IP в листе?

    @rPman
    $query2 = $db->prepare("SELECT count(*) FROM accounts WHERE userName LIKE :userName");
    ...
     if ($regusrs > 0) {
        echo "-2";
    этот кусок кода проверяет, есть ли пользователь с таким именем, и если есть, выдает 'ошибку' -2 (кстати почему бы и не 42?), т.е. добавь в sql запрос проверку на ip (храни их тоже в базе) и проверяй по нему.

    Приведенный код отвратителен. Почему методы exploitPatch для проверки данных пользователя называются remove? я правильно понимаю ты удаляешь из емейла, логина и пароля пользователя опасные символы, и с полученными строками их регистрируешь? А потом, когда ты поменяешь эту логику, пользователи с паролями с " начнут обламываться

    Обычно методы проверки называют validate и они должны проверять валидность и возвращать boolean разрешено/запрещено
    Ответ написан
    2 комментария
  • Как работают самокэширующиеся (если это слово подходит) веб-приложения?

    В ютубе реализовано через Service Worker https://developer.mozilla.org/ru/docs/Web/API/Serv...
    Через pwa тоже можно
    Ответ написан
    Комментировать
  • Как бэкапить коробочный битрикс?

    kirk_novozhilov
    @kirk_novozhilov
    Lead Bitrix Developer, Bitrix mentor
    1. Штатный метод.
    Бэкап: https://dev.1c-bitrix.ru/learning/course/?COURSE_I...
    Восстановление: https://dev.1c-bitrix.ru/learning/course/?COURSE_I...

    2. Средствами BitrixEnv
    • Выбираете "6. Configure pool sites > 6. Change backup settings on site". Проводите настройки.
    • Пишете shell-скрипт копирования на внешний диск, FTP, или облако (нужное подчеркнуть) и вешаете его на крон.


    3. Кастомно.
    • Делаете бэкап файлов отдельно.
    • Делаете бэкап БД отдельно.
    • Пишете shell-скрипт копирования на внешний диск, FTP, или облако (нужное подчеркнуть) и вешаете его на крон.
    Ответ написан
    3 комментария
  • Как адаптировать темную тему сайта под тему устройства?

    wapster92
    @wapster92 Куратор тега JavaScript
    Наизобретают каких-то велосипедов без колес https://developer.mozilla.org/en-US/docs/Web/CSS/@... и есть отличная статья на хабре https://habr.com/ru/company/timeweb/blog/523478/
    Ответ написан
    Комментировать
  • Возможна ли подделка SSL сертификата для сайта?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Почитайте спецификацию на ACME, там подробно описано, какие меры предпринимаются против возможных атак.

    Если у атакующего есть доступ к DNS-записям домена или к настройкам веб-сервера/файлам сайта - разумеется, он может выпустить свой валидный сертификат. Но это примерно такой же провал безопасности, как и, по аналогии, физический доступ к машине - в таком случае ничего не поделаешь.

    Чтобы подстраховаться от нелегитимных сертификатов - можно добавить HPKP.
    Ответ написан
  • ООП в php - не понимаю объекты, неправильно передаю ссылки?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Здесь неправильно не то что всё, а даже больше.
    Потому что ёще до того как вы взялись писать этот "класс", не выучив даже базовый ООП синтаксис, код вашей "функции" уже был очень плохой.

    Я сейчас напишу минимально приемлемый вариант, но повторять его не надо. Потому что всё равно непонятно будет.
    Надо забыть временно про классы и учить базовый синтаксис РНР. Просто потому что сначала надо выучить базовые понятия - работу с БД, обработку ошибок, разделение ответственности:
    - работа с переменными в запросе ведётся через параметризованные запросы
    - код класса не должно тошнить прямо на экран сообщениями об ошибках
    - метод getArray не должен возвращать объект класса mysqli_result. он должен возвращать массив
    - код, который будет в дальнейшем работать с результатом вызова метода getArray, не должен ничего знать про базу данных

    Про сам же код ООП надо хотя бы один раз посмотреть его в учебнике, а не писать на основе чистой фантазии.
    class CProducts
    {
        private $link;
        public function __construct(mysqli $link) {
            $thi->link = $link;
        }
        public function getArray($lim) {
            $query = "SELECT * FROM products ORDER BY DATE_CREATE DESC LIMIT ?";
            $stmt = $this->link->prepare($query);
            $stmt->bind_param("s", $lim);
            $stmt->exeсute();
            $result = $stmt->get_result();
            return $result->fetch_all(MYSQLI_ASSOC);
        }
    }
     
    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
    $db = new mysqli($host, $user, $pass, $dbname);
    $db->set_charset('utf8mb4');
    $db->options(MYSQLI_OPT_INT_AND_FLOAT_NATIVE, 1);
      
    $product = new CProducts($db);
    $result = $product->getArray(3);
    Ответ написан
    Комментировать
  • Как правильно деплоить Symfony-приложение с помощью докер?

    Sanes
    @Sanes
    Git не подходит?
    Ответ написан
    Комментировать
  • Почему не выводится последний элемент из бд mysql?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Вопрос "почему не выводится" здесь неуместен. Здесь скорее подойдёт вопрос "Этот код вообще хоть как-то работает?" Спойлер: нет.

    Этот код неправильный по стольким параметрам, что у меня просто нет слов.
    Он писался явно без малейшего понимания, а просто методом "подставлю какой-то код, авось подойдёт".
    Причём понимания нет ни на каком уровне - ни того как работает БД, ни того как работает РНР, ни того как РНР работает с БД. Ни даже простого житейского здравого смысла. Зачем в message_get() все эти $user_name = mysqli_real_escape_string ($username);?

    Во-первых, с помощью LAST_INSERT_ID получить "последнюю запись" можно только сразу после вставки. А поскольку в "основном коде" получение сообщения явно не выполняется в одной ветке с записью, то LAST_INSERT_ID не сработает. Причём тут даже простой житейской логики нет. Если сначала один пользователь добавил сообщение, а потом второй, то при получении "последнего" как БД узнает, чьё "последнее" сообщение надо показать?
    Чтобы показать последнее сообщение для определённого пользователя, надо, как правильно отметили в комментариях, надо отсортировать таблицу по времени добавления и выбрать только 1 строку с помощью LIMIT.
    Но кроме этого надо указать, для какого пользователя мы получаем это сообщение.

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

    В-третьих, 'message' в запросе вернёт слово 'message', а совсем не само сообщение.

    В-четвёртых, view_message хочет показать несколько значений, но в запросе выбирается только это 'message'

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

    function message_get($user_id) {
        global $db;
        $chat_id = mysqli_real_escape_string($db,$user_id);
        $query = "SELECT message_id, user_id as chat_id,  message as `text` 
            FROM `secret_messages` 
            WHERE user_id='$chat_id' ORDER BY id DESC LIMIT 1";
        $result = mysqli_query($db, $query);
        return $result->fetch_assoc();
    }

    и потом получать при вызове
    $post = message_get($user_id);
    Ответ написан
    Комментировать
  • Как сменить версию php для mysql?

    DevMan
    @DevMan
    php -v - это консоль. веб-сервер может быть настроен на использование другой версии пыха.
    для веб-сервера нужно смотреть выхлоп phpinfo().
    как лечить на панелях понятия не имею.

    и, как уже написали, лучше вообще не пользовать PMA.
    Ответ написан
    Комментировать
  • Как понять чем занято место на диске выделенного сервера?

    karabanov
    @karabanov Куратор тега Ubuntu
    Системный администратор
    Выполни ncdu /
    Дальше действуй по ситуации.
    Ответ написан
    Комментировать
  • Какой конструктор выбрать для мультирегионального сайта?

    suffix_ixbt
    @suffix_ixbt
    https://www.babai.ru/
    1. Таких конструкторов нет

    2. Если у мультирегионального интернет магазина нет полмиллиона на Битрикс (с внедрением) то может и не нужен такой бизнес ?
    Ответ написан
    Комментировать
  • Есть ли что-то в PhpStorm такого, чего нет в VSC, что-то такое принципиально нужное, чтобы стоило рассмотреть как альтернативу?

    DevMan
    @DevMan
    Роми,
    есть какая-то конкретная киллер-фича?
    как минимум он готов для работы прямо из коробки.
    без необходимости искать плагины, настраивать их и иметь головняк когда автор плагина забьёт на него.

    ну и намного лучшая обработка контекстов и возможность их кастомизации.

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

    но если вся ваша работа - писать/исправлять примитивный код, vsc для этого вполне может быть годной альтернативой.
    Ответ написан
    Комментировать
  • Есть ли что-то в PhpStorm такого, чего нет в VSC, что-то такое принципиально нужное, чтобы стоило рассмотреть как альтернативу?

    delphinpro
    @delphinpro Куратор тега PhpStorm
    frontend developer
    VS Code неплохой редактор. А если обвесить плагинами, то возможности приблизятся к полноценной IDE.
    PhpStorm – полноценная IDE что называется "из коробки". Установил и у тебя все есть сразу и работает.

    Поэтому вопрос знатокам - стоит ли плотно тестить шило, если уже есть нормальное мыло?))


    На мой взгляд – стоит. Но пары дней будет мало. Нужно неделю-две посидеть, освоиться. И потом не слезешь.
    Ответ написан
    9 комментариев