Подтвердить что ты не робот

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

Возможно ли получить дату создания или срока действия существующего файла cookie из javascript? Если да, то как?

4b9b3361

Ответ 1

Информация не доступна через document.cookie, но если вы действительно отчаянно нуждаетесь в ней, вы можете попробовать выполнить запрос через объект XmlHttpRequest на текущую страницу и получить доступ к заголовку файла cookie с помощью getResponseHeader().

Ответ 2

Это невозможно. document.cookie содержит информацию в строке:

key1=value1;key2=value2;...

Таким образом, информация о датах отсутствует.

Вы можете сохранить эти даты в отдельной переменной cookie:

auth_user=Riateche;auth_expire=01/01/2012

Но пользователь может изменить эту переменную.

Ответ 3

Теперь возможно с новым обновлением chrome для версии 47 для 2016, вы можете увидеть его через инструменты разработчика на вкладке ресурсов введите описание изображения здесь, выберите файлы cookie и найдите дату истечения срока действия вашего файла cookie в разделе "Срок действия/Макс. возраст"

Ответ 4

Если вы используете Chrome, вы можете перейти на вкладку "Ресурсы" и найти элемент "Cookies" на левой боковой панели. Оттуда выберите домен, на который вы проверяете установленный файл cookie, и он предоставит вам список файлов cookie, связанных с этим доменом, и дату их истечения.

Ответ 5

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

Ответ 6

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

Ответ 7

Да, возможно. Я разделил код в двух файлах:

index.php

<?php

    $time = time()+(60*60*24*10);
    $timeMemo = (string)$time;
    setcookie("cookie", "" . $timeMemo . "", $time);

?>
<html>
    <head>
        <title>
            Get cookie expiration date from JS
        </title>
        <script type="text/javascript">

            function cookieExpirationDate(){

                var infodiv = document.getElementById("info");

                var xmlhttp;
                if (window.XMLHttpRequest){ 
                    xmlhttp = new XMLHttpRequest;
                }else{
                    xmlhttp = new ActiveXObject(Microsoft.XMLHTTP);
                }

                xmlhttp.onreadystatechange = function (){
                    if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
                        infodiv.innerHTML = xmlhttp.responseText;
                    }
                }

                xmlhttp.open("GET", "cookie.php", true);
                xmlhttp.send();

            }

        </script>
    </head>
    <body>
        <input type="button" onclick="javascript:cookieExpirationDate();" value="Get Cookie expire date" />
        <hr />
        <div id="info">
        </div>
    </body>
</html>

cookie.php

<?php

    function secToDays($sec){
        return ($sec / 60 / 60 / 24);
    }

    if(isset($_COOKIE['cookie'])){

        if(round(secToDays((intval($_COOKIE['cookie']) - time())),1) < 1){
            echo "Cookie will expire today";
        }else{
            echo "Cookie will expire in " . round(secToDays((intval($_COOKIE['cookie']) - time())),1) . " day(s)";
        }
    }else{
        echo "Cookie not set...";
    }

?>

Теперь index.php должен быть загружен один раз. Кнопка "Get Cookie expire date", через запрос AJAX, всегда будет получать обновленное "время влево" для истечения срока действия cookie, в этом случае через несколько дней.