Задать вопрос
  • Можно ли сделать чип вездеход для домофонов?

    Keffer
    @Keffer
    ICANN
    Было бы можно - уже бы они разошлись по всему миру, такие ключи-вездеходы. В этом и задумка, что нельзя. Иначе пропадает всякий смысл от домофона.
    Ответ написан
    1 комментарий
  • Как подключить экран фотопарата? сделать видео вход на экран от CAMEDIA C-5060?

    Zoominger
    @Zoominger
    System Integrator
    Почитайте специализацию на экранчик.
    Посмотрите, какой там коннектор используется.
    Сколхозьте свой коннектор, только учтите, что где-то будет подаваться видеосигнал, а где-то - питание.
    Напишите свой драйвер для работы этого экранчика под Windows.

    Ну или просто на Али закажите за копейки полностью аналогичный, но уже с распаянным HDMI.

    spoiler
    И да, под женскими никами писать это год эдак 2005-ый, моё почтение.
    Ответ написан
    Комментировать
  • Почему не работает код коректно?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    function check(){
      let num = parseInt(document.getElementById('mynum').value);
      
      if (num > comp){
        out.innetHTML = 'Число больше';
      } else if (num < comp){
        out.innetHTML = 'Число меньше';
      } else{
        alert('win!!!');
      }
    }
    Ответ написан
    Комментировать
  • Как обработать возникшую ошибку в PHP скрипте загрузки страницы?

    Stalker_RED
    @Stalker_RED
    Редирект это 3xx, а ошибка это 5xx.
    Вы не можете отдать два статуса одновременно.

    Но вы можете отдав 500 отдать и содержимое страницы.
    header('HTTP/1.1 500 Internal Server Error', true, 500);
    readfile("my500page.html");
    Ответ написан
    Комментировать
  • Как очищать текст в 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 комментариев
  • Возможно ли создать отчёт Excel с помощью SQL?

    @WinnerIT
    Программист и фотограф-любитель
    1.
    1. Результаты SQL запросов можно сохранить как csv, а потом импортировать в Excel
    2. В современном Excel есть возможность импортировать данные прямо из БД. Посмотрите в райтере "Данные"
    Ответ написан
    2 комментария
  • Как можно реализовать данный код на php?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Достаточно file_get_contents, но можно и через cURL.
    Ответ написан
    Комментировать
  • Как соединить три кабеля с двумя витыми парами?

    vesper-bot
    @vesper-bot
    Любитель файрволлов
    Свитч Auto MDI/MDIX, в него воткнуть все три двухпарных кабеля с прямой разводкой.

    Вы сейчас пытаетесь строить то, что называется "коммутационный шкаф", в них два типа оборудования: патч-панели, на которые разводятся кабели от розеток на разъем типа RJ45 мама, и устройства организации локальной сети (свитчи, хабы, роутеры, вот это всё). Соответственно, минимум для локальной сети вам нужен свитч/хаб (конкретно хабов сейчас не делают, устарели), в который нужно воткнуть все три кабеля с помощью разъемов RJ45 папа.
    Ответ написан
    3 комментария
  • Почему не рекомендуют использовать jQuery?

    zkrvndm
    @zkrvndm
    Архитектор решений
    Нет такой рекомендации, если хотите можете использовать. Да и не смотря на развитие самого JavaScript, jQuery все равно лаконичнее и удобнее.
    Ответ написан
    Комментировать
  • Как удалить себя из интернета?

    New_Horizons
    @New_Horizons
    Бред:
    Все, что попало в интернет – остается там навсегда!

    Забудь, нет таких сервисов.
    Ответ написан
    Комментировать
  • Как установить Dev и Prod режимы в php.ini?

    DevMan
    @DevMan
    никак: это просто рекомендуемые настройки, а не реальные.
    Ответ написан
    Комментировать
  • Как установить Dev и Prod режимы в php.ini?

    SagePtr
    @SagePtr
    Еда - это святое
    Это рекомендации. Причём я лично с ними не всегда соглашаюсь: например, для прода выставляю тоже E_ALL (но display_errors Off как и полагается), чтобы отлавливать редкие проблемы, не выявленные при разработке.
    Ответ написан
    Комментировать
  • Только PHP ли такой?

    Вариант 1 - шаблонизаторы плюс рендер на стороне сервера
    Вариант 2 - RESTful API на PHP а рендер на фронте по полученным данным
    Ответ написан
    Комментировать
  • Только PHP ли такой?

    Stalker_RED
    @Stalker_RED
    Вы конечно можете отдельно написать бек, а на фронт сделать на статическом HTML (потеряв при этом ряд возможностей, но представим, что они вам не нужны). Можете добавить на фронт js скриптов, которые будут что-то подгружать.
    Никто не заставляет вас использовать php как шаблонизатор.

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

    Neocaridina
    @Neocaridina
    самый скромный
    проходишь по всем ненужным аккам и меняешь данные/логины/контакты на левые.
    все, тебя там нет
    Ответ написан
    6 комментариев
  • Зачем индексировать таблицы по uuid?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега PostgreSQL
    Седой и строгий
    Очевидно, чтобы быстро находить по uuid.
    Ответ написан
    Комментировать
  • Не могу передать метки в php?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Опять 25... Учимся искать свои косяки:
    0)
    Есть форма, я вставил туда код чтобы брать метки
    В коде у вас нет формы...

    1) проверяем что поля формы содержат нужные данные (открываем страничку с меткой, смотрим форму инспектором, проверяем что в нее что-то вообще попало)

    2) Открываем в браузере инструменты разработчика, вкладку нетворк, при отправке формы смотрим что форма отправила все данные нужным методом и с нужными данными.

    3) На сервере через var_dump() проверяем какие переменные пришли постом/гетом

    Но метки не приходят
    Из чего такой вывод? Не вижу чтобы вы их как-то проверяли, там чисто присвоение.

    PS: утм метки обычно пишутся один раз при заходе с ней в куку/сессию, чтобы не приходилось вот так их тащить через жеппу, а иметь к ним доступ в любой точке кода, и трекать что юзер делал после перехода на сайт.
    Ответ написан
  • Нужно ли 40-летнему джуну уметь максимально много?

    php666
    @php666
    PHP-макака
    Короче, я боюсь, что, выучив слишком много всего, стану отпугивать работодателей своей продвинутостью.
    лол
    40 лет, а мыслит как 18-и летний юноша-максималист
    выучит он "слишком много всего"
    ты выучи сначала
    потом приходи сюда
    когда ты "слишком много всего" выучишь, тебе минимум будет 45 лет

    Но вот думаю: А не слишком ли "крутым" я стану?
    на первом же собеседовании тебя сотрет в порошок 25-30 летний чувак с опытом и покажет твое истинное место.
    это не оскорбления.
    это твое будущее.
    Ответ написан
    8 комментариев
  • Отправка изображения canvas на сервер PHP?

    @alexalexes
    btn_send.addEventListener('click',async() => {
        let blob = await new Promise(resolve => canvasElem.toBlob(resolve, 'image/png'));
        let formData = new FormData(); // Создаем объект формы для наполнения данными, словно мы работаем с тегом form в html.
        formData.append('canvas_field', blob, 'canvas.png'); // это эквивалент тому, что в нашей html форме создаем поле input type="file" name="canvas_field" value="canvas.png" и прикрепляем туда содержимое blob (метод append сам расшаривает blob, дополнительных преобразований не требуется). Естественно, на DOM-дереве это никак не отразится, это модель формы в памяти JS.
        let response = await fetch('web_tp_word.php', {
        method: 'POST',
        body: formData // для fetch не нужно дополнительных параметров, чтобы объяснить как работать с formData. Идеально, чтобы завернуть файл в форму и отправить на сервер.
        });
    });

    На стороне сервера:
    var_dump($_FILES['canvas_field']); // Сервер при вызове скрипта сложит данные файла во временный файл, а как их получить - в $_FILES. Далее можно обрабатывать всеми теми способами, предназначенные для работы с $_FILES. И после уже неважно, как их сгенерировали на клиенте.
    Ответ написан
    1 комментарий
  • Как запретить менять тему на сайте?

    @alekcena
    Нелинейный наставник
    Никак. Это не зависящие от браузера обстоятельства.
    Ответ написан
    Комментировать