• Как достучаться до докер контейнера из браузера?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Потому что стучаться надо не на локалхост, а по имени контейнера.
    Ответ написан
    Комментировать
  • Как сделать Docker server из компьютера?

    vabka
    @vabka
    Токсичный шарпист
    Тебе нужно это:
    https://docs.docker.com/engine/reference/commandli...
    https://blog.codefarm.me/2022/06/06/how-to-run-doc...
    Не обращай внимание, что это Windows - конфиги все те же самые.
    Ответ написан
    Комментировать
  • Как спарсить данные с сайта?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    А не проще парсить напрямую, без цикла?
    $usdkzt = $data->find('a[href="#USDKZT"] .currency-round__round .big', 0)->innertext();
    Ответ написан
    1 комментарий
  • С каким интервалом времени установить команды на cron?

    Можно использовать flock (lock-файл) для синхронизации процессов и не позволять определенным работать параллельно
    https://simpleit.rocks/linux/shell/prevent-running...

    P.S. Как рекомендовали в комментариях, правильнее работать с очередями задач, а не через крон. Если в проекте нет RabbitMQ / NATS и т.п., наиболее легковесным вариантом будет Redis
    Ответ написан
    Комментировать
  • PHPStan проверка свойства класса при наследовании?

    @nolotion
    стан тебе все правильно говорит - ты объявляешь параметр объекта класса A, а обращаешься к атрибутам которых там нет.
    если у тебя кейс "а я так не вызываю" - то и пиши правильную сигнатуру метода: public static function price(B $objectB)

    потому что если твой говнокод в классе C будет использовать другой разработчик - то он передаст тебе какой-нибудь объект D extends A без опшинов и будет прав, потому что ты сам написал такой контракт
    а твой код упадет
    Ответ написан
    Комментировать
  • Как привязать postgis к postgres в docker?

    shurshur
    @shurshur
    Нужно просто использовать образ postgis вместо образа postgres. Образ postgis/postgis унаследован от postgres и вполне его заменяет.
    Ответ написан
    2 комментария
  • Как отловить ошибку в дочернем вызову функции?

    Stalker_RED
    @Stalker_RED
    Это не обычное исключение. Нехватка памяти - это аварийная ситуация, при которой скрипт завершается.
    Но вы можете отловить ее при помощи register_shutdown_function().

    UPD: вот тут еще рекомендуют зарезервировать кусок памяти заранее, чтобы освободить ее когда поймаете ошибку
    https://stackoverflow.com/questions/8440439/safely...

    Но лучше по возможности подправить вашу func3, чтобы она освобождала память как только может.
    Ответ написан
    Комментировать
  • Как сделать проверку числа в php?

    Stalker_RED
    @Stalker_RED
    см. операторы сравнения, там есть больше-меньше.

    см. арифметические операторы, там есть вычитание.
    if и while вам тоже нужно линкануть, или c основными управляющими структурами вы уже знакомы?

    Ну и возможно вы неправильно поняли задачу, и вам нужен остаток от деления.
    Ответ написан
    Комментировать
  • Как скачать упакованное Web-приложение из docker?

    Viji
    @Viji
    Associate DevOps Engineer
    1. Через собственный докер реестр
    2. Через архив gzip
    https://docs.docker.com/engine/reference/commandli...
    Ответ написан
    Комментировать
  • Почему при обращении к api сервиса, запущенного в докер контейнере, при ошибке возвращается неполный текст ошибки?

    @afanasiyz
    Javascript-разработчик
    Здравствуйте.
    Считается нормальным для сервисов иметь два режима для сервисов бэкэнда: дев и прод режимы.
    Включенный дев режим (когда вы локально стартуете, это часто по умолчанию дев режим) значит что вы будете получать все возможные логи и все ошибки в ответах.
    При запуске в докере, на моей практике весьма часто, по умолчанию ставят прод режим, и сервис работает как на проде - не сообщает об ошибках совершенно
    Ответ написан
    1 комментарий
  • Не правильно работает idex.php, где ошибка?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    enaen, вы не только путаетесь в названиях файлов (idex.php и sAndmail.php - ярчайший тому пример), но еще и два раза дали один и тот же код sEndmail.php. А самое главное: совершенно непонятно ЧТО ЖЕ ИМЕННО у вас не работает?! Поэтому ответить вам конструктивно, дать совет - не представляется возможным, сорри.
    Ответ написан
    Комментировать
  • Почему $_FILES пустой?

    Tokishu
    @Tokishu Автор вопроса
    Что?
    Я тупой и не прописал форме параметр enctype="multipart/form-data"
    спасибо Danny Arty
    Ответ написан
    Комментировать
  • Как работает htmlspecialchars()?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Ну уж для такой-то простой функции должно быть достаточно написанного на странице документации.
    И, в частности, про ENT_QUOTES ;)

    Эта функция заменяет спецсимволы, которые являются управляющими в контексте HTML, на безобидные HTML-сущности. Вот и всё.
    Чисто визуально управляющие символы будут выглядеть так же, как и должны, но в коде не будут представлять ни малейшей опасности.

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

    <?php $name = "' onclick='alert(\"pwned!\")"; ?>
    <input value="<?=htmlspecialchars($name) ?>"> Не важно. Весь текст так и заключен в двойные кавычки
    <input value='<?=htmlspecialchars($name) ?>'> Важно. Закрыли одинарную, вписываем, что хотим

    Во втором случае этот код отрендерится, как
    <input value='' onclick='alert(&quot;pwned!&quot;)'>
    (но при этом &quot; отрендерятся в двойные кавычки, и в onclick будет уже валидный яваскрипт
    alert("pwned!")

    А с взведенным флагом ENT_QUOTES мы получим
    <input value='&#039; onclick=&#039;alert(&quot;pwned!&quot;)'>

    И хотя значение внутри атрибута отрендерится, как ' onclick='alert("pwned!"), но оно все целиком будет внутри атрибута value.

    Разумеется, лучше всего сделать применение функции универсальным, чтобы не проверять кавычки каждый раз, и не обливаться холодным потом, если кавычки вдруг поменяются. И использовать ENT_QUOTES всегда.

    К счастью, РНР уже позаботился о вас и ваших друзьях. Начиная с версии 8.1, флаг ENT_QUOTES ставится по умолчанию. И приведенный выше пример будет работать только на устаревших версиях. Так что ручное добавление уже уходит в область легаси-практик.

    Чтобы не ломать пальцы, каждый раз набирая всё это htmlspecialchars ENT_QUOTES, толковые джуны всегда пишут пользовательскую функцию-макрос, типа
    function esc($var) {
        return htmlspecialchars($var, ENT_QUOTES);
    }

    Правда, надолго с этой функцией не задерживаются, потому что она годится только при обучении. А любой проект сложнее, чем домашняя страничка про любимого котика, в обязательном порядке уже должен для вывода использовать специальный шаблонизатор, например Twig. Где весь вывод идет с помощью специального оператора, который уже по умолчанию экранирует HTML
    <input value="{{$name}}"> Не важно. Все уже проэкранировано до нас

    Важно помнить, что это экранирование работает только в контексте HTML.
    Если выводим данные внутри кода яваскрипт, то htmlspecialchars поможет как мертвому припарки. И в этом случае надо использовать json_encode.

    Ну и разумеется, надо не забывать комбинировать все варианты экранирования.
    Например, код яваскрипт, который пишется в атрибут HTML тега, надо весь целиком экранировать c с помощью htmlspecialchars. А данные для этого кода - c с помощью json_encode:
    <button onclick="<?= htmlspecialchars("window.open(".json_encode($name).")", ENT_QUOTES) ?>">
    Ответ написан
    2 комментария
  • Первое предложение о работе, как поступить?

    Steel_Balls
    @Steel_Balls
    Считай, что тебе сильно повезло. Джуна да ещё и на такой бэкграунд...
    Будешь дураком, если откажешься
    Ответ написан
    Комментировать
  • Первое предложение о работе, как поступить?

    vabka
    @vabka
    Токсичный шарпист
    Судя по обозначенным минусам - вы уже для себя всё решили.

    Я бы посоветовал, тк это первый опыт, всётаки сходить на испытательный, а если все беспокойства оправдаются - со спокойной душой уйти


    Зарплата - 500 долларов до испыта, 700 - после.

    Есть неиллюзорный шанс, что:
    1. К долларам это ни разу не привязано
    2. После испытательного так и останется 500.


    Дело в том, что позвали меня на позицию Full-stack(junior). Если бы это был фулстек веб(нода+реакт), допустим, скорее всего я бы согласился.

    Но тут надо разбираться с любыми технологиями, которые нужны заказчику(компания аутсорс). Мне сразу сказали, что надо будет и с мобилками работать и уметь деплоить и с кубернетисом работать.


    Всему можно научиться. Уточняй какой стек и думай, хочешь ли ты в этом развиваться.


    Так же из-за специфики работы, пм будет общаться с заказчиком, но будут очень частые случаи, когда надо будет созваниваться с заказчикам, уточнять какие-то моменты + презентовать продукт по результатам работы.

    Это норма для небольших компаний.


    3.Знакомые опытные ребята говорят, что фулстек джунов не существет и это вообще треш.

    Фулстек сеньоров тоже)
    Если хочешь жёстко по хардам прокачиваться, то надо более узко специализироваться.
    Ответ написан
    Комментировать
  • Первое предложение о работе, как поступить?

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

    @WaterSmith
    Android-разработчик. Java, Kotlin
    Вообще, вполне можно прямо вот так всё и рассказать начальству, как вы здесь написали.
    1. На настоящий момент я закрываю почти все таски на .Net
    2. Приставленный к моему проекту PM уже почти не участвует в моём проекте, я справляюсь сам.
    3. С момента трудоустройства вопрос о повышении зарплаты не поднимался, кажется пришло время, обычно зарплата пересматривается два раза в год.

    Удобный момент любой, вот прямо завтра идите к начальнику и говорите.
    Если захотите предварительно получить реальный оффер со стороны, он придаст вам уверенности, и даст последний аргумент, на случай если начальство не захочет повышать зарплату, а так, можете о нем даже не упоминать.
    Ответ написан
    2 комментария
  • Как правильно просить повышения зарплаты?

    Нет желания блефовать увольнением и жирным оффером из другой компании, так как текущая меня более чем устраивает, да и на данный момент опасно угрожать уходом начальству, так как it пузырь уже сдулся

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

    GavriKos
    @GavriKos
    но наш сайт не поддерживает его

    сделать так, чтобы поддерживал.
    Ответ написан
    Комментировать
  • Как редактировать отдельные страницы в многостраничном сайте?

    Adamos
    @Adamos
    В реальных проектах человек, не разбирающийся в сайтостроении, использует CMS.
    WordPress, например, весьма популярен, и материалов насчет "как" по нему достаточно.
    Ответ написан
    Комментировать