为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
慕哥6287543 2023-06-18 17:46:16
我正在寻找可以在 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);
查看完整描述

3 回答

?
慕标5832272

TA贡献1966条经验 获得超4个赞

你需要在 javascript 中做到这一点。

  1. 服务器为 cookie 设置新的过期时间

  2. 执行超时的javascript

  3. 在页面上再次重新加载 1,2

// save minute before expiration

setTimeout(saveWork, (9000-60)*1000);


function saveWork(){

    // do your stuff

}


查看完整回答
反对 回复 2023-06-18
?
慕雪6442864

TA贡献1812条经验 获得超5个赞

不可能。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 的值。


查看完整回答
反对 回复 2023-06-18
?
繁星coding

TA贡献1797条经验 获得超4个赞

使用过期时间制作额外的cookie


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

经过测试,这个cookie的时间


if( $_COOKIES['expiration_time'] + 60 < time() ){

   //... you alert code 

}


查看完整回答
反对 回复 2023-06-18
  • 3 回答
  • 0 关注
  • 168 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号