• Как взаимодействовать с элементом ::after?

    @alekssamos
    Программист любитель
    Заходим сюда
    /bitrix/cache/css/s1/redisigne/page_3ac9c0442a118ab1ae197b277795c9a4/page_3ac9c0442a118ab1ae197b277795c9a4_v1.css

    И находим строку:
    .district__item .item__address--ninetoten::after {
        content: '9:00 - 22:00';
        font-weight: 300;
        font-size: 12px;
        line-height: 14px;
        color: var(--pink);
        padding-left: 5px;
    }


    Вот и ответ. Время в CSS, а не в HTML коде.
    Ответ написан
    1 комментарий
  • Как правильно организовать разработку на Laravel + Docker?

    Рекомендую https://laradock.io/
    Ответ написан
    Комментировать
  • Как удалить домен в яндекс.коннект?

    @donlordhan
    https://yandex.ru/support/connect/troubleshooting....

    Теперь в нашем сервисе есть возможность самостоятельно удалить домен, даже если он единственный в Вашей организации.

    Если Вы хотите удалить свой домен из Яндекс.Коннект, пожалуйста, сделайте следующее:

    1. Перейдите в раздел Профиль организации
    2. Нажмите значок ... (три точки в правом верхнем углу профиля Вашей организации )
    3. Выберите пункт "Удалить организацию".

    Это получится сделать, если:

    1. Делать это из внешнего аккаунта администратора вида login@yandex.ru
    2. На домене нет ящиков пользователей (общий ящик организации вида all@domain.com удалится автоматически при удалении организации)
    3. На домене никогда не были подключены платные сервисы в Яндекс.Коннект (Трекер или Расширенный тариф)
    Ответ написан
    Комментировать
  • Как поднять несколько сайтов на одном сервере?

    neatsoft
    @neatsoft
    Life is too short for bad software
    Категорически не согласен с ранее данными ответами. Докер отлично подходит для этой задачи, причём решает целый ряд проблем. Имеющиеся сайты могут оказаться привязаны к разным версиям одних и тех же программ, докеризация позволит изолировать их окружения. Упростится тестирование, деплой, и настройка dev окружений.

    В качестве tls proxy / load balancer рекомендую использовать Traefik - он автоматически подхватывает Docker контейнеры в соответствии с указанными в docker-compose.yml правилами, получает tls сертификаты для всех адресов с помощью letsencrypt, эффективно роутит запросы между контейнерами, позволяет балансировать нагрузку между несколькими контейнерами (docker-compose --scale).

    Время, потраченное на изучение Docker и Traefik, с лихвой окупится колоссальной экономией времени в будущих проектах.
    Ответ написан
    7 комментариев
  • Как в XPath получить чистое значение атрибута?

    DevMan
    @DevMan
    у вас очень странный интернет. да и копать нужно не его, а доку по xpath в целом и по xpath в пыхе в частности.

    foreach ($xpath->query('//a/@href') as $href) {
    	echo $href->nodeValue, PHP_EOL;
    }
    https://3v4l.org/0XlvA
    Ответ написан
    Комментировать
  • Как пробросить ip адреса?

    @res2001
    Developer, ex-admin
    Дожили. Гугл консультируется на тостере :)
    Ответ написан
    2 комментария
  • Зачем мне docker, vagrant если есть openserver, denwer?

    sim3x
    @sim3x
    Если вы хотите два раза отлавливать ошибки, сначала на винде, а потом на продакшене - то ни вагрант, ни виртуалки вам не нужны
    Ответ написан
    Комментировать
  • Как подобрать Xpath для данного случая?

    @krypt3r
    XPath
    //tr/td[@class='sklad'][text()='Ростов']/following-sibling::td[@class='cost']/text()
    Ответ написан
    1 комментарий
  • Какое средства виртуализации выбрать?

    Т.к. у вас зоопарк ОС, то лучше выбрать гипервизор из списка: XenServer, Proxmox, ESXi.
    Я в практике использовал XenServer. В целом, нареканий к нему особых нет.
    Ответ написан
    Комментировать
  • Почему говорят что jquery не нужен?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    Скрипач не нужен, родной (с)
    Аргументы против jq:
    - современные браузеры достаточно хорошо поддерживают единый синтаксис современного екмаскрипт(native js)(на самом деле нет).
    - сторонняя библиотека, работает медленнее чем натив и в основном состоит из с-сахара (тоже не совсем правда)
    - тащить еще один ресурс весом от 64 кб до 200 кб, еще и со сторонних ресурсов замедляет загрузку( правда, но бред)
    Аргументы за:
    - Современные браузеры как и всегда один другого "ровнее", всегда есть косяки и "нюансы", на которые еще и попадаешь обычно в самый неподходящий момент, в жк обычно все работает одинаково везде, ну или лучше чем в нативе.
    - В жк реализована куча плюшек в 1 функцию которые в нативе занимают "многабукав", не каждый начинающий напишет их правильно, да и профи не все напишут оптимально, уверен что в большинстве случаев написанный нативом функционал будет хуже аналога из жк.
    - размер мин пакета жк 64 кб, и все они лежат на быстрых цдн серверах. Думаю это последнее что может повлиять на скорость загрузки страницы.
    - есть ОГРОМНОЕ количество скриптов написанных с учетом жк, не использовать их глупо, писать свой велосипед - вообще только в целях обучения(не берем крайние случаи когда плагин писал упоротый пингвин).
    - Синтаксис и краткость записи - вообще вне конкуренции.
    - Старые браузеры никто не отменял, часто заказчик требует чтобы работало в ие8, натив не канает или доставляет море анального удовольствия.
    Вывод: Если ты крут в жс, еще и работаешь в ангуларе/ещечетамдляфронта и тебе нужно сделать 2 действия в очень современных браузерах - jquery не нужен, и ты это сам знаешь. Если слова ангулар, вуе и проч для тебя не больше чем шум листвы за окном, а навесить плагинов и эффектов нужно - jquery наше все.

    UPD: для всех кто там отписался а ля "в связи (...), исчезновением проблемы совместимости со старыми IE (что и было основным назначением jQuery)." - свежачок
    Ответ написан
    4 комментария
  • Как отправить _POST запрос в PHP?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    foreach($params as $k => $v) {
    $postData .= $k . '='.$v.'&';
    }

    Вы что, все сговорились? $postData = http_build_query($params);
    Ответ написан
    Комментировать
  • Что за шаблон у даного сайта lifehacker ru?

    @architawr
    "Ok, Google" и все твои проблемы решены
    Самодельный
    latest?cb=20170304234232
    Ответ написан
    Комментировать
  • Почему база данных mysql не принимает знаечение php?

    @Arik
    Вы построили INSERT ( $sql ), но в БД не отправляете
    Ответ написан
    Комментировать
  • Вывод кнопок в inline_keyboard и keyboard построчно. Как?

    @LyoSU
    Программист-любитель
    Вноси в другой подмассив
    {{1строк_1кнопка,1строка_2кнопка},{2строка_1кнопка}}
    Надеюсь суть уловил
    Ответ написан
    1 комментарий
  • Минимальные настройки безопасности Linux на VPS?

    Tyranron
    @Tyranron
    Ряд моментов Вы уже сделали, но я все равно их опишу для полноты списка.

    1. Создать отдельного пользователя и хороший пароль на sudo. Не использовать больше root напрямую. Совсем.

    2. SSH. Отключаем метод аутентификации по паролю. Если Вам не нужны другие методы, то их тоже можно отключить, оставив только publickey. Отключаем возможность аутентификации root'ом. Включаем использование только 2й версии SSH протокола.

    3. Устанавливаем Fail2Ban и настраиваем чтобы после нескольких неуспешных попыток подключения по SSH банило по IP на длительное время. Кол-во попыток и время бана можно тюнить в меру своей паранойи. У меня, например, банит на час после 2х неуспешных попыток.

    4. Iptables. Действуем по принципу "запрещено все, что не разрешено". Запрещаем по умолчанию весь INPUT и FORWARD трафик снаружи. Открываем на INPUT'е 22 порт. В дальнейшем открываем порты/forwarding по мере необходимости. Если у нас предполагаются сервисы на соседних серверах нужные только для внутренней коммуникации (Memcached, Redis, и т.д.), то открываем для них порты только для определенных IP. Просто так торчать наружу для всех они не должны.

    5. Настраиваем автоматические обновления apt-пакетов. Уровень security. То есть так, чтобы обновления безопасности накатывались автоматически, но при этом не выполнялись обновления со сменой мажорной версии (дабы обезопасить себя от "само сломалось").

    6. Устанавливаем ntpd. Серверное время должно быть точным. Также временную зону сервера лучше всего установить в UTC.

    7. TLS (не SSL) используем везде где можем. Через Let's Encrypt получаем бесплатные валидные сертификаты. В конфигах веб-серверов, mail-серверов, и других приложений торчащих наружу (в том числе и OpenVPN), запрещаем/убираем использование слабых шифров. Все ключи/параметры генерируем не менее 2048 бит. Самоподписные сертификаты подписываем с помощью SHA-256 (не SHA-1). Diffie-Hellman параметры (dh.pem) под каждый сервис лучше сгенерить отдельно. Проверяем TLS сервисов через Nmap. Минимальный grade должен быть A, не должно быть warning'ов.

    8. Правильный менеджмент пользователей/групп. Приложения/сервисы не должны запускаться под root'ом (разве что они действительно этого требуют и иначе никак). Для каждого сервиса создается свой пользователь.

    9. Если предполагается upload файлов через PHP (либо другие скриптовые языки), в директории, куда эти файлы загружаются (и которая доступна снаружи), должно быть жестко отключено любое выполнение скриптов/бинарников, что на уровне ОС (x права), что на уровне веб-сервера.

    Это была база.
    Дальше, в меру своей паранойи можно за'harden'ить сервер ещё следующими моментами:
    - SELinux, chroot
    - доступ к SSH только с определенных IP (нужно иметь 3-4 VPN-сервера под рукой)

    UPD И да, все это помнить/настраивать руками каждый раз может быть запарно. Используйте Ansible и автоматизируйте процесс (там родные и YAML, Jinja2 и Python).
    Ответ написан
    10 комментариев
  • Загрузка файла curl php?

    Sanasol
    @Sanasol Куратор тега PHP
    нельзя просто так взять и загуглить ошибку
    Загрузить файл к себе, а потом уже куда надо
    Ответ написан
    1 комментарий
  • Php curl multi user requests?

    @remzalp
    Программер чего попало на чем попало
    1. Убедитесь, что удаленный сервер на ваш комп умеет отдавать одновременно несколько страниц. Например апачевский ab:
    ab -c 10 -n 100 http://localhost:8080/
    Аккуратно! Сопоставимо с ДоС атакой по нагрузке, убедитесь, что с той стороны будут рады Вас принять. Будет запрашивать в несколько потоков один и тот же урл.

    2. Убедитесь, что локальному серверу хватает мощности, чтобы просто отдавать страницы в несколько потоков тем же ab

    3. Попробуйте не модулем PHP работать, а вызывать через php.net/manual/ru/function.passthru.php
    НЕБЕЗОПАСНО, только теста ради.

    4. Попробуйте в тестовом скрипте не стартовать сессии (не уверен, что в этом причина, но бывает блокировка).

    И когда исключите всё за пределами cUrl, уже можно будет ковыряться с ним.
    Ответ написан
    3 комментария
  • Где хостить демона?

    romy4
    @romy4
    Exception handler
    любой хостинг, поддерживающий крон.
    > ignore_user_abort(); и set_time_interval(0)
    плохое решение
    Ответ написан
    21 комментарий