Все сервисы Хабра

Сообщество IT-специалистов

Ответы на любые вопросы об IT

Профессиональное развитие в IT

Удаленная работа для IT-специалистов

Войти на сайт
  • Все вопросы
  • Все теги
  • Пользователи

Хабр Q&A — вопросы и ответы для IT-специалистов

Получайте ответы на вопросы по любой теме из области IT от специалистов в этой теме.

Узнать больше
другие проекты хабра
  • Хабр
  • Карьера
  • Фриланс
Задать вопрос

Андрей Ежгуров

web-программист (*AMP, Go, JavaScript, вёрстка).
  • 231
    вклад
  • 1
    вопрос
  • 224
    ответа
  • 48%
    решений
Ответы
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Достижения
  • Как обрабатывать данные перед добавлением в базу данных и при выводе из нее в HTML?

    Андрей Ежгуров @eandr_67
    web-программист (*AMP, Go, JavaScript, вёрстка).
    Всё выглядит достаточно разумным.
    Если параметризированные запросы, то преобразовывать в число не обязательно. Собственно, само использование параметризованных запросов - главная защита от SQL-инъекций.
    Советую дополнительно посмотреть на https://www.php.net/manual/ru/ref.filter.php - там много интересных возможностей.
    Ответ написан более года назад
    1 комментарий
    1 комментарий
  • О чем Вам говорит понятие "кольцевой буфер"?

    Андрей Ежгуров @eandr_67
    web-программист (*AMP, Go, JavaScript, вёрстка).
    Банальный массив длины Len
    Индекс следующего элемента: Index = (Index + 1) % Len
    Индекс предыдущего элемента: Index = (Index + Len - 1) % Len
    Добавляем в голову, читаем с хвоста - соответственно, буфер содержит два индекса: Head и Tail.
    Если голова догнала хвост - буфер переполнен.
    Если хвост догнал голову - буфер пуст.
    Ответ написан более года назад
    Комментировать
    Комментировать
  • Почему не работает код JS вставленный на лендинг?

    Андрей Ежгуров @eandr_67
    web-программист (*AMP, Go, JavaScript, вёрстка).
    Если вставить такой код в <head>, работать не будет. А если вставить непосредственно перед </body>, всё будет работать нормально.

    По умолчанию JS-код выполняется в том момент, когда браузер при анализе HTML-кода добрался до <script>. И если кон находится в начале страницы, тегов <div class="menu__body"> и <div id="block"> в момент выполнения JS-кода ещё не существует.

    Чтобы JS-код можно было вставлять в любое место страницы, надо примерно так:
    document.addEventListener('DOMContentLoaded', function() {
        var mainNav = document.querySelector('.menu__body');
        window.onscroll = function() {
            mainNav.classList.toggle('test', mainNav.scrollTop > 50 || document.documentElement.scrollTop > 50);
        }
    });
    Ответ написан более года назад
    1 комментарий
    1 комментарий
  • Возможен ли каскадный select по нескольким параметрам без дублирования вложенного запроса?

    Андрей Ежгуров @eandr_67
    web-программист (*AMP, Go, JavaScript, вёрстка).
    В данном случае вложенные запросы вообще не нужны
    SELECT kz1.* FROM kz AS kz1
    INNER JOIN kz AS kz2 ON kz1.kz_year = kz2.kz_year AND kz1.kz_pid = kz2.kz_pid
    WHERE kz2.kz_id = 694

    Если kz_id - не уникальное поле, добавить DISTINCT после SELECT.
    Ответ написан более года назад
    Комментировать
    Комментировать
  • После переустановки Mysql пишет не верный пароль?

    Андрей Ежгуров @eandr_67
    web-программист (*AMP, Go, JavaScript, вёрстка).
    "Current Root Password" - это не придумать новый пароль, а ввести существующий пароль аккаунта root. Если производится новая установка MySQL, то, обычно, пароль аккаунта root либо пуст, либо установлен пароль root.
    Ответ написан более года назад
    Комментировать
    Комментировать
  • Есть ли разница в изучении PHP 7 и PHP 8 новичку? Можно ли изучать PHP 8 по урокам PHP7?

    Андрей Ежгуров @eandr_67
    web-программист (*AMP, Go, JavaScript, вёрстка).
    С одной стороны, PHP достаточно быстро развивается. Потому даже между разными подверсиями PHP 7 существуют существенные отличия. С другой стороны, радикальные изменения случаются в языке относительно редко.
    Да, основы современного PHP (в том числе и PHP 8) вполне можно учить по урокам PHP 7 - если эти уроки базируются на PHP 7.2, 7.3 или 7.4. Более ранние версии уже слишком сильно устарели.
    Но после основ всё же придётся дополнительно изучать то, что появилось в PHP 8 - а там немало интересного.

    Что касается статистики, то к моменту окончания обучения соотношение используемых версий уже поменяется.

    P.S. PHP - большой и сложный язык, все возможности которого невозможно освоить за месяц.
    Ответ написан более двух лет назад
    Комментировать
    Комментировать
  • Не отправляются данные в БД, как решить?

    Андрей Ежгуров @eandr_67
    web-программист (*AMP, Go, JavaScript, вёрстка).
    if (mysqli_query($link,"INSERT INTO users SET user_login='".$login."', user_password='".$password."'")) {
        header("Location: login.php");
        exit;
    } else {
        var_dump(mysqli_error($link));
    }

    P.S. Если ваши "курсы" рекомендуют писать $password = md5(md5(trim($_POST['password'])));, значит их клепал откровенный неуч, ничего не смыслящий в back-end. Срочно меняйте их на что-то более адекватное - иначе потом придётся долго и мучительно переучиваться.
    Ответ написан более двух лет назад
    6 комментариев
    6 комментариев
  • Перенос старой системы бронирования на wordpress. Как устранить ошибку при поиске контроллера?

    Андрей Ежгуров @eandr_67
    web-программист (*AMP, Go, JavaScript, вёрстка).
    В исходниках - в папке, в которой находится цитируемый index.php - есть подпапка controllers - в которой и находятся php-файлы контроллеров. И эту папку надо перенести (именно как папку controllers) в папку wp-content\themes\twentyseventeen\rezerwacje\.
    Только вот контроллеры существуют не сами по себе, а запрашивают данные у моделей (отдельная папка), передают их представлениям (ещё одна папка) и т.д.

    P.S. Непонятно, что именно вызвало затруднения. Код абсолютно примитивен.
    Ответ написан более двух лет назад
    1 комментарий
    1 комментарий
  • Почему в консоль выводится undefined?

    Андрей Ежгуров @eandr_67
    web-программист (*AMP, Go, JavaScript, вёрстка).
    console.log(myBox.case.equipment[value])
    Использовать значение переменной в точечной нотации не получится.
    Ответ написан более двух лет назад
    1 комментарий
    1 комментарий
  • Media query или разбивать по файлам для каждого экрана свой дизайн?

    Андрей Ежгуров @eandr_67
    web-программист (*AMP, Go, JavaScript, вёрстка).
    Зависит от того, насколько код в разных файлах связан. Если какая-то правка в дизайне затрагивает один файл - это нормально. А если пять файлов? Это уже героическое преодоление собственноручно созданных трудностей.
    А ускорение загрузки страницы происходит не за счёт того, что объём CSS уменьшается, а за счёт того, что CSS кэшируется браузером и загружается только при первом заходе на сайт.

    P.S. А как быть, если я на десктопе меняю ширину окна браузера? Как будет работать система с набором файлов?

    P.P.S. Спагетти-код возникает, когда есть переходы назад по коду. В CSS, обрабатываемом строго сверху вниз, спагетти не может быть по определению.
    Ответ написан более двух лет назад
    Комментировать
    Комментировать
  • Как перебрать строку и вывести на экран нужное?

    Андрей Ежгуров @eandr_67
    web-программист (*AMP, Go, JavaScript, вёрстка).
    $s = '|1||2||3||7|9|';
    echo implode(',', array_map(function ($v) { return ' qwertyuio'[$v]; }, preg_split('#\|+#', $s, -1, PREG_SPLIT_NO_EMPTY)));
    preg_split - получаем массив чисел, содержащихся в $s
    array_map - используется для преобразования числа в односимвольные строки
    implode - склеиваем массив строк в одну строку с заданным разделителем (запятая)
    Ответ написан более двух лет назад
    6 комментариев
    6 комментариев
  • Какую книгу посоветуете по PHP?

    Андрей Ежгуров @eandr_67
    web-программист (*AMP, Go, JavaScript, вёрстка).
    Если убрать "креативность", то наилучшим выбором будет официальная русская документация: https://www.php.net/manual/ru/
    Ответ написан более двух лет назад
    1 комментарий
    1 комментарий
  • В чем ошибка при добавлении даты в mysql?

    Андрей Ежгуров @eandr_67
    web-программист (*AMP, Go, JavaScript, вёрстка).
    Ошибка в том, что to_date - это Oracle, а не MySQL: www.sqlines.com/mysql/functions/str_to_date
    STR_TO_DATE('05-09-2019 17:02:14', '%d-%m-%Y %H:%i:%s')
    Ответ написан более двух лет назад
    Комментировать
    Комментировать
  • Возможно ли совершать операции с числами больше Number.MAX_VALUE?

    Андрей Ежгуров @eandr_67
    web-программист (*AMP, Go, JavaScript, вёрстка).
    В JavaScript недавно завезли целые числа неограниченной длины: https://learn.javascript.ru/bigint.
    Так что сейчас почти как в Python.
    Ответ написан более двух лет назад
    Комментировать
    Комментировать
  • Почему копейки не отображаются текстом?

    Андрей Ежгуров @eandr_67
    web-программист (*AMP, Go, JavaScript, вёрстка).
    From0To999(fDec, objKop, PushToRes, PushToRes);
    Ответ написан более двух лет назад
    3 комментария
    3 комментария
  • Мультизагрузка изображений (PHP)?

    Андрей Ежгуров @eandr_67
    web-программист (*AMP, Go, JavaScript, вёрстка).
    Загрузка группы файлов заметно отличается от загрузки одного файла.
    Немного информации: https://www.php.net/manual/ru/features.file-upload... - пример № 3.
    Ещё немного информации: https://www.php.net/manual/ru/features.file-upload...
    Вот здесь https://techblog.sdstudio.top/multiple-files-uploa... показана выборка нескольких файлов одним input'ом.
    Ответ написан более двух лет назад
    1 комментарий
    1 комментарий
  • Как правильно составить SQL запрос?

    Андрей Ежгуров @eandr_67
    web-программист (*AMP, Go, JavaScript, вёрстка).
    Если надо считать отдельно для каждого значения game:
    SELECT COUNT(DISTINCT game_id) AS count, game FROM bets GROUP BY game

    Если же нужно просто посчитать кол-во уникальных game_id по всей таблице:
    SELECT COUNT(DISTINCT game_id) AS count FROM bets
    Ответ написан более двух лет назад
    5 комментариев
    5 комментариев
  • Почему при новой отправке ajax запроса вызываются предыдущие?

    Андрей Ежгуров @eandr_67
    web-программист (*AMP, Go, JavaScript, вёрстка).
    Потому, что по событию click создаётся новый обработчик события submit - который добавляется к уже существующим обработчикам и в котором фиксируются значение полей в момент срабатывания click.
    Обработчик click вообще не нужен.
    $("#sendzajav").submit(function (e) {
        e.preventDefault();
    
        var emailval = $("#email").val();
        var nameval = $("#name").val();
        var phoneval = $("#phone").val();
    
        if (ValidPhone(phoneval)) {
            $("#phone").removeClass("error");
        } else {
            $("#phone").addClass("error");
            return;
        }
    
        if (!inputlen(nameval.length, "name")) {
            return;
        }
    
        $("#sendzajav").val("Идет Отправка...");
        $.ajax({
            type: "POST",
            url: "mail.php",
            data: {"Имя": nameval, "Телефон": phoneval, "Почта": emailval}
        }).done(function () {
            alert("Спасибо за Вашу заявку!");
            setTimeout(function () {
                $('form').trigger("reset");
            }, 1000);
        });
    });
    Ответ написан более двух лет назад
    1 комментарий
    1 комментарий
  • Opencart OcStore что выбрать?

    Андрей Ежгуров @eandr_67
    web-программист (*AMP, Go, JavaScript, вёрстка).
    1000 позиций для OpenCart - в самый раз.
    Но сам OpenCart уже давно третьей версии (актуальная версия - 3.0.3.6). Так что устаревшую вторую версию ставить не имеет смысла. И OcStore далеко не лучшая русская сборка: они очень сильно задерживают выход новых версий относительно оригинального OpenCart.
    Просто набрать в Google: opencart русский.
    Ответ написан более двух лет назад
    Комментировать
    Комментировать
  • Как правильно вытаскивать текст из MongoDB с сохранением пробелов и отступов?

    Андрей Ежгуров @eandr_67
    web-программист (*AMP, Go, JavaScript, вёрстка).
    А Mongo ли виновата? Ключевая фраза в вопросе: "вывожу их в html". А по умолчанию при показе html любые последовательности пробельных символов (табуляции, пробелы, переводы строк и т.д.) отображаются как один пробел.

    Чтобы текст выводился как есть - со всеми пробельными символами - надо использовать либо https://webref.ru/html/pre, либо https://webref.ru/css/white-space.
    Ответ написан более двух лет назад
    Комментировать
    Комментировать
Оценили как «Нравится»
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • Следующие →
Самые активные сегодня
  • HardBot
    HardBot
    • 10 ответов
    • 0 вопросов
  • VoidVolker
    VoidVolker
    • 6 ответов
    • 0 вопросов
  • mayton2019
    • 5 ответов
    • 0 вопросов
  • Vindicar
    Vindicar
    • 5 ответов
    • 0 вопросов
  • TheAndrey7
    • 5 ответов
    • 0 вопросов
  • Dr. Bacon
    • 5 ответов
    • 0 вопросов
  • © Habr
  • О сервисе
  • Правила
  • Обратная связь
  • Блог

Войдите на сайт

Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации