• Как правильно защитить форму от спама?

    DanArst
    @DanArst Куратор тега HTML
    Гриффиндор в моде при любой погоде!
    Hidden-инпуты для защиты от спама - это фигня. Больше половины ботов раскусят.
    Я на многих сайтах ставлю довольно простую защиту, которая отлично работает.
    Добавь в форму какой-нибудь текстовый инпут и скрой его стилями, но НЕ ЮЗАЙ display: none;, visibility:hidden;, opacity:0;, так как многие боты и это раскусят.

    Например input с name="copyemail":
    <form action="">
    	<input type="text" name="copyemail" placeholder="Email для копии">
    	<input type="text" name="name" placeholder="Имя">
    	<input type="email" name="email">
    	<button type="submit">Отправить</button>
    </form>

    и стили для него:
    input[name="copyemail"] {
        display: block;
        width: 2px;
        height: 2px;
        margin-bottom: -2px;
        border: none;
        padding: 0;
        opacity: 0.01;
    }


    И дальше уже на сервере проверяешь:
    if ($_POST['copyemail']) {    
        //Это спам! Делаем вид, что сообщение отправлено.
        die('Ваше сообщение отправлено');
    } else {
         //Все норм. Метро Люблино, работаем
    }
    Ответ написан
    3 комментария
  • Sweet Alert добавил гимн Украины на сайт. Как убрать его из кода?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Рекомендуют использовать предыдущие версии 11.0.0 - 11.4.8

    https://github.com/advisories/GHSA-qq6h-5g6j-q3cm

    Например, попробуйте включать точную версию:
    https://cdn.jsdelivr.net/npm/sweetalert2@11.4.8
    Ответ написан
    1 комментарий
  • Как исправить ошибку Email rejected per DMARC policy?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Чтобы отправлять почту, в наше время нужно выполнить много условий?

    1. Нужна PTR-запись для IP отправителя, и должна существовать соответствующая A-запись (например, 111.22.33.44 указывает на mail.site.ru, должна существовать A-запись для mail.site.ru, необязательно на тот же IP).

    2. Нужно описать SPF (TXT-запись с v=spf1 у домена site.ru), по которому данный IP должен быть доверенным для отправки почты.

    3. Нужно настроить DKIM и подписывать письма ключом, публичная часть которого описана в DNS.

    4. Должна быть описана политика DMARC в TXT-записи _dmarc.site.ru. При этом если там указано p=reject, то получателю предписывается полностью отвергать почту от недоверенных отправителей.

    Вот вероятнее всего что-то из этого сделано не так.

    Полезно также использовать https://mxtoolbox.com/DMARC.aspx и другие инструменты на том же сайте (отдельная благодарность paran0id за напоминание).
    Ответ написан
    5 комментариев
  • Как исправить ошибку при загрузке компании Google Ads?

    @Antonov12345
    Мне помогло следующее:
    Зайди в "Общая Бибилиотека"/"Общие дополнительные ссылки"
    Всё с этого раздела, нужно переместить в раздел:
    "Общая Бибилиотека"/"Общие обновленные дополнительные ссылки"
    (Переместить можно, скопировав их в Буфер, затем вставить в новый раздел с помощью кнопки "Внести несколько изменений". И обязательно надо удалить их из старого раздела! Потом заново установить связи с компанией.)
    Эти же действия нужно проделать с раздерами "Общая Бибилиотека"/"Общие уточнения" на "Общие обновленные уточнения"
    И, так же с разделом: "Общая Бибилиотека"/"Общие структурированные описания" на "Общие обновленные структурированные описания"
    Ответ написан
    4 комментария
  • Можно ли как-то выполнить ремаркетинг по посещениям, без доступа к админке сайта?

    kocherman
    @kocherman
    Эта функция называется динамический фид.
    https://support.google.com/google-ads/answer/31245...
    Не показывать рекламу тем кто уже проходил по ссылке не получится, но получится показывать изменённую рекламу. А в случаях когда ты не попадаешь в сниппет контекстной рекламы для пользователя, тогда ты не сможешь увидеть таких пользователей в статистике рекламы. Соответственно, при одних и тех же ключевиках один раз показывать рекламу, а другой - не показывать рекламу, не получится.

    Если ты направляешь на одну и ту же страницу - то у пользователя ссылка выделится, как посещённая. Так что, сам пользователь и так будет видеть, что по ссылке ходил.
    Ответ написан
  • Как разделить 2 компании с одной тематикой в google ads на 2 аккаунта?

    DeoZ
    @DeoZ
    Веб-разработка и Реклама
    Вероятнее всего висит уже автоматический блок на самом домене. Пересоздавая аккаунты вопрос не решите, можете наоборот навредить. Решается только через переписку с поддержкой.
    Ответ написан
    7 комментариев
  • Как интегрировать комментарии VK в vuejs?

    Fzero0
    @Fzero0
    Вечный студент
    Ну допустим так например
    Файл vknt.js
    const API_ID = 68 // код свой;
    
    export function injectVKOpenApi() {
      return new Promise((resolve, reject) => {
        try {
          const fjs = document.getElementsByTagName("script")[0];
          if (document.getElementById("vk_openapi_js")) {
            resolve();
            return;
          }
          const js = document.createElement("script");
          js.id = "vk_openapi_js";
          js.src = "//vk.com/js/api/openapi.js?160";
          js.onload = resolve;
          js.onerror = reject;
    
          fjs.parentNode.insertBefore(js, fjs);
        } catch (err) {
          reject(err);
        }
      });
    }
    
    /**
     * This initializes the VK api
     * @param {boolean} onlyWidgets
     */
    export const initVK = (onlyWidgets = false) => () =>
      VK.init({ apiId: API_ID, onlyWidgets });
    
    export const initCallVK = () =>
      new Promise((resolve, reject) => {
        try {
          window.name = "fXD";
          VK.init(resolve);
        } catch (err) {
          reject(err);
        }
      });

    Файл компонента VkComment.vue
    <template>
      <div><div id="vk_comments"></div></div>
    </template>
    
    <script>
    import { injectVKOpenApi, initVK } from "./vknt.js";
    
    export default {
      name: "vk-comments",
      props: {},
      mounted() {
        injectVKOpenApi()
          .then(initVK(true))
          .then(() => {
            VK.Widgets.Comments("vk_comments", { limit: 5, attach: "*" });
          });
      }
    };
    </script>
    Ответ написан
    5 комментариев
  • Как правильно настроить таргетинг на Москву в Adwords?

    DeoZ
    @DeoZ
    Веб-разработка и Реклама
    С таким таргетингом Вы вряд ли что-то получите в Google Adwords.
    Во-первых, смените геотаргетинг на Москву и Московскую область (или просто Москву). Использование радиуса на целые города смысла не имеет.
    Во-вторых, на поиске таргетинг по демографии лучше не использовать, максимум можно ввести корректирующие ставки в дополнение к основной. В новом интерфейсе это вариант "Наблюдение", в старом "Только назначение ставок".
    В-третьих, не имеют ли Ваши низкочастотные запросы в Google Adwords статус "мало запросов"? При таком статусе показов по ним не будет.
    Ответ написан
    3 комментария
  • Как реализовать подобный эффект?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Абсолютное позиционирование, вырезание картинок, before/after... Ох и понапридумывают всякого...
    .example {
        background: linear-gradient(to right, #F0F3BD, #F0F3BD), // левая граница
            linear-gradient(to right, #F0F3BD 0%, #F0F3BD 70%, #fff 70%, #fff 100%), // верхняя
            linear-gradient(to right, #F0F3BD 0%, #F0F3BD 70%, #fff 70%, #fff 100%), // нижняя
            linear-gradient(to right, #fff, #fff); // правая
        background-size: .5rem 100%, 100% .5rem, 100% .5rem, .5rem 100%;
        background-position: top left, top left, bottom left, top right;
        background-repeat: no-repeat;
    }

    Один элемент. Один фон. Для всего остального есть CSS.
    codepen
    5aa57a2048bd2215197814.png
    Ответ написан
    Комментировать
  • Как динамически вывести картинку из которой генерируется миниатюра Wordpress?

    deniscopro
    @deniscopro Куратор тега WordPress
    WordPress-разработчик, denisco.pro
    Здравствуйте.

    В случае функции wp_get_attachment_image, Вы можете указать размер вторым параметром. Оригинал — это full.
    $img = wp_get_attachment_image( $attachment_id, 'full' );

    Если это изображение записи или страницы, то можно использовать функции the_post_thubmnail или the_post_thumbnail_url.
    <?php the_post_thumbnail('full'); ?>
    
    <img src="<?php the_post_thumbnail_url('full'); ?>" alt="">
    Ответ написан
    3 комментария
  • Почему не выводится надпись "Комментарий ожидает проверки" в Wordpress?

    @Mario62
    ВП определяет принадлежность комментария автора по e-mail. Поэтому без его обязательного ввода никаких сообщений "ваш коммент ожидает модерации" в принципе не будет.
    Ставим в админке галку "Автор комментария должен указать имя и e-mail", обязываем пользователя вводить мыло и все будет.
    Ответ написан
    1 комментарий
  • Есть ли криптовалюта, которая ушла в минус по своей стоимости?

    Jump
    @Jump
    Системный администратор со стажем.
    Есть ли криптовалюта, которая ушла в минус по своей стоимости?
    Теоретически да.
    Стоимость криптовалюты, это количество денег которое за нее дают на бирже.

    Если покупатели на бирже дают вам за 1 одну единицу криптовалюты дают один рубль - ее стоимость рубль.
    Если покупатели на бирже дают вам за 1 одну единицу криптовалюты не дают денег - ее стоимость ноль рублей.
    Если покупатели на бирже, которые хотят приобрести у вас одну единицу криптовалюты требуют с вас 100рублей - ее стоимость -100рублей.

    При каких условиях такое может произойти?
    Обычно тогда бывает когда некая вешь не просто не нужна (нулевая стоимость) но еще и приносит проблемы - вот тут может возникнуть отрицательная стоимость.
    Вот мне знакомый говорит - забери у меня монитор, вполне нормальный отлично работает, всего за тысячу рублей.
    Я говорю - без проблем, давай тысячу, я за эти деньги согласен забрать его и вынести до ближайшего мусорного контейнера.

    Вопрос к тому, что не придётся ли выплачивать убытки бирже если такое произойдёт.
    Это бред какой-то...
    С чего это бирже придется что-то выплачивать?
    Бирже то от этого какая печаль?
    Биржа это просто площадка на которой встречаются покупатели и продавцы и проводят сделки.
    За каждую сделку они отстегивают процент бирже - за то что она предоставила им место встречи.
    Клиенты платят бирже - биржа не платит никому.
    Ответ написан
    Комментировать
  • Как правильно написать цикл loop и get_field в wordpress?

    deniscopro
    @deniscopro Куратор тега WordPress
    WordPress-разработчик, denisco.pro
    Так уже пробовали?
    <?php if(get_field('X')) {
        $populargb = new WP_Query('showposts='.get_field('X').'&orderby=date&order=DESC' );
    }  else {
      $populargb = new WP_Query('showposts=6&orderby=date&order=DESC' ); 
    } ?>

    P.S. Белый экран означает, что произошла ошибка. Включите режим отладки.
    Ответ написан
  • Вывод изображений в зависимости от размера экрана на Wordpress с помощью Jquery?

    one_day
    @one_day
    Функция выводит на экран html код картинки

    Вам нужен the_post_thumbnail_url
    Ответ написан
    Комментировать
  • Сайт на нескольких языках (rel=«alternate» hreflang=«x»)

    @igoravr
    На себя ссылку добавлять не надо.

    Для сайта на русском:
    Для сайта на английском:
    И так далее для все страниц, которые имеют другие языковые версии.
    Ответ написан
    2 комментария
  • Как подгрузить музыку пользователю при посещении страницы?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега Веб-разработка
    Наверняка как-то просто делается.
    Не особо, на самом деле.
    Самое простое - сделать ajax-запрос этих файлов и заголовками кеширования сообщить браузеру, что их нужно сохранить. В таком случае последующие запросы будут отрабатываться из кеша. Но есть несколько проблем:
    • Саму страницу нужно открывать при наличии интернета.
    • Большие файлы проживут в кеше браузера меньше.
    • Никакого контроля над тем, когда браузер выкинет файл из кеша у нас нет. Вернее, мы можем заставить браузер выкинуть файл, но не можем заставить его сохранить.


    Перечисленные проблемы решает Service Worker, но его внедрение, особенно в этом контексте, дело нетривиальное. Достаточно сказать, что Paul Lewis посвятил этой задаче 15 видео. Он, правда, делал видеоплеер, но аудиоплеер сделать не намного проще.
    Ответ написан
    1 комментарий
  • Нужно ли закрывать от индексации хлебные крошки?

    XXX
    @XXX
    Решение где-то рядом
    Нужно ли закрывать от индексации хлебные крошки?
    В каких случая лучше закрывать в noindex, в каких в nofollow и когда лучше держать их открытыми для индексации?
    Rokis смысла закрывать от поисковиков навигационные цепочки просто нет. Google Use Cases.
    Если есть проблемы с перелинковкой их нужно решать оптимизацией структуры, nofollow noindex здесь костыли, а не решение.

    Анализирую разные сайты и в некоторых вижу, что хлебные крошки закрыты тегами . В некоторых ссылки просто в nofollow.
    С тем же успехом на этих сайтах могут закрывать nofollow любые внутренние ссылки.
    Ответ написан
    1 комментарий
  • Как выводить публикации Wordpress в двух блоках без повторов?

    deniscopro
    @deniscopro Куратор тега WordPress
    WordPress-разработчик, denisco.pro
    Здравствуйте.

    Как вариант, собрать ID выведенных записей в массив и добавить post__not_in.
    <?php 
    $ids = array();
    if( have_posts() ){ while( have_posts() ){ the_post(); $ids[] = get_the_ID(); ?>


    $myposts = get_posts(array('numberposts'=>'5', 'orderby'=>'date', 'post__not_in'=>$ids);
    Ответ написан
    1 комментарий
  • Как растянуть div на всю ширину родительского flex div блока?

    potapchino
    @potapchino
    #1
    .content {
      justify-content: center;
    }


    #2
    .circ {
      margin-left: auto;
      margin-right: auto;
    }
    Ответ написан
    5 комментариев