вероятно, лучшее имя для поля формы, предназначенного для запуска спам-бота, будет url
Вероятность того, что бот проанализирует html для атрибутов type=text
или textarea
tag a и игнорирует все остальные, вполне разумна.
Ваши шансы поймать спамбота могут быть улучшены с помощью нескольких дополнительных строк кода:
styles.css :
#commentUrl {
display: none;
}
script.js
function setFlag() {
document.getElementById('commentUrl').value = 'Javascript check ok';
}
form.html
<form onsubmit="setFlag();" method="post" action="comment.php">
<label for="commentName">Accname:</label>
<input type="text" id="commentName" name="comment_name" value="" />
<label for="commentEmail">Email:</label>
<input type="text" id="commentEmail" name="comment_email" value="" />
<label for="commentUrl">Url:</label>
<input type="text" id="commentUrl" name="comment_url" value="http://" />
</form>
Comment.php
<?php
if ($_POST['comment_url'] <> 'Javascript check ok' && $_POST['comment_url'] <> 'http://') {
// Let's increase their server load.
header('Location: http://' . $_SERVER['REMOTE_ADDR'] . '/', 307);
}
?>
Поскольку вы используете три разных языка, вы значительно повышаете шансы поймать спамера.
Вы можете улучшить javascript, динамически добавив <link rel="stylesheet"
динамически к DOM, например.