Как установить файлы cookie в течение 20 минут и проверить, истек ли срок их действия

Я думал о системе, которая позволит пользователям публиковать только 1 статью за 20 мин. Я не использую систему-член, поэтому я думал, что могу установить cookie в течение 20 минут. И когда пользователь сообщает что-нибудь, проверьте, установлен ли cookie, если да, показ сообщения типа «Только 1 сообщение за 20 минут разрешено», если он не установлен, чем положить материал в базу данных.

Я относительно новичок в php и не знаю, как устанавливать файлы cookie, я пробовал посмотреть руководство по php.net на файлы cookie, но это было слишком запутанно для меня. Поэтому можете ли вы показать, как установить безопасный файл cookie в течение 20 минут и проверить, установлен ли он или нет. Возможно, у вас есть лучшие предложения, которые будут работать вместо файлов cookie и т. Д.

Спасибо.

Solutions Collecting From Web of "Как установить файлы cookie в течение 20 минут и проверить, истек ли срок их действия"

См. Следующие функции:

  • SetCookie
  • получить значение cookie

Чтобы настроить файл cookie на 20 минут, вы можете сделать это:

setcookie("postedArticle", true, time() + (60 * 20)); // 60 seconds ( 1 minute) * 20 = 20 minutes 

Проверьте, установлен ли файл cookie:

 if(isset($_COOKIE['postedArticle']) && $_COOKIE['postedArticle'] == true) { // IS SET and has a true value } 

Использование файлов cookie для этой цели не имеет смысла.
Если это зарегистрированные пользователи, о которых вы говорите, вы должны хранить такую ​​информацию на стороне сервера.
Но если это анонимные пользователи, вы не можете помешать им публиковать каждую секунду. Чтобы очистить файлы cookie от браузера, нужно нажать только одну кнопку.

установить как

 setcookie("TestCookie", $value, time()+1200); 

проверьте через 20 минут, если он истечет, чем работает иначе.

Как указывалось другими, метод 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 } ?>