Задать вопрос
  • Как узнать наличие IP в листе?

    @alexalexes
    Приведенный кусок кода не дает ни малейшего представления, каким способом фиксируются IP пользователей и с какой целью должен формироваться некий список, чтобы что-то ограничивать.
  • Как лучше реализовать вывод в корзину?

    @alexalexes
    Метод $conn->query() правильно использовать, если запрос не предусматривает параметров. В остальных случаях - только подготовка, подстановка параметров и выполнение.
  • Как лучше реализовать вывод в корзину?

    @alexalexes
    Практически, любой веб-сайт это такая вот упрощенная многослойная модель приложения:

    Браузер (код на JS) <- ajax-запрос -> PHP <- SQL-запрос -> СУБД MySQL

    Каждый слой общается с соседним через какой-то вид запросов.
    Еще нужно видеть в этой упрощенной схеме, где находится безопасная контролируемая зона приложения, и неконтролируемая зона.
    В такой схеме эта граница проходит у правой стрелочки "ajax-запрос ->".
    Неконтролируемая зона - это окружение браузера и отправляемые им запросы на ваш сервер.
    Любой JS код, куки, переменные локального хранилища браузера, которые выполняются на стороне пользователя (в браузере), эти объекты могут быть изменены им так, чтобы начать наносить вред остальным частям приложения, которые находятся в контролируемой зоне.
    Данные в посылке ajax запроса можно менять как угодно, и бесполезно делать на стороне клиента безопасные проверки. Все проверки в JS коде направлены на соблюдение целостности бизнес-логики во благо удобства пользователя. Но это не отменяет того, что проверять данные нужно на предмет безопасности на стороне сервера.
    PS: А про какой такой метод query() говорите, что он делает в JS?
  • Как лучше реализовать вывод в корзину?

    @alexalexes
    Для mysqli методов - да, так. И вопросики расставляете в порядке привязки параметров.
    Также бывают и другие типы, но востребованы в основном целые числа (i), веществ. числа (d) и строки (s).
  • Как правильно изменить sql запрос чтобы считывать данные с двух строк одной базы данных?

    @alexalexes
    Но столбец "category" находится в другой строке базы.

    Что-то вы путаетесь в терминах БД.
    В базе есть таблицы. Таблицы состоят из столбцов, данные в таблицах - это строки.
    В итоге, из каких столбцов состоит таблица _post_extras, что вы в where не можете дописать еще одно условие по category?
    И что по смыслу вы хотите извлечь этим запросом?
  • Есть ли основания для возврата?

    @alexalexes
    Конечно, странно требовать от бюджетного ноута находиться длительное время под нагрузкой, тем более с пассивным охлаждением. Если такой ноут и оказывается в стрессовой ситуации, он поэтому сбрасывает частоту, чтобы не спалить все вокруг, и не налететь на более серьезные иски для производителя. Это нормальная защитная реакция.
    Еще страннее найденное решение суда.
    Это все равно, что продать автомобиль с подушкой безопасности, и не предупредить водителя, что в случае аварии она может помять лицо.
  • Как сделать поиск дубликатов папок?

    @alexalexes
    Думаю, вас выручит только написание скрипта, например в powershell или в другой программной среде, чтобы учесть нестандартные критерии поиска.
  • Есть ли основания для возврата?

    @alexalexes
    Интересно было бы посмотреть на график температуры во время стресс теста в AIDA64.
  • Как запустить windows с ssd?

    @alexalexes
    Загрузчик можно добавить в тот же раздел, где установлена система, не обязательно под него создавать раздел.
    Чтобы не путаться в загрузочных записях, нужно отцепить hdd.
    Загрузиться с установочной флешки, и подцепленным ssd.
    И действовать по сценарию "Восстановление загрузочной записи Windows".
    Как будто случайно удалили загрузочный раздел, а раздел с системой у вас имеется.
    Рецепт будет примерно такой:
    1. Войдите в командную строку с установочного диска или флешки;
    2. Введите Bootrec /ScanOs, после чего утилита просканирует компьютер на предмет наличия операционной системы;
    3. Напишите в следующей строке команду Bootrec.exe /RebuildBcd, программа вам предложит внести в меню запуска все найденные версии windows, включая XP и др.;
    4. Останется с этим согласиться, нажав последовательно Y и Enter, после чего при загрузке системы вы будете иметь выбор, какую из ОС загрузить — XP или семерку.
  • Как разрешить только одну запись в БД Django 3?

    @alexalexes
    Зависит от того, как реализован у вас класс пользователя.
    Идея будет заключаться в том, чтобы в базу добавить новый атрибут, по которому можно судить, был ли изменен каким-либо пользователем заголовок сайта ранее.
    Этот атрибут нужно вычитывать в классе пользователя, если заголовок был изменен ранее, то ему давать свойство read only. Если нет, то делать доступным для редактирования. Если принимаем отредактированный заголовок, то выставляем наш волшебный атрибут в состояние, что отредактировали заголовок - далее, у заголовка будет read only состояние.
  • Как узнать, сколько памяти "ест" сайт?

    @alexalexes
    А как же F12 -> Memory? Там все по полочкам разложено, какой элемент страницы, кода сколько кушает.
  • Как сделать объекты в массиве реактивными?

    @alexalexes
    Объекты потом распечатываются в таблицу и некоторые свойства привязываются к инпутам через v-model.

    Как-то странно, что не получилось.
    Если используете v-for, чтобы пройтись по массиву, то зацепить свойства через v-model вообще тривиально.
    Можно посмотреть пример, как реализовали?
  • Альтернатива iframe или чем его можно заменить?

    @alexalexes
    nedland, в вашем случае нужно обратиться к квалифицированному специалисту, который сделает анализ структуры сайта на over100 статичных и полустатичных страниц, и предложит средство, как из этого сделать удобно поддерживаемую систему. Естественно, не бесплатно.
  • Альтернатива iframe или чем его можно заменить?

    @alexalexes
    Не вполне понятно, зачем вам такое разделение.
    Раньше в лохматых 90-х все части сайта старались делать в отдельных html файлах: шапка - отдельно, меню - отдельно, контент - отдельно. Так происходило в виду несовершенства динамических возможностей генерации страниц. Большая часть страниц была статичными файлами, а использование php или cgi считалось высшим пилотажем, и влетало в долларовую копеечку при попытки использования на сервере.
    Сейчас сайты по большей части генерируются динамически, а повторяющиеся элементы оформляют в виде шаблонов в какой-нибудь CMS-e или на коленке написанном php-скрипте с кучей вариантов вывода страниц.
    Проще оформить CMS или что-то вывести в php с использованием нескольких функций, чем городить огород из iframe-ов.
    PS: iframe-ы употребимы в верстке, но их используют для отображения мультимедийной инфы - видео, географических карт и т.д.
  • Как преобразовать unix в дату?

    @alexalexes
    Я бы еще добавил вариант с корректировкой по временной зоне, если переводимое значение unix времени приведено по нулевой зоне.
    new Date((1628833882.9999998 + (new Date).getTimezoneOffset()*60) * 1000);
  • Может ли React помочь в организации кода проекта (описание внутри)?

    @alexalexes
    Любое мало-мальски использование принципов ООП.
    Даже не нужно пытаться зацепиться за конкретный фреймворк в виде Реакта.
    Можно и на коленке свои классы придумать, и вызов методов обработки, в зависимости от поступающих данных.
    Тут больше зависит от мастерства проектирования, а не конкретной среды, в которой будете реализовывать.
  • Как склеить 2 слова символом "+"?

    @alexalexes
    Вангую, что автор пытается из input элемента взять данные и послать в виде get запроса в поисковик.
    Типа открываем поиск google, вводим запрос "привет мир", отправляем.
    А в адресной строке видим нечто:
    https://www.google.com/search?q=привет+мир
    Но браузер вас обманывает, пытаясь сделать более человечный вид параметру q, там не совсем "привет", и не совсем "мир" (скопировав адрес в блокнот, можно убедиться в этом).
    Для подготовки такой строки нужно придерживаться стандарта RFC 3986.
    На стороне PHP достаточно использовать функцию rawurlencode/rawurldecode.
    А на стороне JS чуть по сложней.
    Есть encodeURIComponent, но эта функция не полностью отвечает стандарту кодирования.
    Нужно делать костыль в виде:
    function fixedEncodeURIComponent (str) {
      return encodeURIComponent(str).replace(/[!'()*]/g, function(c) {
        return '%' + c.charCodeAt(0).toString(16);
      });
    }

    Но вообще, если запрос нужно отправить через ajax, то не нужно изобретать кодирование. Объект XMLHttpRequest сам сделает нужно преобразование при добавлении get параметра.
  • Есть ли способ сократить запись скрипта JS?

    @alexalexes
    function(event) {
        setTimeout(function(){ document.querySelector('.header_feedback').style.zIndex = '80'; }, 300);
        document.querySelector('.cross').classList.remove('active');
        document.querySelector('.cart_popup').classList.remove('active');
        document.querySelector('.popup').classList.remove('active');
        document.querySelector('.cart_overlay').classList.remove('active');
        document.querySelector('progress').classList.remove('active');
      }

    Если повторяете написание кода второй раз, значит это просится сделать отдельной функцией. Вынесите это действие в отдельную функцию, и указывайте ее в addEventListener для клика.
  • Как можно узнать тип файла по URL?

    @alexalexes
    Возможно, не извлекается url, до обработки pathinfo.
    $url = $data->object->message->attachments[0]->doc->url;
    var_dump($url);
    $path = pathinfo($url, PATHINFO_EXTENSION);
  • Как защитить ПО от подделки ответа http?

    @alexalexes
    Не знаю, какая нужна защищенность для создания лицензируемого продукта.
    Но вы пробовали использовать счетчик с начальным случайным значением, для контроля соответствия отправленного запроса и ответа?
    Например, на клиенте генерируется случ. число, оно передается в качестве нач. значения счетчика серверу, сервер вместе со статусом лицензии передает это значение +1, а на клиенте проверяется, прибавился ли счетчик.
    Если он прибавился, то другая сторона (предположительно, сервер) понимает содержание сообщения, а не просто воспроизводит предыдущий ответ.