逻辑,手册和谷歌说我是对的,但我不是专业人士,我喜欢100%确定它适用于所有浏览器,无论在任何情况下。
我想检查用户是否在浏览器中禁用了Cookie。我不能依赖isset($_COOKIE['test']
,因为当它是新用户或用户删除了所有cookie时,将无法启用cookie和cookie。
我提出了一个非常简单的解决方案,但我的问题是:我能确定这个有效吗?
如果第1页是: domain / index.php
<?php
session_start();
$_SESSION['id']='Hello';
session_write_close();
header('Location: login');
?>
第2页是: domain / login / index.php
<?php
session_start();
if(empty($_SESSION['id'])){
echo 'Turn on your cookies!';
}
?>
这总是有效吗? 的 [编辑] 回答我自己的问题:不,这不起作用。
我在下面发布了一个有效的解决方案。 感谢大家指点我正确的方向。
答案 0 :(得分:0)
感谢大家指点我正确的方向。
我的解决方案有效,所以我会与您分享:
index.php
<?php
ini_set('session.use_cookies',1);
ini_set('session.use_only_cookies',1);
ini_set('session.cookie_httponly',1);
$name='test';
if(empty($_COOKIE[$name]){
session_start();
//it seems nessecary to write something in the session
$_SESSION['test']=test;
session_write_close();
}
//redirect to a login page
header('Location: http://example.com/login/');
}
?>
login / index.php
<?php
$name='test';
if(empty($_COOKIE[$name])){
echo 'Turn on your cookies';
die;
}
?>