Задать вопрос
  • Как понять что делает данный код php?

    v3shin
    @v3shin
    Веб-шаман
    Навскидку код развернулся в
    <?php
    $OO000O0000 = file(preg_replace("@\(.*\(.*$@", "", __FILE__));
    if (preg_replace("@\(.*\(.*$@", "", __FILE__) == __FILE__ or preg_replace("@\(.*\(.*$@", "", __LINE__) != 3)
        die("<tt>ERROR");
    function OOOO0000O0($a, $b)
    {
        if ($b == 162) {
            $d = substr($a, 1303, 8);
        } elseif ($b == 13) {
            $d = substr($a, 973, 330);
        } elseif ($b == 40) {
            $d = trim(substr($a, 1311));
        }
        return $d;
    }
    eval(base64_decode(OOOO0000O0($OO000O0000[0],13)));
    eval(OOOO0OOO0O(OOOO0000O0($OO000O0000[0],40),OOOO0000O0($OO000O0000[0],162),$OO000O0000));
    __halt_compiler();
    [binary]

    Дальше, как я понял, скрипт вырезает, декодирует и выполняет куски из [binary], туда я не лез. В общем, можете покопаться, но ЗАПУСКАТЬ НЕ СОВЕТУЮ.
    Ответ написан
    Комментировать
  • Какую оперативную память выбрать?

    xez
    @xez
    TL Junior Roo
    Однозначно надо брать 2х16.
    https://ru.msi.com/Motherboard/B450-A-PRO-MAX/supp... - тут можно посмотреть проверенные варианты.
    Одни и те же планки памяти могут в 4 слота работать медленнее чем в 2 (т.е. просто не заработают на заявленной частоте XMP профиля и все)
    Ответ написан
    5 комментариев
  • Какую оперативную память выбрать?

    @ewgenc
    Два по 16 ставьте, потом проще будет апгрейд до 64.
    Ответ написан
    Комментировать
  • Проблема с модулями crontab, какое решение лучше?

    hint000
    @hint000
    у админа три руки
    P = subprocess.Popen("/usr/local/bin/python3 /Users/User/script2.py ", text=True, shell=True)
    Ответ написан
    Комментировать
  • Как написать чат на php?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега SQL
    Седой и строгий
    Так же, как на любом другом языке. В минимальном виде надо два обработчика: Один будет выбирать из базы сообщения и отдавать их клиенту вместе с формой, а второй будет принимать из этой формы сообщение и записывать его в базу.
    Ответ написан
    Комментировать
  • Возможно ли скачать не только лендинг а сразу и бекенд сайта?

    Newto
    @Newto
    Ну конечно можно. Звоните владельцу сайта, говорите "алло, дайте мне доступ к вашему серверу". Он вам отвечает - "Да, конечно!" и высылает root ssh доступ. Заходите на сервак и всё скачиваете. А потом еще раз перезваниваете и просите к трубке админа, что бы он вам объяснил как это всё установить, что бы заработало. Profit! :)

    А если серьёзно, то есть в вебе два ключевых значения -- "frontend" и "backend". Вот "frontend" это всё то, к чему имеет доступ, непосредственно, ваш браузер. Это html код, картинки, скрипты(на разных языках) и css стили(про всякие xml и прочее говорить не буду даже). А всё то, что работает с базами данных, делает всякие хитрые операции на СЕРВЕРНОЙ стороне, то есть на БЭКЕ, всегда скрыто от браузера, т.е. от вашего непосредственного доступа. Браузер отображает лишь результат, который БЭК посылает на ФРОНТ, т.е. в ваш браузер с сервера. Поэтому никакими программами (если это не супер-мега-хакерская прилага из для взлома особо слабозащищенных и плохо написанных сайтов) вы бэкенд не скачаете.
    Ответ написан
    Комментировать
  • Имею базу в формате txt размером 2gb, как отсортировать по количеству символов на строку?

    @rPman
    Для таких операций уже несколько десятилетий в linux существует утилита awk со своим языком программирования (он достаточно простой хоть и странный), так же можно соорудить регулярное выражение и с помощью утилиты sed или grep, несколькими проходами пройти по файлу, и сначала вывести все короткие строки, вторым проходом все длинные.

    так же можно написать приложение на любом языке программирования, построчно читать файл, измерять длину строки или какое тебе нужно условие и записывать в нужный файл, кода строк на 5-6
    Ответ написан
    Комментировать
  • Выборка записей где значение больше чем у родителя?

    iMedved2009
    @iMedved2009
    Не люблю людей
    select 
      people.* 
    from people 
    join people as parent on people.parent_id = parent.id 
    where people.size > parent.size;
    Ответ написан
    Комментировать
  • Как хранить информацию в БД о поставщиках когда они могут являться разынми сущностями?

    Vindicar
    @Vindicar
    RTFM!
    Это, по сути, наследование. Абстрактный класс-предок (поставщик) и конкретные классы-потомки (физлицо, ИП, организация). Наследование обычно выражается в структуре БД так: создаётся таблица "Поставщик", содержащая общие для всех классов поля и имеющая свой ключ.
    Затем под каждый класс-потомок создаётся отдельная таблица, содержащая сведения, уникальные для этого класса. В этой таблице первичный ключ одновременно является внешним ключом, ссылающимся на таблицу "Поставщик". Иными словами, в таблице-потомке могут быть только записи с ключами, которые есть в таблице "Поставщик", а для каждой записи в "Поставщик" будет не более одной записи в таблице-потомке.

    В таблице "Поставщик" также может быть поле, указывающее на конкретный тип поставщика (физлицо, ИП, организация), т.е. в какой таблице искать остальные данные. Наличие или отсутствие этого поля - вопрос вкуса. В принципе, если нам нужны сведения о конкретном типе поставщика, мы можем попытаться сделать INNER JOIN с нужной конкретной таблицей. Это отсеет все записи других типов.
    Такой подход (без поля типа) позволяет избежать противоречий, когда запись находится в одной таблице-потомке, а поле указывает на другую. Но с другой стороны, если мы не знаем, какой конкретный тип у данного поставщика, нам придётся либо перебирать таблицы-потомки в рамках нескольких запросов к БД, либо делать LEFT JOIN со всеми таблицами-потомками, и смотреть, какие поля не будут NULL.

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

    @res2001
    Developer, ex-admin
    Добавите в локальную репу URL удаленного репозитория с помощью git remote add ...
    Или, если надо изменить старый URL, то git remote set-url ...
    Для справки git remote --help
    Дальше пушите в добавленную репу.
    Ответ написан
    Комментировать
  • Каким софтом просматривать список функций исполняемого файла в Linux?

    @res2001
    Developer, ex-admin
    dumpobj, nm - просмотр импорта/экспорта
    ldd - зависимости от библиотек
    Ответ написан
    2 комментария
  • Какую книгу прочитать про SQL?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Изучать SQL как сферический язык в вакууме - нет особого смысла. Особенно если ты спрашиваешь про хинты. Хинты - это опция конкретной реализации DBMS. У Оракла - свои хинты. У Microsoft - свои. И знания между ними - совершенно не переносимые. И сами хинты кажется не стандартизированы в SQL стандарте. Здесь я могу ошибаться - пускай знающие подскажут.

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

    Я в своё время тоже искал теоретическую литературу по оптимизации SQL. Нет толком ничего. Есть Ден Тоу. Настройка SQL для профессионалов. Он пытается подогнать под оптимизацию свою теорию. Считает селективности и кардинальности для суб-запросов и рисует "облачки" - диаграммы пытаясь вывести формулу cost. Но это всё не работает. Это разбивается о практику. Ни одна практика Oracle/PG/MSQL/MySQL не подрверждает эффеткивности диаграмм Тоу. Вобщем я зря потратил время на чтение этой книги. И тебе не советую.

    Бери конкретные книги от вендора и по ним смотри.

    И в твоём вопросе не хватает еще одного хеш-тега.
    Ответ написан
    Комментировать
  • Как вывести данные из базы данных в инлайн кнопки?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    1. Разделяете задачу на более мелкие пункты до тех пор, пока их можно разделить.
    2. Ищите реализацию пункта в документации/гугле.
    3. Пишите.
    4. Если в процессе не получается что-то конкретное - задаете вопрос гуглу или здесь.
    Ответ написан
    3 комментария
  • Как сделать обводку div блока в определенное время на php?

    Liatano
    @Liatano
    Воспользоваться функциями даты и времени (date(), time()), сравнивая текущее время с необходимым диапазоном. Однако,сама по себе идея делать подобное через php - неочень. PHP исполняется на стороне сервера, а значит на страницу нельзя повлиять до обновления страницы, так что состояние блоков будет устаревшим. В данном случае нужно пользоваться JS, т.к. именно он исполняется на стороне клиента, подробнее про работу со временем в JS читаем тут
    Ответ написан
    Комментировать
  • Нужно ли в таких случаях делать защиту от инъекций?

    rozhnev
    @rozhnev Куратор тега PHP
    Fullstack programmer, DBA, медленно, дорого
    Нужно!!!
    Ответ написан
    Комментировать
  • Нужно ли в таких случаях делать защиту от инъекций?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    во первых - у вас ошибка в коде, отсутствует кавычка: 'password,
    Во вторых - вопрос в корне не верный, если мы говорим о коде. Основное правило при работе с данными от пользователя - данным от пользователя нельзя доверять никогда.
    Отсюда же и второе правило - любые данные в запросах, если это переменные пришедшие из кода, а не прописанные буквами и цифрами в запросе, должны быть через подготовленные выражения, вы не можете гарантировать что где-то не пропустите пользовательский ввод в запрос.
    Ответ написан
    Комментировать
  • Нужно ли в таких случаях делать защиту от инъекций?

    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
    Потомок старинного рода Ипатьевых-Колотитьевых
    8 комментариев
  • Почему RedBeanPHP возвращает Array?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    В РНР Array - это список значений
    Вы получили ровно то что хотели
    Ответ написан
    3 комментария