Php 依赖会话var not existing查看Cookie是否已禁用
逻辑、手册和谷歌都说我是对的,但我不是专业人士,我想100%肯定它在任何情况下都适用于所有浏览器 我想检查用户的浏览器中是否禁用了cookies。我不能依赖isset$_COOKIE['test'],因为当它是一个新用户或用户删除了所有COOKIE时,将不会有COOKIE,COOKIE仍然可以启用。 我提出了一个非常简单的解决方案,但我的问题是:我能确保这个方法有效吗 如果第1页是:domain/index.php 第2页是:domain/login/index.php 这会一直有效吗? [编辑] 回答我自己的问题:不,这行不通 我在下面发布了一个有效的解决方案。Php 依赖会话var not existing查看Cookie是否已禁用,php,cookies,Php,Cookies,逻辑、手册和谷歌都说我是对的,但我不是专业人士,我想100%肯定它在任何情况下都适用于所有浏览器 我想检查用户的浏览器中是否禁用了cookies。我不能依赖isset$_COOKIE['test'],因为当它是一个新用户或用户删除了所有COOKIE时,将不会有COOKIE,COOKIE仍然可以启用。 我提出了一个非常简单的解决方案,但我的问题是:我能确保这个方法有效吗 如果第1页是:domain/index.php 第2页是:domain/login/index.php 这会一直有效吗? [编辑
谢谢大家为我指明了正确的方向。谢谢大家为我指明了正确的方向 我的解决方案有效,因此我将与您分享: index.php 和login/index.php
请参见您似乎对会话和cookies感到困惑-可能不是-A“请打开您的cookies”。会话id是否更有效也可以存储在服务器中…设置会话。使用\u cookies=on和会话。仅使用\u cookies=onAm I right会话id存储在cookie中?但是重定向会生成新的会话id还是使用相同的id?
<?php
session_start();
$_SESSION['id']='Hello';
session_write_close();
header('Location: login');
?>
<?php
session_start();
if(empty($_SESSION['id'])){
echo 'Turn on your cookies!';
}
?>
<?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/');
}
?>
<?php
$name='test';
if(empty($_COOKIE[$name])){
echo 'Turn on your cookies';
die;
}
?>