Задать вопрос
  • Как получить текст запроса, сформированого при помощи curl?

    @nozzy
    Symfony, Laravel, SQL, Python, Telegram
    Ответ написан
    Комментировать
  • Как переписать функцию?

    Vlad_IT
    @Vlad_IT Куратор тега JavaScript
    Front-end разработчик
    Избавьтесь от id, или сделайте его уникальным для каждого блока. У двух и нескольких блоков, id не должен совпадать.
    Теперь у вас есть список боксов $('.box'), нужно пройтись по нему массивом, и для его дочерних элементов применить ваши скрипты.
    var boxes = $('.box');
    boxes.each(function () {
       var $box = $(this);
       // Засуньте сюда весь ваш код, который нужен отдельно для каждого чекеда. 
       // Только не надо функции выносить. Функции не должны ссылаться на глобальные переменные,
       // все элементы вы должны передавать через аргументы. 
       // Дальше ищите элементы относительно $box. Например, вам нужен .handle, просто
       // пишите $box.find('.handle') - так вы получите только элементы с классом handle, которые
       // находятся внутри текущего бокса.
    });
    Ответ написан
    1 комментарий
  • Почему выполняется php код в js коде(сессии)?

    @LemonFox
    stateless mind
    $_SESSION['login'] = "guest1"

    Вы перезаписываете сессию
    Ответ написан
  • Есть ли сайт, где собраны общепринятые практики программирования?

    Moskus
    @Moskus
    Естественно, нет, потому что всё, что вы описали - это не какое-то тайное знание, которое можно только запомнить, а логичные приёмы, которые следуют из знания фундаментальных принципов и анализа требований к продукту. Если попытаться заменить фундаментальные знания таким сборником прецедентов, он получится гигантским и совершенно непригодным для освоения - столько всего просто нельзя запомнить. Объем фундаментальных знаний - на порядки меньше объёма частностей, которые из них выводятся, но сложность этих знаний, при этом, выше. Кто фундаментальные знания не осилил, остаётся говнокодером, пока не осилит.
    Ответ написан
    Комментировать
  • Мой ubuntu сервер пытаются взломать, как защититься?

    mhthnz
    @mhthnz
    PHP, YII2, Golang, Linux
    1) Перенести порт ssh сервера со стандартного на другой, это отобьет большую часть ботов/сканнеров
    2) Запретить авторизацию пользователю root по ssh
    3) Поставить Fail2Ban для блокировки айпишников с которых идет брут

    P.S. Разные порты это скорее всего порты исходящего соединения, поэтому они разные, к вам же они все стучатся на порт который указан в конфиге sshd
    Ответ написан
    1 комментарий
  • Права и роли пользователей как делать?

    amorphis
    @amorphis
    Технолог в Студии Артемия Лебедева
    Почитайте про RBAC (Role-based Access Control)
    Ответ написан
    7 комментариев
  • Как отследить input.value в реальном времени?

    shmatuan
    @shmatuan
    8 year of Web, 5 years of Vue
    https://learn.javascript.ru/events-change

    p.s. судя по написанному - лучше прочитайте для начала учебник https://learn.javascript.ru/
    Ответ написан
    Комментировать
  • Аудит сайта на дыры перед релизом?

    webinar
    @webinar Куратор тега PHP
    Учим yii: https://youtu.be/-WRMlGHLgRg
    перед запуском хотелось бы его протестировать на дыры и уязвимости.

    для этого нанимаете спеца, который пытается его ломануть и дает отчет о уязвимостях.

    а на обычном микрофреймворке, в котором изначально была концепция mvc

    а потом mcv куда-то пропало?

    Какие дыры могут быть на сайтах?

    Самые разные. Вы ожидаете что кто-то знание целой индустрии уложит в 1 предложение? Это как спросить "ребят подскажите как сделать машину своими руками?"

    грубо говоря для них сайт в рид онли

    любой сайт рид онли по сути. Если проект большой, значит и бюджет есть. Наймите не дорогого спеца на фрилансе, который укажет Вам на дыры очевидные. Если Вы не знаете с чего начать, значит наши ответы не особо помогут Вам, что бы его хорошо оттестировать.
    Ответ написан
    Комментировать
  • Какова суть фреймворков и библиотек?

    Stalker_RED
    @Stalker_RED
    Библиотека это инструмент или набор каких-то инструментов.
    Бибилиотека для скачивания видео с ютуба
    Бибилиотека для кропа и ресайза картинок
    Бибилиотека для определения города по IP

    Фреймворк может использовать десятки или сотни разных библиотек. Это набор не только инструментов, но и готовых компонентов, и еще и рекомендация по их использованию.

    "набор для постройки скворечника"
    В комплекте молоток, гвозди, столярный клей, 20 деревянных досточек разных форм и расцветок и инструкция с тремая вариантами скворечника на выбор.

    Или вот два фреймворка:
    Ezva9I.pngzC6ZHT.png
    Можно ли их использовать вместе? (Конечно, никто не запрещает)
    Можно ли из этих деталей построить что-то совсем другое, не такое как в инструкции? (Конечно да)
    Можно ли с этими фреймворками использовать детали еще и из этого?
    lGjE1A.png
    (конечно можно, но придется что-то придумать для совместимости деталек. Быть может придется применить клей, изоленту, пластилин или жвачку. Или шуруповерт, или сварочный аппарат. Но ни в один комплект эти дополнительные инструменты не входят, как и скиллы к ним.)

    Можете посмотреть еще сюда, этот ответ частично покрывает ваш вопрос:
    Для чего нужны фреймворки, а-ля Laravel?
    Ответ написан
    Комментировать
  • Можно ли как-нибудь узнать, какие запросы к какой таблице производились на протяжении работы веб-приложения? И сколько времени они занимали?

    landergate
    @landergate
    IT-шный jack-of-all-trades
    1. В my.cnf:
      performance_schema=1
    2. Перезапустить MySQL.
    3. Импортировать sys_xx.sql из проекта mysql-sys: https://github.com/mysql/mysql-sys
    4. Подождать немного времени, пока наберётся статистика с последнего старта БД.
    5. Анализировать запросы в таблице `sys`.`statement_analysis`.
    Ответ написан
    Комментировать
  • Можно ли как-нибудь узнать, какие запросы к какой таблице производились на протяжении работы веб-приложения? И сколько времени они занимали?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Обычно анализ начинают с включения журнала медленных запросов (slow query log). Туда записываются все запросы, анализирующие больше заданного количества строк и занимающие больше заданного времени.
    Если этого не хватает, то можно включить общий журнал запросов (general query log). Туда уже попадают все запросы и информация о подключении/отключении клиентов.
    Ответ написан
  • Чем опытнее разработчик, тем меньше соблюдается принцип KISS?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Принцип KISS не означает что надо использовать самые примитивные инструменты.
    Он означает, что не надо переусложнять систему без нужды.
    Если так рассуждать, так и высшее образование не нужно: "Дед отличные бани строил, хотя вовсе был неграмотный. Я и без сопромата небоскреб построю!"
    Если вы пока ещё не понимаете назначение всех этих "лееров, провайдеров и репозиториев", это не значит, что они вообще никому не нужны.

    Для того, чтобы упростить управление системой, её надо усложнить.
    Этот принцип относится к любой области человеческой деятельности, от постройки ракет до управления государствами.
    Чем сложнее система, тем больше накладные расходы на ее управление. Хоумпейдж с котиками можно и нужно делать примитивными средствами. В большом проекте надо сразу закладываться на будущую расширяемость. То есть, заранее делить ответственность между "леерами".

    И кстати. Код, в котором "всё друг на друге завязано" - это очень плохой код. Собственно, предназначение всех этих "лееров, провайдеров и репозиториев" как раз в том, чтобы компоненты были как можно более независимы друг от друга.
    Ответ написан
    1 комментарий
  • Как построить инфраструктуру большого проекта?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Вопрос из серии пальцем в небо.
    Не меряется нагрузка в посетителях. Она меряется в rps и *bit/s. Также нужно знать прожорливость вашего ПО к io+ram+cpu иногда еще и gpu.
    Количество серверов, способы распределения нагрузки, всякие репликации бд, распределения между ДЦ подбираются по конкретный проект.
    Не бывает в природе такого, что вот так хренак и у вас откуда не возьмись 1кк активных юзеров, ну разве что событийные проекты типа прямых трансляций. Именно по этому рекомендую начать с малого, а дальше оптимизировать и распределять нагрузку между серверами там, где это необходимо. Например, у вас фото сток: cdn - это то, что вам потребуется. У вас месенджер - стоит выделить кучку серверов на поддержание сокетов с пользователями + хорошо прработать историю сообщений.
    Ответ написан
    1 комментарий
  • Как перевести 64битное+ число, представленное в двоичной системе в сразу в стринг?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    $dec = gmp_strval(gmp_init($bin, 2));
    Ответ написан
    Комментировать
  • Пожалуйста оцените мое убогое ООП?

    Stasgar
    @Stasgar
    Обученная макака
    Во-первых: начните изучать архитектурную часть программирования, изучите паттерны проектирования, изучите SOLID, DRY, KISS и остальные модные словечки, постарайтесь всё это осознать, или, на крайняк - зазубрить. Всё придет с опытом, изначально все не понимали зачем всё так сложно, но эта сложность обусловлена неисчислимыми литрами слёз и потраченных нервов, всё не просто так.

    Судя по всему это тестовое или учебное задание. От вас требовалось отоверинжинирить простую задачу. Давайте попробуем:

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

    Разобъем задачу на отдельные независимые этапы:
    1) Преобразование одной структуры данных (текстового файла) в другую (объект, понятный PHP, к примеру)
    2) Преобразование этой структуры данных в Json формат.
    Первый вопрос, который может возникнуть - почему сразу не преобразовать в json? Ответ - при расширении системы в будущем - нам понадобится вывести данные в виде массива, или в виде XML, или даже в виде готового файла Excel. Нам будет сложно дополнять логику изначального класса, ничего при этом не сломав и не затронув уже существующий функционал. Также ответом на этот вопрос может являться каждая буква из SOLID принципов, подробнее отвечу дальше, когда буду пояснять за реализацию, см. ниже

    Теперь рассмотрим эту задачу с точки зрения ООП, начнем думать не от конкретной реализации, а от интерфейса и абстракции (мы не парсим конкретный файл, мы парсим просто файл, мы не переводим его в конкретное представление json, мы переводим его просто в представление):
    Нам понадобится 2 класса - непосредственно класс, читающий файл и преобразующий его в простейший тип данных (например PHP array). Второй класс - преобразователь простейшего типа данных парсера в какой-то определенный тип:
    1. LogFileReaded implements/extends FileReaderContract(интерфейс, возможно абстрактный класс, если понадобится предустановленная логика)

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

    2. JsonPresenter implements/extends DataTypePresenterContract

      Абстракция содержит контракт на метод output(), а в конструкторе принимются исходные данные. В конкретной реализации JsonPresenter в output() будет банальный json_encode() (да, это нормально, нет, класс не лишний и нет, json_encode() нельзя пихать в сам парсер) А теперь к вопросу - почему не следует просто запихать это всё в парсер и вместо массива отдать json: в будущем, когда система будет расширяться - нам понадобится представить данные в виде XML - что тогда будем делать - переписывать весь код парсера ради добавления switch case "json" и т.д.? А если что-то сломается во всей системе? А если вариантов представления станет настолько много, что файл будет просто не читаем? А при данном подходе достаточно будет просто написать новый класс XMLPresenter, или даже ExcelPresenter, который на выводе не строку будет выдавать, а целый файл (опустим типизацию output пока)). Также этот класс можно реализовать в виде декоратора (паттерн), да и много еще как.



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

    К примеру: в итоге, если вас уже повысили, и вы вместо парсинга стали заниматься более высшими материями - новому программисту, чтобы дописать логику преобразования данных в Excel не нужно знать как конкретно вы преобразовывали когда-то эти данные в json, ему не нужно дебажить ваш код, ему достаточно посмотреть на интерфейс - отнаследоваться от него и написать свой собственный метод преобразования и дальше использовать его в нужном месте.

    P.S. В данной реализации опускаются и упрощаются некоторые моменты для понятности
    Ответ написан
    21 комментарий
  • Как переписать код без использования jQuery?

    Posho
    @Posho
    Frontend-developer
    Комментировать
  • Как переписать код без использования jQuery?

    @sidni
    Php Developer
    window.addEventListener("load", function(){
      let element = document.querySelector(".loader-screen");
      element.style.opacity = "0";
    });
    Ответ написан
    Комментировать
  • Как передать значение из input в переменную без submit?

    gaz12
    @gaz12
    Делаю сайты
    jQuery.ajax({
        url : window.location,

    в url сейчас указана текущая страница, она и возвращается.
    Нужно указать урл страницы-обработчика, которая уже будет возвращать результат.
    Ответ написан
    Комментировать
  • Бэкэнд разработчик на ноде, вкатывание?

    @spaceatmoon
    Дело вкуса. Я знаю JS, но совершенно не хочу вкатываться в nodejs. Зачем мне нода, когда и php решает те же проблемы?

    Мне лично нравиться в PHP, что есть на что опереться. Динамика развития стека средне динамичная и движется в правильном направлении, а не придумывает 100500 решений одной и той же проблемы. Есть решение - все его используют.

    Боязнь изучения другого языка в вашем случае не оправдана. Попробуйте Python/Java/PHP. Ознакомитесь где вот вам проще искать документацию, приятность синтаксиса, скорость разработки. Где вы решаете проблему из мира живого, а не из мира "Как эта штука работает".

    Я как-то хотел изучить Haskell, долго блуждал, но в итоге сложилось ощущение, что язык решает проблему для себя, а не для меня. Мне банально было неудобно всё в том языке. Даже родной редактор завершался с критической ошибкой...
    Ответ написан
    7 комментариев
  • Как защититься от sql иньекции?

    Использовать PDO
    Ответ написан
    Комментировать