Задать вопрос
  • Как решить ошибку Cannot GET /solm?

    Aetae
    @Aetae Куратор тега Vue.js
    Тлен
    Вангую у тебя сервер не настроен под тип роутинга history. Гугли как настраивать твой сервер под SPA(все не-API пути должны быть заёрнуты на index.html). Ну или переключи роутер в режим hash.
    Ответ написан
    Комментировать
  • Как в безопасном режиме Windows с поддержкой командной строки провернуть экран?

    borisdenis
    @borisdenis
    Ленив и вреден...
    Безопасный режим на то и безопасный, что в нём загружается минимально возможный набор только стандартных драйверов обеспечивающих работу ОС с целью восстановления. Драйвер видеокарты загружается только базовый, без всяких свистоперделок, он не умеет поворачивать экран. Так что никак.
    Ответ написан
    2 комментария
  • Интерфейсы в связке с абстрактными классами?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Смысл простой.
    Интерфейс - это публичный контракт. То, как класс виден внешнему миру.

    Абстрактный класс - это прототип внутренней реализации, то, как он устроен внутри.

    Так что дополнять можно и нужно.
    Ответ написан
    Комментировать
  • Почему не работает условие if?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Потому что условие с ошибкой. Должно быть:
    <?if ($geturl != '/' && $geturl != '/page/'):?>
    Ответ написан
    Комментировать
  • Как сделать многостраничный сайт без PHP/python/React?

    @alekcena
    Нелинейный наставник
    Эм.
    Ну да ) Каждая страничка HTML - Это 1 страничка.
    Многостраничный сайт - это (N>1)
    В чём вопрос?
    Ответ написан
    5 комментариев
  • Как сделать многостраничный сайт без PHP/python/React?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    page1.html:
    <!DOCTYPE html>
    <html>
      <body>
        <a href="page2.html">На вторую страницу</a>
      </body>
    </html>

    page2.html:
    <!DOCTYPE html>
    <html>
      <body>
        <a href="page1.html">На первую страницу</a>
      </body>
    </html>

    Всё. Много- (двух-) страничный сайт готов.
    Ответ написан
    Комментировать
  • Как правильнее сделать две версии хедера?

    @andand44
    Нужно сделать два макета. Для авторизованного и неавторизованного. Добавление класса просто скроет некоторые блоки, которых совсем не должно быть в коде. Кнопка Войти для авторизованного пользователя, например.
    Ответ написан
    Комментировать
  • Какой инструмент позволит из базы mysql создать файлы миграций?

    kawabanga
    @kawabanga
    Документацию читали?
    https://laravel.com/docs/8.x/migrations#squashing-...
    Ответ написан
    Комментировать
  • Зависает компьютер, но при этом частично работает?

    profesor08
    @profesor08
    Если что-то работает, а что-то виснет, то это похоже на ожидание IO операций. Жесткий диск так помирает. Наверно особенно часто зависает, когда идет работа с жестким диском? Особенно эксельки, которые при каждом чихе сохраняют документ в кеш на диск.
    Ответ написан
    5 комментариев
  • Как изменить урл без перезагрузки страницы?

    profesor08
    @profesor08 Куратор тега JavaScript
    Комментировать
  • Как правильно разместить документацию на библиотеку?

    просто сделать по крону запрос на гайд

    В github есть actions, при помощи которых ты можешь на каждый коммит обновлять документацию.
    то выкачивать файлы и конвертить их в html страницы.

    Для этого уже есть готовые инструменты, для разных языков: doxygen, gitbook, docfx итд.
    Вероятно, для вашего языка уже есть готовый генератор html на основе комментариев в коде.
    Ответ написан
    4 комментария
  • Как правильно писать код на js?

    JohnnyGat
    @JohnnyGat
    Стараюсь писать код, понятный человеку.
    const transformClass = document.querySelector(".info-speaker__link-wrap");
    const introLink = document.querySelector(".info-speaker__link");
    
    introLink?.addEventListener("mouseenter", (e) => {
        transformClass.classList.add("info-speaker__link-wrap-trans");
    });
    
    introLink?.addEventListener("mouseout", (e) => {
        transformClass.classList.remove("info-speaker__link-wrap-trans");
    });


    https://developer.mozilla.org/ru/docs/Web/JavaScri...
    Оператор ?. заменяет проверку того что объект существует.
    Ответ написан
    1 комментарий
  • Как очищать текст в php?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Никак не очищать.

    На самом деле этот вопрос встречается довольно часто. Вот например популярный ответ на Stack Overflow, который подробно разбирает этот распространённое заблуждение: https://stackoverflow.com/a/3126175. И основная мысль там:

    Понятие такой генерализованной "очистки данных" изначально бессмысленное и вредное.

    Особенно такой вот индусской функцией, которая сама по себе - пример редкого идиотизма: сначала заменяем символы < и > на HTML сущности... а потом бодро пытаемся вырезать HTML теги. Которых к этому моменту в тексте не останется ни одного!
    Или функция stripcslashes, которая здесь вообще ни к селу, ни к городу. Если я хочу написать сочетание \n, то с какой стати эта функция будет заменять его на перевод строки?
    Всё что можно оставить из этого безумного набора - это trim(). Да и то не всегда. Как правильно заметил Rsa97, могут быть случаи, когда лидирующие пробелы имеют значение, например, при выводе форматированного кода. Кстати, этим как раз грешит Хабр. Если запостить код с отступами, то первый будет "съеден"!


    Очистка

    Любая "очистка" (хотя правильнее говорить про форматирование), имеет смысл только в определённом контексте.
    И поэтому "очищать" надо только адресно, строго перед использованием в том или ином конкретном случае.

    Например, базе данных ни жарко, ни холодно от наличия HTML тегов.
    А проблемы могут начаться только при выводе данных в HTML. Но если мы будем предотвращать эти проблемы заранее, то просто попортим кучу данных. Поэтому форматировать данные для использования в контексте отрисовки HTML следет строго перед этой отрисовкой. То есть при выводе.
    Что и делают все популярные РНР шаблонизаторы автоматически.
    То есть вручную колупаться с "очисткой" вообще не нужно.

    Больше того, "очистка" HTML поможет данным, выводимым в яваскрипт, как мёртвому припарки. То есть опять же - всегда надо понимать, в какой именно контекст мы выводим данные, и форматировать соответствующим образом. В частности любые данные передавать в яваскрипт только через json_encode()

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

    Валидация

    Если же наличие HTML тегов в поступающих данных противоречит техническому заданию, то надо заниматься не "очисткой", а валидацией: проверить регулярным выражением, есть ли в строке HTML теги. И если есть, то вернуть пользователю с сообщением об ошибке.

    Защита БД

    И кстати, по поводу "использую pdo".
    На всякий случай уточню, что само по себе использование PDO не защищает ни от каких проблем
    Важно помнить, что защита - это когда в базу данных отправляется строго константная строка запроса, полностью на 100% составленная из значений, прописанных в коде РНР, и в ней не используется ни одно значение, пришедшее в код извне. Причем PDO помогает здесь только наполовину, позволяя использовать в запросе подстановки вместо самих данных.
    Но при этом для всех остальных частей запроса - например имен полей - у ПДО нет никакой защиты и её надо организовывать самостоятельно. Либо проверяя по белому списку, лабо, по крайней мере, прогоняя через регулярку.
    Ответ написан
    13 комментариев
  • Как отправить SMS без отправки формы?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Пыталась ещё с curl разобраться, наверное туда и нужно копать?
    да, туда и нужно. Смотрите примеры работы с курл, их много, легко гуглится. Можно тупо подключить их библиотеку, как советует Сергей delphinpro, что дает сразу готовые функции по всем основным действиям с апи сервиса.

    Вообще запросы к апи на 90% выполняются в формате сервер-сервер, крайне редко клиент-сторонний сервер...
    В вашем случае должно быть что-то вроде: аяксом запрашиваете со своего сервера данные, ваш сервер создает запрос к апи сервиса, получает данные и возвращает в ответе аякса. Все ключи / логины / пароли передаются только от сервера к серверу, на фронте никоим образом не должна светиться подобная инфа.
    Ответ написан
    Комментировать
  • Реально ли работать в одном IT-проекте (продуктовом) больше 5-ти лет и не деградировать профессионально?

    В одном проекте можно, в другом нельзя; одному программисту можно, другому нельзя. Если человек хочет развиваться, вы его не остановите. Если не хочет - не заставите. Проект может помогать или мешать, но сам по себе определяющим фактором почти не является. Собственно, вы сами это подтверждаете своим bio:
    Несмотря на долгий срок работы в проекте, нахожу новые интересные задачи, которые не позволяют заскучать.


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

    DevMan
    @DevMan
    работодателю вообще плевать на это. и на ваше портфолио тож.
    Ответ написан
    3 комментария
  • Зачем нужны UI фрейворки, если есть hbs, pug или ejs?

    Я так понял они нужны для того чтобы сделать фронтенд части в бэкенде.
    Вы неправильно поняли. Шаблонизаторы всего лишь упрощают логику генерации html бэкендом, но не имеют прямого отношения к фронтенду и вообще никакого к динамическим интерфейсам.
    Ответ написан
    Комментировать
  • Как защититься от разных URL запросов в Laravel?

    JhaoDa
    @JhaoDa
    LaravelRUS Team
    Во-первых, за удаление методом GET тебя ждёт спец. котёл в аду.

    Во-вторых, читай документацию ларавел, про мидлвари и политики.

    В-третьих, изучай основы HTTP, чтобы знать, как сделать
    Например, чтобы в ссылке не было видно ID группы, а само ID отправлялось другим способом, не через URL, и чтобы запросы вида www.site.ru/group/delete/2 не работали.
    Ответ написан
    1 комментарий
  • Где и как предложить идею нового свойства CSS?

    @Flying
    Спецификаций CSS занимается рабочая группа в составе W3C. Там же есть и информация о том, как принять участие / предложить свою идею.

    К примеру вы можете создать issue в репозитории рабочей группы.

    Однако вам стоит понимать, что работа над спецификацией уровня CSS Grid - это многолетний труд сотен людей для того, чтобы довести её до реального использования. Если вы предполагаете что за всё это время никто из них не додумался до этой идеи - то вам стоит подумать ещё раз.

    Важно помнить, что в отличие от каких-то конкретный use cases которые были бы интересны для пользователей создатели спецификации сосредоточены на совершенно других вещах. Их цель - создание по возможности полного и непротиворечивого механизма, который при этом будет реалистичным в реализации и использовании.

    За примерами далеко ходить не нужно: parent selector - мечта уже нескольких поколений разработчиков и тема постоянных вопросов. Однако его нет в спецификации (хотя он был в первых драфтах CSS 3 насколько я помню) и скорее всего не будет. Причину, если интересно, попробуйте поискать сами.

    Или, к примеру, такое очевидное, казалось бы, опущение как отсутствие аналога :hover для "stuck" состояния элемента с position: sticky. Ведь его явно не хватает почти любому кто использовал этот стиль. Однако его не будет, о причинах (логичных, но далеко неочевидных) можно почитать в соответствующем issue.

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