Я использую vtiger и получаю много спама на странице контакта с сайтом, я использую этот код
<form name="contact" action="REMOVED" method="post" accept-charset="utf-8"> <input type="hidden" name="publicid" value="REMOVED"></input> <input type="hidden" name="name" value="contact"></input> <label>First Name</label> <input type="text" value="" name="firstname" required="true"></input> <label>Phone</label> <input type="text" value="" name="phone" required="true"></input> <label>Last Name</label> <input type="text" value="" name="lastname" required="true"></input> <label>Email</label> <input type="text" value="" name="email" required="true"></input> <label><span>*</span>Street</label> <input type="text" value="" name="lane" ></input> <label><span>*</span>Postal Code</label> <input type="text" value="" name="code" ></input> <label><span>*</span>City</label> <input type="text" value="" name="city" ></input> <label>Country</label> <input type="text" value="" name="country" ></input> <label><span>*</span>County</label> <input type="text" value="" name="state" ></input> <label for="comments"><span>*</span>Description</label>d <textarea name="description" cols="40" rows="3" name="description" id="description"></textarea>
isue im is is submit представляет другой URL-адрес, который отсутствует на сайте, и каждый метод защиты от нежелательной почты, который я пробовал (12 + 1 =), все равно отправляет форму независимо от ответа
я удалил ссылки на сайты
Любая помощь по этому поводу будет отличной
Добавьте дополнительное поле в форму, которую вы не используете. Спрячьте его с помощью css.
Спам-боты, посещающие страницу, заполнят все поля, даже если они не отображаются.
Если в скрытом поле есть что-то, вся форма является спамом, и вы можете отбросить данные.
Я бы порекомендовал вам другой метод antiSpam – с ключом token / private.
В HTML-форме Вы помещаете это:
<form action="..." method="post"> <?php $publicKey = rand()%9; $privateKey = 0.9; $token = sha1( $publicKey * $privateKey + $privateKey ); ?> <input type="hidden" name="publicKey" value="<?php echo $publicKey; ?>" /> <input type="hidden" name="token" value="<?php echo $token; ?>" /> </form>
И добавьте также несколько строк кода перед условием IF – например: фрагмент с SQL-запросом или отправьте почту, просто чтобы проверить / проверить маркированный токен методом POST:
<?php $publicKey = $_POST['publicKey']; $privateKey = 0.9; $token = sha1( $publicKey * $privateKey + $privateKey ); if ( $token == $_POST['token'] ) { // do something, eg: SQL query, send mail } ?>
И ЗАПОМНИ! Всегда проверяйте и дезактивируйте все свои входные данные! 🙂