• Чем плох md5(md5($pass)) для пароля?

    Adamos
    @Adamos
    Вопрос: почему не использовать тот хэш, который быстрее - это же оптимизация?
    Ответ: да потому, что это оптимизация взлома!
    Ответ написан
    Комментировать
  • Почему не работает fread?

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

    fread($file, (int)$file);
    (int)$file - это че за фокусы? Читаем про второй параметр функции fread (там есть пример, как считать файл целиком)

    file_put_contents((string)$fileSecond, "Приветствую!");

    (string)$fileSecond - и опять делаем хер пойми чего. Первый параметр file_put_contents - путь к файлу. fopen тут вообще не нужен

    file_get_contents(__DIR__ . '/log.txt');
    И? Функция куда результат должна считать?
    Ответ написан
    1 комментарий
  • Чем плох md5(md5($pass)) для пароля?

    @galaxy
    1. Нет соли
    2. Слишком быстрый
    Ответ написан
    Комментировать
  • Как закрыть доступ к своей интернет сети извне фишингеру,сталкеру,взломщику?

    @mkone112
    Начинающий питонист.
    Я к сожалению встречал людей с подобными проблемами, иногда помогают медикаменты, но выписывать их должен соответствующий специалист.
    Ответ написан
    4 комментария
  • Видимость переменной?

    Vamp
    @Vamp
    Это невозможно. К моменту когда запускается скрипт load.php, скрипт index.php уже завершился и все переменные из него уничтожены.
    Ответ написан
    Комментировать
  • Можно ли написать функцию, которая меняет значение таблицы автоматически в зависимости от времени?

    rozhnev
    @rozhnev
    Fullstack programmer, DBA, медленно, дорого
    Я бы ввобще использовал одно поле натример:
    create table bookings (
        id int,
        active_til datetame
    );


    И уже ничего не нужно редактивировать
    Ответ написан
    Комментировать
  • Какова правда в работе и обучении будущего ИБшника?

    CityCat4
    @CityCat4 Куратор тега Информационная безопасность
    Если я чешу в затылке - не беда!
    80% работы и обучения - рутина, бесконечная и муторная работа с бумажками, зарплата колеблется около 20к в районах,

    Не бывает "средней температуры по больнице". ИБ - это огромная область, в которой десятки направлений, которые делятся еще на десятки поднаправлений.
    Все очень зависит от того, где работаешь - в одного в конторе в сотню-другую рыл, в небольшом отделе в конторе человек на 500 или в Сбербанке, например.
    Чем меньше контора - тем ширше круг обязанностей, чем больше - тем уже. В небольшой конторе ты можешь быть не очень связан регламентами, тем более, что половину из них тебе же и писать. В Сбере у тебя и 100% времени может уйти на регламенты.
    Со стороны в ИБ можно попасть только в контору типа Сбера - где ты долго будешь расти внутри подразделения. В небольшой конторе рыл на сотню-две - ИБ-шник (если он вообще есть) как правило один, максимум два и занимается он всем и имеет доступ всюду и ждут от него решения всего, в том числе весьма неприятных вопросов (например просмотреть сто тысяч (это не оборот речи - их реально было сто тысяч!) фотографий и удалить компроментирующие определенного человека).
    Работу админа он должен знать лучще админа - потому что ему их контролировать приходится.
    Работу юриста - в определенной области законодательства - не хуже юриста
    Работу психолога - не хуже психолога средней руки (ИБ это далеко не всегда про компы. ИБ зачастую про людей)

    Здесь нет никакой романтики. Здесь нет никаких эмоций - только суровая безжалостная правда, которая крошит иллюзии безжалостно, когда ты видишь на оперативном мониторе СМП, что девочка с ресепшн, о кторой ты втайне мечтаешь, переписывается с мальчиком из продаванов, и при этом матерится как сапожник и собирается отдаться за покатушки на тачке...
    Это скучная, рутинная работа, где много микротиков (или цисок, или даже фортигейта), много конфигов прокси и правил iptables, много логов и их анализа, много СМП/DLP и никакой хакерской романтики
    Ответ написан
    2 комментария
  • Допустимо ли создавать массивы в php без части элементов?

    Immortal_pony
    @Immortal_pony Куратор тега PHP
    В php ключи массива могут быть любыми.
    Можете сразу создавать с нужными ключами
    $myArray = [
        1 => $array2
    ];
    Ответ написан
  • Как лучше сохранять дату и время?

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

    Соответственно "справочник дат" - дурь, не имеющая права на существование.

    Для хранения дат в любой СУБД есть соответствующие встроенные типы (их, как правило, не один). Хранение значения даты "кусками" - точно такая же не имеющая право на существование дурь. До тех пор пока выделяемые в отдельные поля компоненты этой даты не являются самостоятельной сущностью. Но в этом случае вычисляемое поле скорее всего будет более разумным решением.
    Ответ написан
    Комментировать
  • Какие ограничения несёт в себе INSERT IGNORE для секционированных таблиц?

    @Akina
    Сетевой и системный админ, SQL-программист.
    INSERT INTO может привести к ошибке. По любой причине. При этом процесс вставки прерывается, а все уже внесённые в таблицы изменения - откатываются.

    INSERT IGNORE преобразует ошибку в предупреждение. При этом выполнение запроса продолжается, а запись, попытка вставки которой привела к ошибке, не вставляется.

    Замечание. Дублирование - не единственное событие, которое может вызвать ошибку. Может быть ещё куча причин (CHECK constraint, SIGNAL из триггера, нарушение внешнего ключа и т.п.). Причём далеко не все типы ошибок восстановимы и могут быть проигнорированы/преобразованы в предупреждение. Если ошибка невосстановимая (как правило, это системные или внешние ошибки) - запрос прерывается по ошибке и откатывается обычным образом.

    Замечание 2. Всё вышеописанное никак не пересекается с секционированием. За исключением случая, когда значение поля не соответствует диапазону ни для одной из секций. В этом случае IGNORE срабатывает штатно - ошибка преобразуется в предупреждение, проблемная запись не вставляется.

    Нужно игнорировать дублирующиеся данные. Буду делать INSERT IGNORE

    Кроме INSERT IGNORE INTO есть ещё два типа запросов, которые обрабатывают ошибку дублирования данных - это INSERT .. ON DUPLICATE KEY UPDATE и REPLACE INTO. Изучите их - возможно, какой-то из них лучше подходит для Вашей конкретной задачи. При этом REPLACE не поддерживает модификатор IGNORE и не может игнорировать другие ошибки.
    Ответ написан
    Комментировать
  • Как собрать сервер на устаревшем ПО?

    Adamos
    @Adamos
    ПО, написанное на PHP, которое представляет из себя электронный библиотечный каталог. Это ПО может работать на версиях PHP не выше 5.2 и MySQL не выше 5.

    Я бы не откапывал стюардессу, а переписал этот древний говнокод (скорее всего, примитивнейший) на современный стек и получил возможность поднять его на чем угодно, не заморачиваясь с поддержкой нового железа древними бздями.

    Есть, конечно, вариант поставить на новый сервер нормальную ОС, а в ней поднять виртуальную систему с этим ископаемым, но это, имхо, только накопит проблемы, а не решит.
    Ответ написан
    9 комментариев
  • Как прочитать определенную строку в файле?

    @JohnDoe000
    function readRow($file, $row)
    {
        $f = fopen($file, "r");
        $i = 0;
        $row = (int) $row;
        while (($line = fgetcsv($f)) !== false)
        {
            if (++$i < $row) continue;
            fclose($f);
            return $line;
        }
        return false;
    }
    Ответ написан
    5 комментариев
  • Для чего функция file_exists()?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    var_dump(file_exists('/dev/null')); // bool(true)
    var_dump(is_file('/dev/null')); // bool(false)
    var_dump(is_dir('/dev/null')); // bool(false)
    Ответ написан
    23 комментария
  • Как вывести строки с бд в зависимости от их количества с ограничением?

    @Vitsliputsli
    Наверное, потому что:
    PDOStatement::fetch — Извлечение следующей строки из результирующего набора
    в то время, как есть:
    PDOStatement::fetchAll — Выбирает оставшиеся строки из набора результатов
    Ответ написан
    Комментировать
  • Как можно автоматизировать добавление повторяющегося кода в HTML?

    @AlexNest
    Вариант 1:
    1. Изучаете основы работы с СУБД, sql, php
    2. Проектируете базу
    3. Подключаете к сайту с помощью php.
    4. Пишете CRUD-функции для работы с записями.

    Вариант 2:
    Используйте CMS-ку по типу вордпреасса
    Ответ написан
  • Как работает статистика?

    DevMan
    @DevMan Куратор тега Проектирование баз данных
    есть просто лог.
    а статистика - выборка из этого лога, агрегированая по определённым критериям.
    в вашем варианте - выборка за определенный период.
    Ответ написан
    4 комментария
  • Как стать бэкэнд разработчиком без высшего образования?

    opium
    @opium
    Просто люблю качественно работать
    Так же как и без высшего, надо программировать
    Ответ написан
    Комментировать
  • Как передать длинный текст в запросе для MySQL из python?

    @galaxy
    Данные надо передавать отдельно
    query = "INSERT INTO table (id, name, text) VALUES (%s, %s, %s)"
    cursor.execute(query, (id, name, text))

    https://dev.mysql.com/doc/connector-python/en/conn...
    Ответ написан
    Комментировать
  • Проблема с пониманием проектирования бд, поможете?

    vabka
    @vabka
    Токсичный шарпист
    к примеру, у одного объявления в среднем 3 тега, на 1 миллион объявлений будет 3 миллиона записей в "объявления-теги", как там будет по скорости при выборке? Сильно я выиграю, если нарушу правило и буду писать теги, перечисляя их в строку через запятую?

    1. Представим, что промежуточная таблица объявление-тег - это два гуида.
    Тогда одна строчка будет занимать около 32 байт. 3*32*1000000 = 96 мегабайт (метрических)
    2. Естественно, выборка будет медленной, если не добавить индекс. Индекс по id объявления ещё примерно столько же займёт. Выборка уже будет быстрее. Для фильтров ещё надо будет добавить индекс в обратную сторону - от id тега.
    3. Ещё и фильтроваться по тегам можно будет, что, мне кажется, является одним из важнейших качеств тегов.
    4. Если 96 мегабайт тебя пугает - используй int64 или int32 - тогда будет меньше в 2 или в 4 раза соответственно
    Сильно я выиграю, если нарушу правило и буду писать теги, перечисляя их в строку через запятую?

    Как уже сказали в комментах - очень сильно обосрёшься.
    Выборка, конечно, будет очень быстрая, но
    1. Представим что тег - это 6 букв на русском языке, а храним мы строки в Utf8 кодировке.
    Тогда на каждое объявление будет тратиться 6*2*3+3+4=45 байт. Соответственно на миллион объявлений уйдёт 45 метрических мегабайт.
    2. Но тут не будет индексов, по тому и фильтроваться будет очень дорого

    PS: все прикидки по памяти взяты с потолка. В реальной БД числа будут другие, но примерно похожие.
    PPS: если не совсем понятно, что я предлагаю, то вот:
    ._________.             .______________.           .____________.
    | post    |             | post_tag     |           | tag        |
    |=========|             |==============|           |============|
    | id: int |<------------| post_id: int |           | id: int    |
    | ...     |             | tag_id: int  |---------->| name: text |
    |_________|             |______________|           |____________|
    Ответ написан
    1 комментарий
  • Как в PHP вычисляется count()?

    Maksclub
    @Maksclub Куратор тега PHP
    maksfedorov.ru
    Массив в PHP внутри — хэш-таблица (точнее чуть-сложнее), в ней есть необходимые данные для оптимизаций (отдельно ключи хранятся, отдельно значения и мета-информация, в которой есть все необходимые данные)
    Ответ написан
    Комментировать