Intereting Posts
Как использовать метод объекта как функцию обратного вызова В PHP, который быстрее: preg_split или взрывается? Защитите аудиофайл от загрузки, пока он воспроизводится через JQuery JPlayer ORA-24408: невозможно создать уникальное имя группы серверов Преждевременный конец заголовков скриптов: php-cgi – при запуске скрипта CURL PHP $ _SERVER Как проверить, является ли один символ нижним регистром в PHP? Как вызвать функцию php из ajax? Symfony2 + FOS с использованием аутентификатора simple_form Ошибка базы данных. Неизвестная ошибка базы данных на phpmyAdmin file_get_Contents не отправит строки запроса в url, поэтому ничего не получает с помощью $ _GET Как передать переменные в Zend? Mod Rewrite и использование PHP GET для URL-адресов, когда не соблюдают правила Как разделить сессию входа в Joomla с одного сайта Joomla на один веб-сайт ASP.Net MVC php для аутентификации пользователя в форме входа в систему

Как получить время истечения срока действия cookie

Когда я создаю файл cookie, как получить время expire time cookie?

Большое спасибо.

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

Вставка закодированного json внутри cookie – мой любимый метод, чтобы получить правильно сформированные данные из файла cookie. Попробуй это:

 $expiry = time() + 12345; $data = (object) array( "value1" => "just for fun", "value2" => "i'll save whatever I want here" ); $cookieData = (object) array( "data" => $data, "expiry" => $expiry ); setcookie( "cookiename", json_encode( $cookieData ), $expiry ); 

затем, когда вы получите свой файл cookie в следующий раз:

 $cookie = json_decode( $_COOKIE[ "cookiename" ] ); 

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

 $expiry = $cookie->expiry; 

и, кроме того, данные, которые выйдут в качестве полезного объекта 🙂

 $data = $cookie->data; $value1 = $cookie->data->value1; 

и т. д. Я нахожу, что это очень простой способ использовать файлы cookie, потому что вы можете вложить столько маленьких объектов в другие объекты, сколько хотите!

Вы можете установить значение cookie с истечением срока действия и получить срок действия от значения cookie.

 // set $expiry = time()+3600; setcookie("mycookie", "mycookievalue|$expiry", $expiry); // get if (isset($_COOKIE["mycookie"])) { list($value, $expiry) = explode("|", $_COOKIE["mycookie"]); } 

// Помните, что в этом случае было бы более безопасным использование двухстороннего шифрования. См. https://github.com/qeremy/Cryptee

Когда вы создаете файл cookie через PHP die Значение по умолчанию равно 0, из руководства:

Если установлено значение 0 или опущено, файл cookie истекает в конце сеанса (когда браузер закрывается)

В противном случае вы можете установить время использования файлов cookie в секундах в качестве третьего параметра:

http://www.php.net/manual/en/function.setcookie.php

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

Чтобы получить время истечения срока действия cookie, используйте этот простой метод.

 <?php //#############PART 1############# //expiration time (a*b*c*d) <- change D corresponding to number of days for cookie expiration $time = time()+(60*60*24*365); $timeMemo = (string)$time; //sets cookie with expiration time defined above setcookie("testCookie", "" . $timeMemo . "", $time); //#############PART 2############# //this function will convert seconds to days. function secToDays($sec){ return ($sec / 60 / 60 / 24); } //checks if cookie is set and prints out expiration time in days if(isset($_COOKIE['testCookie'])){ echo "Cookie is set<br />"; if(round(secToDays((intval($_COOKIE['testCookie']) - time())),1) < 1){ echo "Cookie will expire today."; }else{ echo "Cookie will expire in " . round(secToDays((intval($_COOKIE['testCookie']) - time())),1) . " day(s)"; } }else{ echo "not set..."; } 

?>

Вам нужно сохранить часть 1 и часть 2 в разных файлах , иначе вы получите одинаковые даты истечения срока действия каждый раз.