Задать вопрос
  • Как правильно подготавливать к развёртыванию своего приложения файлы, находящиеся в npm/node_modules?

    Kozack
    @Kozack Куратор тега JavaScript
    Thinking about a11y
    Любая система сборки как то webpack или rollupjs. Суть в том, что они самостоятельно анализируют и формируют программу со всеми *min.js/*min.css и assets если есть.
    На прод заливается только конечный bundle
    Ответ написан
    Комментировать
  • Как узнать откуда был загружен iframe?

    @granty
    Откуда был загружен iframe никак не узнать (узнать-то можно, но в вашем случае это не поможет).

    1. яваскрипт не сработает, тк политика «Одинакового источника» (Same Origin Policy) запрещает доступ из ифрейма к window.top.location.href, если они имеют разные происхождения (грубо говоря - разные домены).
    Проверить window.top != window.self браузер даёт, а доступ к фактическому url из window.top - нет.

    2. на сервере проверять переменную $_SERVER['HTTP_REFERER'] (кто запросил загрузку страницы) смысла тоже нет - если у ифрейма установлен атрибут referrerpolicy:
    <iframe referrerpolicy='no-referrer'>
    реферер не будет прислан (будет, но только в IE/Edge и Safari_IOS).


    Но сделать то, что вы хотите - можно легко. На странице надо издать HTTP-заголовок CSP с директивой frame-ancestors:
    header( "Content-Security-Policy: frame-ancestors https://ваш_сайт.ru http://ваш_сайт.ru https://www.facebook.com https://facebook.com https://www.google.com https://google.com;" );

    это разрешит открывать эту страницу в ифрейме с собственного домена ваш_сайт.ru(без поддоменов!) по http:/https:.
    И сайтам facebook.com и google.com с www или без (но только если фэйсбук/гугль загружены по https: - а их и невозможно загрузить по http:).

    PS: если ваш сайт доступен и по www - добавьте в "волшебную" строку:
    https://www.ваш_сайт.ru http://www.ваш_сайт.ru
    Ответ написан
    Комментировать
  • Как правильно экранировать символы в SQL запросы, если нужно отправить HTML-код?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    HTML никак специально экранировать не нужно. И вообще ничего экранировать не нужно. Экранирование - это треш, угар, прошлый век и инъекции. Данные в БД надо просто посылать отдельно от запроса.

    Удивительно, что на этот вопрос подписалось ещё столько народу.
    Ну это я не знаю - как подписаться на вопрос "сколько будет шестью шесть?". Не "дважды два", но близко.
    Работа с БД - это самые основы пхп, которые обсосаны в каждом учебнике со всех сторон. Неужели всё так плохо, что этот вопрос вызывает столь живой интерес, чтобы попасть в список интересных на тостере?

    Причем твоя лично проблема здесь совсем не в том, "как экранировать". HTML никак особо экранировать не нужно, базе данных абсолютно всё равно, что ты внее вставляешь. Твоя проблема в том, что ты в принципе не знаешь пхп и путаешься в основах языка, используешь устаревшую версию, которая не будет работать на живом сайте. И даже самый базовый синтаксис тебя пугает. Поэтому извини, я буду писать ответ не для тебя, а для тех, кто, в который раз, задается этим вечнозеленым вопросом, но по какой-то причине не смог освоить базовые навыки работы с гуглем/яндексом.

    Чтобы вставить данные в mysql, и вообще никогда не думать ни про какое "экранирование", надо
    1. Все переменные в запросе заменить на знаки вопроса
    2. Подготовить запрос к исполнению
    3. Привязать переменные к знакам вопроса
    4. Выполнить запрос.

    Как я уже говорил, функций, которые начинаются на mysql, в языке давно нет. Остаются только те, которые начинаются на mysqli и PDO. Вот для них я и приведу примеры.

    mysqli
    $type = 'testing';
    $reporter = "John O'Hara";
    $query = "INSERT INTO contents (type, reporter) VALUES(?, ?)"; // заменем
    $stmt = $mysqli->prepare($query); // подготавливаем
    $stmt->bind_param("ss", $type, $reporter); // привязываем
    $stmt->execute(); // исполняем

    Важно! Чтобы этот код работал, сначала надо правильно установить соединение mysqli
    PDO
    $type = 'testing';
    $reporter = "John O'Hara";
    $query = "INSERT INTO contents (type, reporter) VALUES(?, ?)"; // заменяем
    $stmt = $pdo->prepare($query); // подготавливаем
    $stmt->execute([$type, $reporter]); // привязываем и исполняем

    Важно! Чтобы этот код работал, сначала надо правильно установить соединение PDO

    Также можно использовать сторонние библиотеки, с которыми все еще проще. Но использование сторонних библиотек почему-то пугат новичков хуже чем зомби на кладбище в безлунную ночь, поэтому настаивать не буду
    Ответ написан
    18 комментариев
  • Нормальная ли конфигурация пк?

    gecube
    @gecube
    системный администратор, программист... все дела..
    Ответить на вопрос можно только зная финансовые возможности и зная какие задачи будут выполняться на ПК
    В целом - выглядит относительно сбалансированно. Единственное, что ssd на 120ГиБ - это катастрофически мало. Рекомендую рассматривать модели объемом 256ГиБ - 512ГиБ. Тогда не будете испытывать болей навроде "винда накачала апдейтов - место закончилось"
    Ответ написан
    1 комментарий
  • Оцените сборку пк для игр за 60к?

    @iMaximus
    SSD 120 крайне не советую, даже только для системы. Минимум 256. Плюс, здравый смысл советует сейчас для игр покупать Ryzen 5 3600 Изначально хотел брать i5-9400f лет 10 сидел на intel, было тяжело решиться, рад что в итоге смог.
    Ответ написан
    Комментировать
  • Оцените сборку пк для игр за 60к?

    FeST1VaL
    @FeST1VaL
    Тихий
    Я бы взял вместо HDD на 2 тб побольше SSD... одна только колда около 180гб занимает) А большенство игр щяс уже вообщем то требовательны к SSD (так сказать дают приемущество во всяких шутерах)
    Ответ написан
    Комментировать
  • Влезет ли СВО в корпус?

    nidalee
    @nidalee
    Да и да.
    Но для 8700К хватит и Noctua DH-15.
    Ответ написан
    Комментировать
  • Ноут часто вырубается сам. Что делать?

    Zoominger
    @Zoominger Куратор тега Железо
    System Integrator
    Проверить температуру ЦП, если горячий - почистить кулер и поменять термопасту на ЦП.
    Ответ написан
    1 комментарий
  • Ноут часто вырубается сам. Что делать?

    solotony
    @solotony
    покоряю пик Балмера
    что делать .... если честно - отправить старого друга на заслуженный отдых и купить новый. 10 лет - срок для ноута немалый.
    Ответ написан
    Комментировать
  • У меня видеокарта 1660ti и я хочу включить ее через display port,но на пк нету разъема display port, что делать?

    @Drno
    Подключайте hdmi.
    А со своими бесполезными 144ГГц вы уже достали
    Ну или используйте переходник на dp
    Ответ написан
    2 комментария
  • Как отключить _id в коллекциях mongo?

    bootd
    @bootd
    Гугли и ты откроешь врата знаний!
    Его нельзя отключить, это уникальный id для каждого объекта. Но вы можете его переопределить, указав в модели своё значение. Вопрос лишь, накой оно вам нужно!!! Ну есть и есть, чем оно мешает
    Ответ написан
    6 комментариев
  • Что конкретно нужно изучить, чтобы создать свой игровой сервер?

    gbg
    @gbg
    Любые ответы на любые вопросы
    Графы, дискретную математику, линейную алгебру, криптографию и статистику.

    Системное программирование, работу сетевого стека, протоколов IP TCP UDP TLS. Оценку и оптимизацию алгоритмов и контейнеров, параллельное программирование, работу с базами данных и транзакциями.

    Все зависит от того, для какой игры и насколько масштабный вы хотите сделать сервер.
    Ответ написан
    Комментировать
  • Быстрый ответ/консультация на тему программирования?

    @lomeat
    абстрактный ленивый прокрастинатор
    Да банально чатики всякие. Вообще не понимаю как можно чему-то обучаться, если не находиться в профильных кругах. Тот же чат по JS в телеге: https://t.me/JS_learn
    Но я там все ненавижу, кто задает простые вопросы, которые можно погуглить.
    В гуглении нет ничего плохого, наоборот бесят люди, которые не умеют гуглить. Это второй навык любого человека, связанного с работой за ПК, имхо. Потому что по сути это и есть самый точный и развернутый ответ, который ты только сможешь найти. А люди лично тебе могу лишь просто более доступно объяснить какие-то вопросы, но не более.

    Например, я недавно делал конструктор картинок и я гуглил часа 3 наверное, чтобы понять, что у браузера нет API для редактирования картинок как мне надо и пришлось допирать до рисования на канвасе. Просто я к тому, что я до этого сам дошел с гуглом и многому научился и теперь могу рассказать от и до как это все работает. А в чатике мне бы так не помогли. А если бы дали сразу рабочий код, то вообще все плохо.
    Ответ написан
    Комментировать
  • Как настроить url в bitrix для новостей?

    @RuComMarket
    Битрикс FullStack разработчик
    Каталог ЧПУ или URL страницы инфоблока - /news/
    Страница элемента или URL детальной страницы - #ELEMENT_CODE#
    в настройках вызова компонента тоже надо поставить правильно
    Ответ написан
    Комментировать
  • Что быстрее mysql, mysqli или pdo?

    fonclub
    @fonclub
    php developer
    Php 7 мне явно не нужен, не вижу смысла

    А вот насчёт перехода на php 7 стоит подумать. Прирост в производительности впечатляющий, посмотрите тесты. Так что смысл в этом есть.
    Ответ написан
    Комментировать
  • А почему для сео в react-е не сделать так?

    @dimuska139
    Backend developer
    У вас на сайте страниц может быть десятки тысяч. Контент-менеджеры могут добавлять новые каждый день. Для каждой вручную пропишете заголовки и прочее? Сам html-код страницы тоже может быть сложным. Со всякими ссылками на другие страницы и т.п. Тем более если то, что вы вручную написали, будет сильно отличаться от того, что генерит Реакт, можно бан сайта в гугле получить.
    Крайне не советую так извращаться, используйте NextJS.
    Ответ написан
    Комментировать
  • Лучший фреймворк для автопортала?

    Kozack
    @Kozack
    Thinking about a11y
    На самом деле фреймворк — любой. Только бы вы умели с ним работать. А дальше всё зависит от вас — как вы реализуете архитектуру, насколько она будет масштабируемая, на каком железе будет работать.
    Ответ написан
    Комментировать
  • Как делать сложные запросы используя репозитории и объединение разных таблиц?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    решением этой несложной задачки.

    Уважаю такой оптимизм.

    Проблема эта не нова. Называется она object-relational impedance mismatch и очень многие считают её в принципе нерешаемой, сравнивая её с проигранной США войной во Вьетнаме.
    Так что можно надеяться на что угодно, только не на простое решение. Но сначала надо проблему осознать. Что отображение объектов на реляционную базу, которое называется object-relational mapping, сокращённо ORM, никогда не бывает простым.

    Отдельно этой теме добавляет остроты терминология. Спроси 10 разных разработчиков что они имеют в виду под репозиторием и под маппингом, и получишь 20 разных мнений. Так что использовать красивые слова следует с очень большой осторожностью.

    К примеру, "нерешаемость" проблемы с impedance mismatch относится к попыткам сделать универсальный ORM, который на вход получает имя любого класса, а на выходе коллекцию объектов. Про такой вариант можно действительно забыть (привет, элоквент-элоквент - и в продакшен!). Но вот полуавтоматическое решение вполне можно накостылить. Главное всегда помнить о проблеме, и как только автоматический маппинг перестаёт работать - тут же от него оказываться в пользу ручного колупания с запросами. Главное этого не бояться и не загонять себя в клетку словами "репозиторий", "один объект-одна таблица" и пр. У тебя есть задача - инстанцировать объект или коллекци объектов из БД. Окей, ты пишешь методы, которые это делают оптимальным способом, не важно - одна там таблица используется, 10 или еще плюс 2 кэша и носкл датабаза в придачу.
    Надо тебе сохранить объект или коллекци объектов в БД? Окей, пишешь метод, коорый делает это оптимальным способом. Да, это куча черной работы. Но зато у тебя будет чистая доменная логика (которая вообще никакого отношения к базе данных или "репозиториям" не имеет).

    Отдельно прекламирую Cycle ORM. Сам я ненастоящий сварщик, но взрослые дядьки говорят что она лучше всего подходит для нормально реализованного маппинга объектов на БД. Лучше чем Доктрина или прости-господи Элоквент. С нетерпением жду доклада автора на ПХПРаша.
    Ответ написан
    1 комментарий
  • Как перевести из rgba в hex?

    lazalu68
    @lazalu68
    Salmon
    Тысячи их!

    2oB87xZ.gif
    Ответ написан
    Комментировать