• Как выбрать весь document из внешнего файла js?

    Jeer
    @Jeer
    уверенный пользователь
    Единственное, jQuery должен быть подключён раньше, чем ваш скрипт. Вроде, всё
    Ответ написан
    1 комментарий
  • Как увеличить скорость работы MySQLi?

    @d-stream
    Готовые решения - не подаю, но...
    Боюсь, что при такой постановке вопроса - искать надо не компоненты, а нанимать специалиста.
    Ответ написан
    5 комментариев
  • Когда и где можно и нужно добавлять префиксы браузеров(-webkit- -moz- -ms-)?

    Lynn
    @Lynn
    nginx, js, css
    Используйте автопрефиксер.
    Пусть компьютер этим заморачивается https://github.com/postcss/autoprefixer
    Ответ написан
    Комментировать
  • Надёжный SSD и HDD диск?

    Jump
    @Jump Куратор тега Твердотельные накопители
    Системный администратор со стажем.
    Все HDD диски одинаково надежны.
    Их и осталось то несколько производителей.

    Всегда считал WD надёжной маркой и доверял ей.
    Так и есть.

    Вчера сломался WD blue SSD 1Tb не проработав и 2 лет. Битые сектора, невозможность загрузки ОС.
    Надежные диски точно так же ломаются как и ненадежные. При чем тут надежность?
    Все диски ломаются.

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

    Все диски проходят жесткий контроль качества. Но даже жесткий контроль не может гарантировать отсутствие проблем. Он их просто минимизирует.
    Все HDD боятся ударов. Производят их в Китае и на Тайване в основном, потом везут к нам. Контейнер с дисками может упасть с крана при перегрузке - и вся партия будет проблемной.
    Продавец в магазине может уронить диск или целую коробку с дисками - у них у всех будут проблемы. Но он же никому не скажет, он продаст их вам.

    Если информация важная и нужно минимизировать риски ее потерять - делайте бэкапы. Других способов пока не придумали.

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

    @bqio
    https://bqio.github.io/
    Вы сначала сами поймите, что хотите, научитесь формировать свою идею в текст, а потом спрашивайте здесь, или ищите в гугле.
    Ответ написан
    7 комментариев
  • Как безопасно отправлять пользовательский текст в базу POST запросом?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Перед тем как что-то куда-то добавлять надо сначала разобраться что ты делаешь.
    В частности понять что браузер, веб-сервер, и база данных - это разные вещи, и для каждой нужна своя обработка данных.

    В-первых, POST запросом ничего добавить в базу нельзя.
    База вообще ничего не знает про пост запросы. POST запросом можно отправить текст только в РНР.
    А РНР уже будет добавлять в БД.

    Про HTML база данных тоже ничего не знает. Поэтому "htmlspecialchars" к базе данных не имеет никакого отношения. И делать это для добавления в БД не нужно. Это функцию надо применять при выводе данных в браузер, а не при сохранении в базу данных.

    Вот теперь, когда мы разобрались что у нас где, можно наконец ответить на твой вопрос

    Для безопасного добавления данных в БД из РНР, надо отправлять их отдельно от самого запроса. Это непреложное правило, которое надо соблюдать всегда.
    И не важно - пользовательский у тебя текст, или какой-то другой, POST у тебя запрос, или вообще никакого запроса не было - все эти вещи к работе с БД из РНР не имеют никакого отношения. Важно только то, что данные всегда отправляются в БД отдельно от запроса.
    Для этого надо
    • Заменить все переменные в запросе на специальные маркеры, которые называются плейсхолдеры или параметры, а по сути - просто знаки вопроса
    • Подготовить запрос к исполнению с помощью функции prepare(). Эта функция принимает строку запроса и возвращает экземпляр специального класса stmt, с которым в дальнейшем и производятся все манипуляции
    • Привязать переменные к запросу.
    • Выполнить подготовленный ранее запрос с помощью с помощью execute()

    В mysqli это будет так
    $sql = "INSERT INTO  table (name, text, message, date, rating) VALUES (?,?,?,?)";
    $stmt = $link->prepare($sql);
    $stmt->bind_param("sssss", $name, $text, $message, $date);
    $stmt->execute();

    bind_param() принимает в качестве параметров все переменные, которые должны попасть в запрос, в том же самом порядке, в котором стоят плейсхолдеры в запросе. Но кроме того, сначала в этой функции должны быть указаны типы для всех переменных, в виде строки, где тип переменной обозначается одной буквой. То есть букв в этой строке должно быть ровно столько, сколько дальше будет переменных. К счастью, можно особо не париться с типами и для всех переменных указывать тип "s".

    Но по-хорошему для работы с БД в РНР лучше использовать PDO, Тем более что там колупаться с bind_param не нужно, а можно сразу отправить все данные в execute
    $sql = "INSERT INTO  table (name, text, message, date, rating) VALUES (?,?,?,?)";
    $stmt = $link->prepare($sql);
    $stmt->execute([$name, $text, $message, $date]);

    А дураков, которые сами не знают, как текст в базу сохранить, слушать не надо.
    Ответ написан
    Комментировать
  • В каких языках есть встроенная возможность и синтаксис для удаления определенных методов и/или свойств наследуемых классов при создании класса?

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

    UPD: Посмотрел комменты. Если уж хотите взять чужой модуль и скрыть что-то из него, то тут не нужно использовать наследование.
    Ответ написан
    Комментировать
  • Стоит ли использовать Node.js на сервере оплаты?

    dkrylov
    @dkrylov
    Node.js - хотел бы, но останавливает то, что при неотловленном исключении, сервер падает целиком.


    1) Так сделайте так, чтобы исключение отловилось
    2) Так сделайте очередь в бд с транзакциями, и чтобы нода их постепенно оттуда обрабатывала, и записывала статус обработки.
    3) Так повесте логгирование на какое нибудь событие (транзакция не обработана, сервер перезапущен), чтобы в случае проблем, быть вовремя уведомленным

    P.S. Что PHP, что NodeJS, что Java, успешно справиться с Вашим заданием, если всё корректно задизайнить.
    Ответ написан
    Комментировать
  • Как методы вроде foreEach передают аргумент в callback функцию?

    bingo347
    @bingo347 Куратор тега JavaScript
    Crazy on performance...
    Комментировать
  • Как методы вроде foreEach передают аргумент в callback функцию?

    Stalker_RED
    @Stalker_RED
    arr.forEach(foo);

    Метод forEach не "читает аргумент из функции", а вызывает функцию foo, которую вы передали, и передает в нее аргументы в том порядке, как описано в документации forEach

    При этом, методу совершенно не важно, какие имена вы дали параметрам в функции foo. Можно им вообще имен не давать.
    Ответ написан
    Комментировать
  • Как ускорить сайт на Битрикс для pagespeed?

    но эти стили и скрипты нужны для нормальной работы сайта, часть из них часть из них стили и скрипты шаблона сайта, другие это системные JS скрипты которые загружает сам Битрикс.

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

    В настройках для главного модуля указал, чтобы JS подключались в нижний части страницы но скорость только немного подросла

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

    Для ускорения загрузки страницы pagespeed предлагает использовать атрибут link rel=preload при подключении CSS.

    Вообще-то шрифтов.

    Пробовал следовать рекомендации pagespeed и подключать CSS стили такой конструкцией

    Вы не правильно распарсили рекомендацию.
    Если вы хотите добавить предзагрузку стилей вы должны добавить метатег прелойда:
    <link rel="preload" href="/local/templates/.default/css/style.min.css">

    А не заменить им загрузку стилей.

    Eliminate render-blocking resources - здесь сервис рекомендует убрать блокирующие рендеринг страницы ресурсы, в моем случае он почему то таким ресурсом результирующий CSS файл сайта, куда Битрикс объединил CSS файл стилей шаблона сайта, CSS файлы шаблонов компонентов и системные файлы

    Что значит "почему-то"? Потому что это блокирующий ресурс. Вынесете стили страницы и хедера в отдельный файл который вставляйте инлайном в html для пользователей заходящих на сайт впервые в head, и подключайте в конце страницы два файла css - этот (да стили будут дважды загружены) и общий.
    А для пользователей заходящих повторно, подключайте только файлы, но уже в начале страницы.

    Remove unused CSS - здесь сервис указывает системные CSS и стили шаблона сайта как неиспользуемые, почему так происходит, ведь эти файлы используются в проекте?

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

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    1) драйвер mysql_ уже не используется. Деприкэйтед с 5.х и окончательно выпилен в 7.х, используйте mysqli_ или PDO.
    2)
    давно мучаюсь с этим кодом
    Просто не надо мучиться, надо читать документацию, в ней все есть, смотрите ORDER BY выражения.
    3) Так писать запросы не желательно, у вас (скорее всего) невалидированые строки напрямую попадают в запрос, это прямой путь к инъекции. Используйте подготовленные выражения.
    Ответ написан
    1 комментарий
  • Зачем во Vue запросы выносят в services?

    Kozack
    @Kozack Куратор тега Vue.js
    Thinking about a11y
    1. Для упрощения кода. Скажем, чтобы не писать каждый раз всю конструкцию аля
      axios.get(ENDPOINT + '/api/' + API_METHOD, {
        params: {
          id
        }
      })
      .catch
      ...

      Делается обёртка, условная функция getUser(id). В неё выносится вся логика по работе с запросом, определение маршрутов АПИ, обработка ошибки и так далее. Наружу торчит только одна функция и параметр.
    2. При работе с TS это проще типизировать. Намного легче описать типы принимаемых параметров и возвращаемый тип для нескольких функций, чем описывать универсальную конструкцию для доступа к любым методам апи.
    3. Ну и наконец: сервис можно вызывать прямо в компонентах. Вызывать методы АПи не обязательно внутри Vuex. Доже чаще это должно выполняться внутри отдельных компонентов, каждый из которых работает с одним-двумя апи, а не со всем набором.
    Ответ написан
    4 комментария
  • Внедрение js-инъекции, это как? Я правильно понял?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Нет
    Ответ написан
    Комментировать
  • Как сделать фильтр товаров на сайте?

    Stalker_RED
    @Stalker_RED
    Это называется фасетный поиск или фасетный фильтр.
    Теперь, обладая знанием о том, как такая штука называется, ты легко найдешь и туториалы и готовые реализации.
    Ответ написан
    Комментировать
  • Как делать поиск по бд mysql на php?

    @andreyzvd
    Backend Developer
    Функция mysqli_real_escape_string() должна вызываться с двумя параметрами

    PS.: ваш php стар как г..но мамонта
    Ответ написан
    Комментировать
  • Профит смены ОЗУ 4х8 на 2х16?

    @d-sem
    Вроде как в спецификации 450 пишется, что в режиме 3200 4 плашки не работают, а частота падает до 2666 или ниже. Уточнить этот момент для своей карты и посчитать профит

    Также в режиме 3200 вообще обычно работают только 2 слота памяти из 4.

    Т.е. надо смотреть бенчи вроде https://ru.gecid.com/prtart.php?id=49680 Или вообще найти нужный бенч. Явно вопрос рассмотрен.

    По факту - врят ли заметите

    Плюс еще ссылка https://community.amd.com/t5/processors/problem-wi... В конце ТС написал что обновил БИОС и запустил память в 2933
    Ответ написан
    Комментировать
  • Ноутбук на AMD или intel?

    @cheeroque
    Ryzen 5 4600H. Ноутбуки на третьей серии стоят плюс-минус столько же, но ощутимо медленнее. Так что не нужны.
    Ответ написан
    1 комментарий
  • Зачем нужен hash?

    iiiBird
    @iiiBird
    Пока ты спишь - твой конкурент совершенствуется
    это защита от Cross-Site Request Forgery https://cheatsheetseries.owasp.org/cheatsheets/Cro...
    данный hash формируется на сессию. вот он и проверяется при клике, что клик сделан именно с сайта вк, а не подделан с другого сайта
    Ответ написан
    Комментировать