Шифрование значения сеанса будет иметь нулевой эффект. Файл cookie сеанса уже является произвольным значением, и его шифрование будет генерировать другое произвольное значение, которое можно обнюхать.
Единственным реальным решением является HTTPS. Если вы не хотите использовать SSL на своем сайте (возможно, у вас есть проблемы с производительностью), вы можете уйти с помощью только SSL, защищающего чувствительные области. Для этого сначала убедитесь, что ваша страница входа в систему - HTTPS. Когда пользователь входит в систему, установите безопасный файл cookie (то есть браузер будет передавать его только по ссылке SSL) в дополнение к обычному cookie сеанса. Затем, когда пользователь посещает одну из ваших «чувствительных» областей, перенаправляет их на HTTPS и проверяет наличие этого безопасного файла cookie.
EDIT: Этот ответ был первоначально написан в 2008 году. Сейчас 2016 год, и нет оснований не иметь SSL на всем сайте. Нет больше текстового HTTP!
Если вы используете MySQL в качестве базы данных, он может возвращать поля даты в виде временных меток unix с помощью UNIX_TIMESTAMP :
SELECT UNIX_TIMESTAMP(my_datetime_field)
Вы также можете сделать это на стороне PHP с помощью strtotime :
strtotime('2010-05-17 19:13:37');
Если вы храните время в базе данных, почему бы вам не позволить базе данных также дать вам временную метку unix? см. UNIX_TIMESTAMP (дата)
, например.
SELECT UNIX_TIMESTAMP(date) ...;
базы данных могут также выполнять сравнение даты и времени и выполнять арифметические операции.
Вы хотите strtotime :
print strtotime('2010-05-17 19:13:37'); // => 1274123617