在我们的Intranet中,每个用户都可以登录,并在用户成功连接时创建cookie
setcookie('id_user', $res['id_user'], time()+600, '/');
setcookie('email', $res['mail'], time()+600, '/');
setcookie('firstname', $res['firstname'], time()+600, '/');
setcookie('lastname', $res['name'], time()+600, '/');
他们将在10分钟后过期。
我有很多页面,其中js函数正在使用$_COOKIE
变量。
我不想检查$_COOKIE
是否为每个函数都为空。
有没有办法触发js函数检查cookie是否仍然可用?
我试过这个
var user = '<?php echo $_COOKIE['id_user']; ?>';
function check()
{
if(user === null)
{
console.log('logged');
}
else
{
console.log('disconnected');
}
}
check();
setInterval(check, 1000);
但它没有奏效。我在访问此页面之前已连接。控制台始终显示已连接的&#39;即使我从另一页断开连接。我认为cookie仍然存在于页面中并且没有过期。
如果在访问页面之前我没有连接,则js错误告诉我
SyntaxError: unterminated string literal
var user = '<br />
答案 0 :(得分:1)
我使用以下js管理了这个。如果cookie仍然可用,此代码将每秒检查一次。
function check()
{
var user = getCookie('firstname');
if(user == '')
{
console.log('disconnected');
}
else
{
console.log('connected');
}
}
function getCookie(cname) {
var name = cname + "=";
var ca = document.cookie.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 "";
}
check();
setInterval(check, 1000);