Вот хитрость: поместите это в печенье!
аккуратный алгоритм:
$ data = serialize ($ object);
$ time = time ();
$ signature = sha1 ($ serverSideSecret. $ time. $ data);
$ cookie = base64 ("$ signature- $ time- $ data");
Преимущество в том, что вы
a) может истечь срок действия cookie, если вы хотите, потому что вы используете метку времени как часть хэша подписи.
b) может проверить, что данные не были изменены на стороне клиента, потому что вы можете воссоздать хеш из сегмента данных в cookie.
Кроме того, вам не нужно хранить весь объект в файле cookie, если он будет слишком большим. Просто сохраните необходимые данные на сервере и используйте данные в файле cookie в качестве ключа.
Я не могу взять кредит на алгоритм, я узнал об этом от Кэла Хендерсона, известного из Flickr.
Редактировать: Если вы находите использование файлов cookie слишком сложным, просто забудьте о них и сохраните данные, которые были бы сохранены в файле cookie, в скрытом поле формы.