Как предупредить пользователя за минуту до того, как его Cook ie истечет в PHP / Javascript? - PullRequest
0 голосов
/ 18 июня 2020

Я ищу что-то, где я мог бы предупредить моих вошедших в систему пользователей за минуту до истечения срока действия ie, чтобы они сохранили контент в CMS до ie истечения срока действия .. любые предложения о том, как я могу достичь то же самое?

Я установил следующее в моем файле аутентификации

setcookie("USERNAME", $user,time()+9000);
setcookie("AUTHORID", $rec["id"],time()+9000);
setcookie("AUTH", "1",time()+9000);
setcookie("RIGHTS", $rec["rights"],time()+9000);

Ответы [ 3 ]

0 голосов
/ 18 июня 2020

Как приготовить ie срок годности / дата создания от javascript?

Невозможно. document.cook ie содержит информацию в виде такой строки:

key1=value1;key2=value2;...

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

Вы можете передать истечение времени в javascript. Один из способов - сохранить другого повара ie, так что у вас будет это:

$expireAt = time() + 9000;    
setcookie("USERNAME", $user,$expireAt);
setcookie("AUTHORID", $rec["id"],$expireAt);
setcookie("AUTH", "1",$expireAt);
setcookie("RIGHTS", $rec["rights"],$expireAt);
setcookie("EXPIREAT", $expireAt, $expireAt);

Затем эта функция получит повар ie: ( источник )

function getCookie(cname) {
  var name = cname + "=";
  var decodedCookie = decodeURIComponent(document.cookie);
  var ca = decodedCookie.split(';');
  for(var i = 0; i <ca.length; i++) {
    var c = ca[i];
    while (c.charAt(0) == ' ') {
      c = c.substring(1);
    }
    if (c.indexOf(name) == 0) {
      return c.substring(name.length, c.length);
    }
  }
  return "";
}

И установите таймер:

let expireat = getCookie("EXPIREAT");
if (expireat) {
  let timeAlert = Number(expireat) - 60;
  setTimeout(function() {
    // Do something
  }, timeAlert);
}

Имейте в виду, что пользователь может изменить значения cook ie.

0 голосов
/ 18 июня 2020

Это необходимо в javascript.

  1. сервер устанавливает fre sh время истечения срока действия повара ie
  2. javascript с выполненным таймаутом
  3. на странице перезагрузить 1,2 снова
// save minute before expiration
setTimeout(saveWork, (9000-60)*1000);

function saveWork(){
    // do your stuff
}
0 голосов
/ 18 июня 2020

приготовить дополнительное приготовление ie со сроком годности

setcookie("expiration_time", time,time()+9000);

и после теста время этого приготовления ie

if( $_COOKIES['expiration_time'] + 60 < time() ){
   //... you alert code 
}
...