Преобразование TIMESTAMP в Unix время в PHP?

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

Единственным реальным решением является HTTPS. Если вы не хотите использовать SSL на своем сайте (возможно, у вас есть проблемы с производительностью), вы можете уйти с помощью только SSL, защищающего чувствительные области. Для этого сначала убедитесь, что ваша страница входа в систему - HTTPS. Когда пользователь входит в систему, установите безопасный файл cookie (то есть браузер будет передавать его только по ссылке SSL) в дополнение к обычному cookie сеанса. Затем, когда пользователь посещает одну из ваших «чувствительных» областей, перенаправляет их на HTTPS и проверяет наличие этого безопасного файла cookie.

EDIT: Этот ответ был первоначально написан в 2008 году. Сейчас 2016 год, и нет оснований не иметь SSL на всем сайте. Нет больше текстового HTTP!

24
задан Rob 17 May 2010 в 15:57
поделиться

4 ответа

Вы ищете strtotime ()

37
ответ дан 28 November 2019 в 22:41
поделиться

Если вы используете MySQL в качестве базы данных, он может возвращать поля даты в виде временных меток unix с помощью UNIX_TIMESTAMP :

SELECT UNIX_TIMESTAMP(my_datetime_field)

Вы также можете сделать это на стороне PHP с помощью strtotime :

strtotime('2010-05-17 19:13:37');
4
ответ дан 28 November 2019 в 22:41
поделиться

Если вы храните время в базе данных, почему бы вам не позволить базе данных также дать вам временную метку unix? см. UNIX_TIMESTAMP (дата) , например.

SELECT UNIX_TIMESTAMP(date) ...;

базы данных могут также выполнять сравнение даты и времени и выполнять арифметические операции.

3
ответ дан 28 November 2019 в 22:41
поделиться

Вы хотите strtotime :

print strtotime('2010-05-17 19:13:37'); // => 1274123617
13
ответ дан 28 November 2019 в 22:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: