Приветствую. Подскажите как реализовать такую штуку-делаю срок действия ссылки для активации учетной записи на сайте. Часть ссылки записывается в переменную сессии. И надо чтобы эта переменная была действительна 30 минут от даты ее записи и потом unset. Возможно ли это реализовать на чистом php без субд? Мозговал над функциями time,date, strtotime но как то бестолку.
ну я так и хотел НО как зафиксировать время(без записи в бд), когда была записана переменная сессии, чтобы потом сравнить с текущим временем? Добавлено спустя 2 минуты 35 секунд: хотя можно и время в сессию записать. как вариант
Вот играйся Код (PHP): <?php $salt = 'qwertyuiopasdfghjklzxcvbnm1234567890'; $time = strtotime('now + 30 mins'); $hash = md5($time.$salt); // формируем ссылку для проверки if(isset($_POST['generate']) && $_POST['generate'] == 'link') { header('Location: ?hash='.md5($time.$salt).'&time='.$time); exit(); } ?> <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>sandbox php.ru</title> </head> <body> <form name="test" method="post" action="?"> <input type="hidden" name="generate" value="link"> <input type="submit" value="generate"> </form> <hr> <?php // если хаши совпадают, всё нормально if(isset($_GET['hash']) && isset($_GET['time']) && $_GET['hash'] == md5($_GET['time'].$salt)) { echo 'yes'; } if (isset($_GET['hash']) && isset($_GET['time'])) { echo '<hr>'.$_GET['hash'].'<br>'.md5($_GET['time'].$salt); } ?> </body> </html>