我对启用 JS 的检测有一个小问题。不太大,因为我知道我在正确的轨道上。但这是我的交易:
当我尝试使用此代码在 JS (jQuery) 中设置 cookie 时
$(window).load(function(){
$.cookies.set('c_jsEnabled', 'true');
});
或者只是在普通的 JS 中使用这个代码
function setCookie()
{
document.cookie='c_jsEnabled=true';
}
<body onload="setCookie();">
然后尝试使用此代码在 PHP 中检测它
if($_COOKIE['c_jsEnabled'] == 'true')
{
if(file_exists('./main.php'))
{
require_once ('./main.php');
}
echo getIndex();
}
else
{
if(file_exists('./noJS.php'))
{
require_once ('./noJS.php');
}
echo getIndex();
}
setcookie('c_jsEnabled', '');
需要 2 次页面刷新才能真正将正确的值放入 PHP。我的猜测是,这基本上意味着 PHP 脚本是在 JS 函数被触发之前执行的。这可能是因为上面显示的所有代码都在同一个脚本(index.php)中吗?
这对我来说是个问题,因为我想阻止人们在禁用 JS 时使用我的网站。
有没有办法在 php 尝试获取 cookie 变量之前设置 cookie?