Я не понимаю, почему вы не можете использовать cookie с истечением, скажем, 10 минут от даты создания.Недостаток, если пользователь уходит и возвращается через 11 минут, он, возможно, не увидит сообщение флэш-куки ... но вам не придется беспокоиться о загрузке клиента куки-файлами.
Просто создайте несколько простых правил содержимогочтобы гарантировать, что никакая привилегированная информация не будет помещена во флэш-сообщение, и вы должны быть хорошими.
Простая реализация может быть чем-то процедурным, например:
function setFlash($id ,$message){
setcookie("flash_{$id}", $message, time() + 60 * 10);
}
function getFlashes(){
$flashes = array();
foreach($_COOKIE as $id => $value){
if(strpos($id, "flash_") === 0){
$flashes[$id] = $value;
//clear flash and set expiration to 10 minutes in past
setcookie($id, "", time() * 60 * -10);
}
}
return $flashes;
//Input cleansing not included for brevity/clarity
}
В качестве альтернативы, если флэш-память исходит только изна стороне клиента вы можете использовать что-то вроде https://github.com/marcuswestin/store.js, чтобы попытаться использовать локальное хранилище для управления флэш-сообщениями.