【发布时间】:2016-04-18 11:59:50
【问题描述】:
在我们的内网中,每个用户都可以登录,并在用户成功连接时创建 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);
但它没有奏效。当我在访问此页面之前连接时。即使我从另一个页面断开连接,控制台也始终显示“已连接”。我认为 cookie 仍然存在于页面中并且没有过期。
如果我在访问页面之前没有连接,一个js错误告诉我
SyntaxError: unterminated string literal
var user = '<br />
【问题讨论】:
-
“未终止的字符串文字”是 PHP 首先吐出错误消息的结果 - 检查页面源代码。除此之外,不清楚你在问什么。
-
Javascript 可以直接访问浏览器中的 cookie,无需使用 php(它只在页面加载前运行一次,因此会出现问题)。此外,您在过去 24 小时内还有 2 个其他 SO 问题,您没有回复任何 cmets 或答案。这不是 SO 的工作原理,如果您想要体面的答案,您需要与人们互动
-
@CBroe 是因为PHP变量不存在
-
@Raccoon:我知道——你的工作是在尝试输出之前检查。
-
@Steve: “Javascript 可以直接访问浏览器中的 cookie” – 除非它们是由服务器使用
httpOnly设置的。
标签: javascript php jquery cookies