Задать вопрос
  • Почему global не действует на переменную, инициализированную во внешней функции?

    @Vitsliputsli

    Почему следующий код на PHP печатает 7, а не 12?

    Потому что это не js. А global работает ровно так как описано в доке, по-другому никак, т.к. область видимости работает иначе в языке.
    А делать надо так, чтобы функция внутри себя не обращалась с произвольными данными извне, только с теми, которые вы заранее объявили. Только так можно контролировать код. А значит global не нужен.
    Ответ написан
    Комментировать
  • В чем разница записи массива через указатели?

    @res2001
    Developer, ex-admin
    Приоритет операции * выше, чем у -
    Ответ написан
    Комментировать
  • Что это за файл, и как его удалить?

    pindschik
    @pindschik
    ФЫВА ОЛДЖ
    1) То, что tcpsvcs.exe - системный процесс, еще не означает, что он не был подменен, в него не инжектирован вредоносный код (в том числе только в оперативке, а не на диске).

    2) Вы установили себе вредоносное ПО. То, подо что оно мимикрирует - не имеет значения. То ли это псевдо-торент, то ли "скачивальщик", то ли показыватель баннеров. Надо понимать - злоумышленникам нужен доступ к вашему ПК и он был получен, при чем с админскими правами. Название компании - это просто для вашего самоуспокоения, дескать это такое своеобразное ПО.

    3) Схема троянского ПО обычно такая: сайт-приманка; "дроп" - компонент который забрасывает на ваш комп
    полезную нагрузку; "троян" - сам компонент зловреда с полезной нагрузкой и удаленным управлением; дальше идет сервис в даркнете по продаже услуг, связанных с зараженными ПК, согласно покупок сервиса - вам будет по необходимости инсталлироваться то вредоносное ПО, на которое есть спрос: кража банковских данных, аккаунтов в соцсетях и мессенджерах, майнинг крипты и т.д.

    4) Ваши действия сейчас не соответствуют угрозе. У вас есть немного форы, пока злоумышленники продают базу в даркнете. Потом ее кто-то купит и начнется веселье. Срочно необходимо:
    а) с чистого устройства немедленно сменить все пароли доступа которые когда либо как угодно были на вашем ПК, в том числе в хранилище гугла. Включить двухфакторку везде, где это возможно.
    б) предупредить всех ваших контактов в соцсетях, мессенджерах и т.д. - что вы взломаны, и денег никому не давать.
    с) обойти все банки, которыми вы пользуетесь - заблокировать все онлайн операции и приложение.
    ... и только уже потом снести систему полностью, включая загрузочные разделы на жестком диске, перепрошить заново BIOS, и ставить винду по новой, с образа MSDN.

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

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Например, сейчас мне необходимо сделать документ, который будет содержать информацию о том, какие дополнительные функции необходимо реализовать в уже существующем проекте.

    Техническое задание (ТЗ)?
    Ответ написан
    Комментировать
  • Зачем нужен интерфейс, если есть абстрактный класс?

    @Mercury13
    Программист на «си с крестами» и не только
    Разрешите добавить. Интерфейс, грубо говоря,— это абстрактный класс без данных и недописанных функций (каждая или полностью жизнеспособна в какой-то ситуёвине, или нулевая = полностью абстрактная, не путать с пустой). И причины этому две.

    1. Организационная. Говорит программистам: не ставьте тут абстрактный класс, если можно интерфейс. Так кузявее: не стоит подключать большую артиллерию, когда можно обойтись малой кровью.

    2. Техническая. Прикрывает один такой серьёзный жупел, как ромбическое наследование данных. Ромбическое наследование данных бывает двух видов.
    Пусть у нас такое:
    class Grandfather { public: int field; };
    class LeftFather : Grandfather {};
    class RightFather : Grandfather {};
    class Son : LeftFather, RightFather {};

    а) С дублированием, когда у сына два поля field, унаследованное через левого отца и через правого. Достаточно сделать функцию…
    void foo(LeftFather& x) { x.field = 42; }
    Как сохранить синхронизацию для левой и правой ветки наследования?
    б) С общим дедом, когда у сына одно такое поле (через виртуальное наследование Си++). Тут левая и правая ветки могут быть просто не готовы к тому, что поле будет меняться без её ведома.

    Ромбическое наследование функций не так вредно: ведь любая функция, извините, работает с данными. А значит, она или имеет дело с внешними данными (а значит, в обеих ветках сделает одно и то же), или нулевая, или просто комбинация таких же нулевых (InputStream.remainder() { return size() - pos(); }).

    Почему я говорю «в какой-то ситуёвине». Возьмём тот же remainder. Существуют потоки — скажем, закэшированный ввод с внешнего устройства — которые не имеют размера и позиции, но способны иметь остаток. Для каких-то потоков можно написать остаток более эффективный. Но это казуистика.
    Ответ написан
    Комментировать
  • Веб-сервер дома на виндовс для работы с python?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Начните с изучения Django и формирования более конкретных вопросов.
    Ответ написан
    Комментировать
  • На чем создать мобильное приложение?

    @caballero
    Программист
    а заем тут мобильное приложегние?
    сделайте несколько страниц в ERP и пусть работабт с ьраузера
    Ответ написан
    2 комментария
  • Proxmox - это Debian?

    @Drno
    да
    Ответ написан
    Комментировать
  • Как сохранить get параметр при переходе на другую страницу?

    @alexalexes
    Если вы хотите сохранить выбранный населенный пункт в вашем разрабатываемом сайте (интернет магазине), то вам не нужно тянуть этот параметр при каждой ссылке. Вам нужно при выборе города от пользователя получить этот параметр один раз и сохранить его либо в куках $_COOKIE, либо в сессионной переменной в $_SESSION, либо в базе данных в профиле пользователя.
    Далее, при любом обращении к любой странице вашего сайта доставать этот параметр из описанных выше источников и использовать как некую переменную контекста для выбора и формирования контента страницы.
    Ответ написан
    1 комментарий
  • Как установить готовый проект Laravel на VPS-сервер?

    delphinpro
    @delphinpro
    frontend developer
    Подключиться к серверу по ssh
    Если проект в гите, то настроить соединение с гитхабом (гитлабом и т.п.), то есть сгенерить ключи, добавить их в лк гитхаба и протестировать подключение.
    Когда соединение есть, клонировать проект из репы git clone ...
    Если не в репе, то просто залить по ftp файлы проекта
    Далее выполнить установку зависимостей
    composer install
    Смонтировать хранилище
    php artisan storage:link
    Установку зависимостей фронта и его сборку
    npm install
    npm run build

    Отредактировать файл .env, внеся в него необходимые настройки подключения к БД и прочие.
    Выполнить миграции и при необходимости сидирование
    php artisan migrate
    php artisan db:seed

    Первичное развертывание закончено
    Ответ написан
    Комментировать
  • Как исправить create_function на php 8?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    array_walk_recursive(
        $arConfig,
        static function (&$n)
        {
            $n = match($n) {
                "true" => true,
                "false" => false,
                default => $n,
            };
        },
    );
    Ответ написан
    Комментировать
  • Предлагают $8000 за браузерное расширение с аудиторией 120к+, адекватно?

    Noizefan
    @Noizefan
    8 - мало в любом случае, 15-20 по моим грубым, ориентиров по прайсу на такое быть не может, аудитория и специфика бывает разной.
    если есть сайт или возможность управлять этими 125к - им можно предложить продукт за 500, и если хотя бы 16 из них купят - человек отбил вложения. Чуть чуть прикинь и посчитай как можно этот ресурс трансформировать в прибыль, и примерно узнаешь сколько это может стоить.
    Другая сторона - тебе самому этот актив не нужен, извлекать прибыль не хочешь / не умеешь, но считаешь что оно должно стоить дороже предложенного?
    Другой вопрос - вместе с расширением тебе судя по всему придется отдавать аккаунт. Далее загружается обновление или используется какая нибудь уязвимость, и расширение становится разносчиком вредоносного кода, крадет деньги, следит за пользователями. Оно ж еще наверняка дырявый manifest v2?) А ты, получается, не просто соучастник, а аккаунт-то вовсе полностью твой, и вот ты уже закрыл себе въезд в многочисленное количество стран и нажил проблем на задницу за 8000.

    Чо бы я тебе посоветовал - не продавать, а нанять человека и за процент вместе с ним попробовать трансформировать этот актив в прибыль. И сам больше заработаешь, и риск подконтролен тебе.
    Ответ написан
    7 комментариев
  • Как добавить всплывающее окно на сайт 1с битрикс?

    godsplan
    @godsplan
    1. Заходим на https://freelance.habr.com/
    2. Ищем исполнителя
    3. Оплачиваем заказ
    4. Получаем результат
    Ответ написан
    Комментировать
  • Почему одно регулярное выражение для одной и той же строки выдаёт разные результаты?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    JavaScript RegExp objects are stateful when they have the global or sticky flags set (e.g., /foo/g or /foo/y). They store a lastIndex from the previous match. Using this internally, test() can be used to iterate over multiple matches in a string of text (with capture groups).
    Кратко - с опциями g и y объект RegExp сохраняет позицию, с которой продолжает поиск при следующем вызове. У вас одинаковые строки и второй вызов начинает с позиции, на которой закончился первый вызов, то есть уже после '.mp3'.
    Ответ написан
    1 комментарий
  • Ошибка Allowed memory size of 4294967296 bytes exhausted (tried to allocate 81920 bytes)?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Исправить скрипт, чтобы ему для работы не требовалось 4 Gb оперативки.
    Ответ написан
    1 комментарий
  • Как правильно выбрать фреймворк и яп для проекта, если ты заказчик?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Я думаю, таких фреймворков не существует.
    Дело в том, что ваши требования совершенно уникальные

    1)Нужно будет выполнять много запросов к БД

    На всех остальных сайтах делается один-два запроса в час.

    2)Важная быстрая скорость работы нашего сайта

    Это очень редкое требование, обычно сайту достаточно возвращать ответ в течение получаса

    3)Безопасность от всяческих XSS и SQL атак.

    Это самое сложное. еще не написан фреймворк, который бы писал код за программиста, или хотя бы подчищал за ним баги и уязвимости
    Ответ написан
    Комментировать
  • Как экранировать sql запрос внутри texarea?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Это очень просто сделать.
    Надо всего лишь освоить подготовленные выражения.
    Например, почитав вот тут https://habr.com/ru/articles/662523/

    И все запросы, в которых участвуют переменные, выполнять только таким образом.
    А texarea там, или tinymce - это уже без разницы.
    Ответ написан
    1 комментарий
  • Почему при удалении куки возникает ошибка Warning: Cannot modify header information?

    delphinpro
    @delphinpro Куратор тега PHP
    frontend developer
    Ответ написан
    Комментировать
  • Почему при удалении куки возникает ошибка Warning: Cannot modify header information?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Чтобы решить эту проблему, надо научиться пользоваться интернетом.
    В частности, освоить такой сложный навык, как взять сообщение об ошибке, вставить в адресную строку своего браузера, и нажать enter
    И после этого с удивлением обнаружить, что объяснений этой ошибки существует несколько миллионов.
    Например https://ru.stackoverflow.com/questions/284578/

    И заодно не помешает научиться задавать вопросы. Чтобы не спрашивать про то, что вы и так знаете.
    Ответ написан
    4 комментария
  • Есть устройство на астра линукс (Смоленск) версия ос с сертификатом ФСТЭК, никак не получается установить программы или окружение на устройство, идеи?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Сообщение о том, что
    такого файла не существует и установлен он не будет

    означает, что не существует такого файла и он не будет установлен. Вот теперь понятно?

    Так же попытки установки deb пакетов были безуспешны.

    С каким текстом ошибки? Нам самим что-ли ошибку придумывать?
    Ответ написан
    Комментировать