Как отмечают другие, метод cookie для такой работы бесполезен. Таким образом, шифрование также является пустой тратой ресурсов.
Вы должны вставить CAPTCHA подтверждение, если вы хотите предотвратить спам
То, что вы пытаетесь сделать, это готовый код.
Я включил шифрование значений cookie, чтобы никто не мог изменить значение cookie.
Но, тем не менее, они могут просто удалить куки, которые не будут делать обычные пользователи, если увидят в них зашифрованные значения.
<?php
$cookiename="yourcookiename";
$mysalt="secret salt";
function encrypt($text, $salt)
{
return trim(base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $salt, $text, MCRYPT_MODE_ECB, mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND))));
}
function decrypt($text, $salt)
{
return trim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $salt, base64_decode($text), MCRYPT_MODE_ECB, mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND)));
}
$read="false";
if(isset($_COOKIE[$cookiename]))
{$read=decrypt($_COOKIE[$cookiename], $mysalt);
}
if($read=='true')
{
//your stuff
setcookie($cookiename, encrypt("true", $mysalt), time()+20*60);
}
else {
//can't post
}
?>