• Почему у меня на телевизоре открыт сервер?

    Moskus
    @Moskus
    Это обычное поведение некоторых телевизоров Samsung. Так что это совершенно не важно, что вы думаете, что телевизор "так не может" - он еще как может. И никакой "взлом wifi" тут точно также не при чём.
    Ответ написан
    Комментировать
  • Как правильно реализовать админ-панель в SPA?

    sim3x
    @sim3x
    Как правильно реализовывать какой либо административный функционал в SPA?
    в вебе у вас один (простой*) вариант знать, что запрос пришел от авторизированного пользователя - куки

    *сложные и не всегда рабочие смотрите в коментах

    Если сделать просто защищенные роуты типа - example.com/admin с защитой, то это не совсем правильно как я понимаю ибо можно открыть в конце концов build.js и увидеть там статический HTML на всех этих "защищенных аутентификацией и правами пользователей" страницах.
    и правильно. Перед тем как процессить запрос в апи проверяются права пользователя

    Возникает очевидное решение - делать такие админки на отдельных доменах, ибо все равно весь функционал и взаимодействия с БД осуществляются с помощью RESTfull API.
    отдельный домен делается для того, чтоб куки не утекали, если пользователям позволено вставлять жс код
    Ответ написан
    3 комментария
  • Переменная GOPATH все время слетает, почему?

    Sanasol
    @Sanasol
    нельзя просто так взять и загуглить ошибку
    ну видимо консоль закрываете?

    в ~/.bash_profile пропишите
    Ответ написан
    Комментировать
  • Как вычислить кто делает определенные запросы к базе?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Чтобы такого не происходило, задайте внешние ключи (FOREIGN KEY) с блокировкой удаления/изменения (ON DELETE RESTRICT ON UPDATE RESTRICT).
    Внешние ключи как раз предназначены для автоматического поддержания связности данных между таблицами.
    Ну и, заодно, увидите, у кого скрипты начнут ошибки выдавать.
    Ответ написан
    3 комментария
  • Примеры Back-door в php скриптах?

    @AlexndrNovikov
    Solution Architect in Spiral Scout
    Да ну в общем-то PHP ничем принципиально не отличается от любого другого стека, и уязвимости которые можно эксплуатировать ровно те же самые.

    Адекватный список которым можно руководствоваться - OWASP Top 10

    Конкретно 5 из 10 про PHP с примерами кода и методами защиты PHP Top 5

    Данные по ссылкам не вот прям совсем свежие, но актуальности не теряют
    Ответ написан
    Комментировать
  • Почему не работает результат запроса?

    roswell
    @roswell
    и швец, и жнец, и на дуде игрец
    Проблема тут:
    $mysqli_program_result - два.

    После очередной выборки fetch-функции сдвигают курсор на следующую строку, и во второй раз там уже нечего выбирать, учитывая LIMIT 1. Я бы присвоил результат первой выборки какой-нибудь переменной и использовал в дальнейшем её.
    Кстати, тут недавно (c версии 5.1) подвезли PDO и prepared statements, если интересно.
    Ответ написан
    3 комментария
  • В чём разница gethostbyaddr() и $_SERVER['REMOTE_HOST'] в PHP?

    @none7
    Переменная REMOTE_HOST устанавливается web-сервером на основе сишной функции gethostbyaddr() и php вообще никак не участвует. Если при использовании nginx в качестве proxy, REMOTE_ADDR имеет реальный адрес, а REMOTE_HOST == 'localhost', то это баг того модуля web-сервера, что подменяет IP-адрес подключения. Должно быть $remote_host == gethostbyaddr($remote_addr) || $remote_host == $remote_addr. Если REMOTE_ADDR всегда равен '127.0.0.1' или '::1', то это недоработка хостера.
    Ответ написан
    1 комментарий
  • Можно ли завести windows 7 на ryzen 2200g или ryzen 2400g?

    akaish
    @akaish
    Стек Java\Android
    Нет ни единой причины, почему под хостом Win10 в virtualbox не заведется Win7. Вообще ни одной.
    Ответ написан
    2 комментария
  • В чём разница gethostbyaddr() и $_SERVER['REMOTE_HOST'] в PHP?

    Sanasol
    @Sanasol Куратор тега PHP
    нельзя просто так взять и загуглить ошибку
    gethostbyaddr вообще про другое, оно по IP(!) получает домен к которому "привязан" этот адрес. Reverse DNS называется.

    И это ничего общего с REMOTE_ADDR и получанием IP пользователя не имеет.

    это из-за того, что у них стоит Nginx перед Apache

    это исправляется на уровне вебсервера как раз, чтобы php получал правильный адрес, а не адрес машины на которой он стоит.
    Ответ написан
    1 комментарий
  • Как подсчитать количество элементов в массиве с определенным значением в Smarty без новых ассигнов?

    Maksclub
    @Maksclub
    maksfedorov.ru
    1. Сделайте свой метод count_with($field)
    2. Зарегайте его как плагин https://www.smarty.net/docs/en/api.register.plugin.tpl
    3. Используйте его так: {$data|count_with:'YES'}

    и все :)
    Это чисто решение под Smarty -- регистрация плагина, то есть пользовательской функции PHP, то есть таким способом вы будете ПРАВИЛЬНО использовать Smarty (др словами ХОРОШО И ВЕРНО его учить)
    Тк именно это его назначение -- в нем (в Smarty) специально придумали такой инструмент ПРАВИЛЬНОГО использования функционала, тк это шаблонизатор на 100%,вот вы и шаблонизируйте шаблон...
    Ответ написан
    6 комментариев
  • Какую функцию для подсчета символов мне использовать, чтобы узнать, поместится ли значение в БД MySQL?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    начиная с 5 версии mysql Если вы указываете кодировку utf-8 значит количество символов будет такое какое укажете в поле длины.
    В более ранних версиях поле длина выделяло соответствующее количество байт, что было не очень удобно для кодировок с переменным числом байт, как например utf-8.

    strlen выдаст длину в байтах, mb_strlen выдаст длину в символах в указанной кодировке, UTF8::strlen скорее всего просто сахар для mb_strlen в utf-8.
    Ответ написан
    Комментировать
  • Как создать рабочий url без создания html (php) документа?

    Moskus
    @Moskus
    Используя настройки и надстройки сервера, можно научить его отдавать что угодно по какому угодно URL. Это совершенно стандартная практика. URL, строго говоря, никак не привязан ни к какому реально существующему файлу в файловой системе сервера. Почитайте, например, вот это https://httpd.apache.org/docs/current/mod/mod_rewr...
    Ответ написан
    4 комментария
  • Чем отличается "--$x" от "$x - 1" в данном контексте?

    @D3lphi
    Как это ничем?
    --$x производит декремент переменной, а затем передает её в качестве аргумента функции.
    $x - 1 передает функции значение, полученное при декременте переменной $x.
    Таким образом, в первом случае изменяется значение самой переменной, во втором - нет. А так как значения выражения вычисляются справа налево (для получения результата выражения необходимо сначала выполнить функцию), то в вашем примере, выделенный жирным $x, $x * fac(--$x) будет иметь значение, уже уменьшенное на единицу.
    Ответ написан
    2 комментария
  • Почему preg_match не находит соответствие регулярному выражению, а онлайн сервисы находят?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Скорее всего потому, что вы не указали модификатор u (PCRE_UTF8), а онлайн-сервисы добавляют его автоматически.
    Ответ написан
    Комментировать
  • Зачем передавать event в компонент Vue?

    0xD34F
    @0xD34F Куратор тега Vue.js
    зачем передавать: @my-event="myEvent" ?

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

    Итак, зачем назначать обработчик события? Вообще - это вам виднее, надо или не надо обрабатывать событие, и если надо, то как именно. А в данном конкретном случае - чтобы обновить значение свойства родительского компонента, отвечающего за состояние диалогового окна.

    Кстати,в явном виде делать это совсем не обязательно.

    Первый вариант - можно использовать модификатор sync при привязке значения параметра aa:

    <modal-notifications :aa.sync="isActive" :message="message"></modal-notifications>

    Метод закрытия в компоненте окна в этом случае станет выглядеть так:

    closeModalWindow() {
      this.$emit('update:aa', false);
    },

    Второй вариант - управлять состоянием окна посредством директивы v-model. Надо будет заменить имя параметра с aa на value (ну или настроить model):

    props: ['aa', 'message'], ---> props: [ 'value', 'message' ],
    :class="{'is-active': aa}" ---> :class="{ 'is-active': value }"

    Переписать метод закрытия окна:

    closeModalWindow() {
      this.$emit('input', false);
    },

    Ну а в родительском компоненте станет так:

    <modal-notifications v-model="isActive" :message="message"></modal-notifications>



    Я же делаю из потомка this.$emit('my-event', this.isActive) которое слушает родитель.

    Никто ничего просто так не "слушает". Чтобы "слушать", надо назначить обработчик соответствующего события. Что и происходит посредством @my-event="myEvent".

    эмит выше вроде бы не нужен, но без него не работает

    Чё? Какой ещё "эмит"? Нет "выше" никакого "эмита". Вы в родителе событие обрабатываете, а не порождаете.

    И еще вопрос. Что делает:
    myEvent: function(isActive) {
      this.isActive = isActive
    }

    Почему оно должно что-то принимать? Можно же просто значение из data взять.

    "Значение из data" брать бессмысленно - это и есть this.isActive. Который вам обновить надо. Обновить значением, которое присылает диалоговое окно. Значением, которое передаётся в (т.е., которое принимает) обработчик события.
    Ответ написан
    Комментировать
  • Как обойти просроченный SSL в cURL?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    Ответ написан
    1 комментарий
  • В чем разница pojo и dto?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    POJO - это аббревиатура от Plain Old Java Object, что в переводе значит "обычный объект Java". А DTO - это аббревиатура Data Transfer Object, то есть "объект передачи данных". POJO - это широкий термин, используемый обычно для того, чтобы подчеркнуть отсутствие тесной связи класса с конкретным фреймворком. DTO - более узкое определение из области архитектуры, ограничивающее область применения класса. Как следствие, DTO - это подвид POJO.
    Ответ написан
    2 комментария
  • Влияет ли обилие установленных программ на работу системы?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Это зависит от программ. Некоторые почти не оставляют следов в системе и не влияют на её работу. Некоторые интегрируются глубоко, но тоже не мешают. А некоторые, как раковая опухоль - болезненный нарост, убивающий организм и метастазирующий во все его отделы. Поэтому ПО надо подбирать аккуратно и стоит избегать излишней интеграции в систему. Лично я очень люблю ПО, которое можно скачать простым архивом и использовать без инсталляции.
    Ответ написан
    Комментировать
  • Что не так с php?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега PHP
    В первом случае не сравнение, а присваивание. В итоге в условии используется значение переменной a, которое равно 1, которое приводится к true.

    Во втором случае в первой строке вы производите сравнение, а не присваивание значения. Поэтому во второй строке у переменной $a нет значения, то есть она точно не равна 1.

    С php всё ок, проблема с вашим кодом.
    Ответ написан
    1 комментарий
  • Кодер -> Программист -> Архитектор?

    saboteur_kiev
    @saboteur_kiev Куратор тега Карьера в IT
    software engineer
    Архитектор - в первую очередь опыт работы, в идеале в разных проектах, чтобы понимать на практике разницу между реализацией разных SDLC.

    Название Waterfall или Scrum - это просто названия без конкретной реализации. Можно реализовать отличный Waterfall и все будут довольны, можно реализовать ужасный Scrum и все развалится. Поэтому опыт разных проектов помогает увидеть именно разные реализации.

    Архитектор, бизнес-аналитик и менеджер - три звена, которые создают основу работы проекта, каждый со своей стороны.
    Бизнес-аналитик - должен максимально разбираться в бизнесе заказчика, чтобы понимать значение требований и переводить их для исполнителей.
    Архитектор - должен как минимум немного разбираться в бизнесе, но его основная задача - решить как воплощать требования бизнеса. Определять железо, технологии, требования. Говорить, что "вот для этого нужно использовать 10 этого и 20 этого, и использовать вот такие языки, библиотеки, платные решения". Техническое hi-level видение проекта.
    Менеджер - по согласованию с бизнес-аналитиком и архитектором должен решать кадровые вопросы. Количество людей, качество людей, работу команды, тайминги, офис и оборудование - все денежные вопросы. Отчеты. Договариваться, убеждать заказчика о ценах и сроках. Выбивать новые задачи и развивать проект. Следить за настроением в команде.

    Переход программист-архитектор не всегда последователен. Он должен быть инициирован программистом.

    Программист может остаться просто сеньор программистом, может стать тим-лидом, тратя часть времени на менджмент команды но все-равно основную часть времени оставляя на кодинг.

    Но кодить крутые штуки и одновременно быть архитектором, который тратит приличное время на митинги - это сложно. Поэтому программист - архитектор это связано, но не всегда последовательно.
    Ответ написан
    1 комментарий