如何在 PHP/Javascript 中的 cookie 过期前一分钟提醒用户?

我正在寻找可以在 cookie 过期前一分钟提醒登录用户的东西,以便他们在 cookie 过期前将内容保存在 CMS 中。关于如何实现相同目标的任何建议?


我在我的授权文件中设置了以下内容


setcookie("USERNAME", $user,time()+9000);

setcookie("AUTHORID", $rec["id"],time()+9000);

setcookie("AUTH", "1",time()+9000);

setcookie("RIGHTS", $rec["rights"],time()+9000);


慕哥6287543
浏览 226回答 3
3回答

慕标5832272

你需要在 javascript 中做到这一点。服务器为 cookie 设置新的过期时间执行超时的javascript在页面上再次重新加载 1,2// save minute before expirationsetTimeout(saveWork, (9000-60)*1000);function saveWork(){    // do your stuff}

慕雪6442864

不可能。document.cookie 包含这样的字符串信息:key1=value1;key2=value2;...所以没有关于日期的任何信息。您可以将时间过期时间传递给 javascript。一种方法是存储另一个 cookie,所以你有这个:$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);然后,这个获取 cookie 的函数:(来源)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);}请记住,用户可以更改 cookie 的值。

繁星coding

使用过期时间制作额外的cookiesetcookie("expiration_time", time,time()+9000);经过测试,这个cookie的时间if( $_COOKIES['expiration_time'] + 60 < time() ){&nbsp; &nbsp;//... you alert code&nbsp;}
打开App,查看更多内容
随时随地看视频慕课网APP