<?xml version="1.0" encoding="utf-8"?> 
<rss version="2.0"
  xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
  xmlns:atom="http://www.w3.org/2005/Atom">

<channel>

<title>Блог: заметки с тегом spam</title>
<link>https://utata.ru/tags/spam/</link>
<description>konditerov.ru</description>
<author>Илья Кондитеров</author>
<language>ru</language>
<generator>E2 (v3877; Aegea)</generator>

<itunes:owner>
<itunes:name>Илья Кондитеров</itunes:name>
<itunes:email></itunes:email>
</itunes:owner>
<itunes:subtitle>konditerov.ru</itunes:subtitle>
<itunes:image href="" />
<itunes:explicit></itunes:explicit>

<item>
<title>Modx Fromit AjaxForm antispam</title>
<guid isPermaLink="false">102</guid>
<link>https://utata.ru/all/modx-fromit-ajaxform-antispam/</link>
<pubDate>Thu, 08 Dec 2022 17:31:03 +0300</pubDate>
<author>Илья Кондитеров</author>
<comments>https://utata.ru/all/modx-fromit-ajaxform-antispam/</comments>
<description>
&lt;p&gt;Создаем hidden-поле и записываем в него сгенерированный на сервере ключ, который кладем в сессию. Когда аякс с формой уйдет на сервер, происходит сверка значения из hidden-поля с тем, что лежит в сессии. В случае, если значения не равны — это спам, следовательно останавливаем отправку формы на почту.&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;&amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;message-key&amp;quot; value=&amp;quot;[[!getMessageKey]]&amp;quot; /&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;где сниппет *getMessageKey* со следующим содержимым&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;if (!isset($_SESSION['spamProtectionMessageKey']) || empty($_SESSION['spamProtectionMessageKey'])){
    $_SESSION['spamProtectionMessageKey'] = time();
}
return $_SESSION['spamProtectionMessageKey'];&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;И создаем еще один снимппет — хук: chekSpamProtectionMessageKey, со следующим содержимым:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;$messageKey = $hook-&amp;gt;getValue('message-key');
if (!isset($_SESSION['spamProtectionMessageKey']) || empty($_SESSION['spamProtectionMessageKey'])
    || empty($messageKey) || (int)$messageKey !== (int)$_SESSION['spamProtectionMessageKey']){
    return false;
}
return true;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;и добавляем вы вызов данный хук&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;&amp;amp;hooks=`spam,chekSpamProtectionMessageKey,email`&lt;/code&gt;&lt;/pre&gt;</description>
</item>


</channel>
</rss>