我需要一个问题的帮助,我不知道如何解决。我遇到的问题是,当我在iframe中嵌套另一个分页,并且iframe在其自身内重定向时,它会丢失会话数据。
所以情况是这样的:
-
index.php with嵌套iframe =>
<iframe src="http://somedomain/global.php?user=someuser&site=1234567" style="width:100%;height:100%;border:0px;"></iframe>
-
global.php文件在另一个域中创建会话和会话存在=>
$sess_path = '/somepath/'; session_save_path($sess_path); ini_set('session.cookie_samesite', 'None'); session_start(); $_SESSION['user'] = $_GET['user']; $_SESSION['site'] = $_GET['site']; header('location: ../home.php');
-
iframe global.php文件重定向到home.php,会话信息丢失
$sess_path = '/somepath/'; $sess_timeout = 30; ini_set('session.gc_maxlifetime', $sess_timeout); ini_set('session.cookie_lifetime', $sess_timeout); ini_set('session.cache_expire', $sess_timeout); ini_set('session.gc_probability', 100); ini_set('session.gc_divisor', 100); session_save_path($sess_path); ini_set('session.cookie_samesite', 'None'); session_start();
-
如果我print_r $_SESSION它是空的
我已经搜索了周围,发现了一些答案,但无法使其工作(我很确定我不理解的东西)。首先,我的应用程序仅基于Chrome浏览器,我发现Chrome现在在处理第三部分重定向方面改变了一些东西。我在global.php和home.php中都添加了ini_set('session.cookie_samesite', 'None');
,但这没有什么区别。
如果我在Firefox上尝试我的测试设置,它会按预期工作,所以这只会让我得出结论,这与Chrome有关
我能要求一些白痴证明说明如何解决这个问题吗?
谢谢
通过使我的网站和目标网站https来解决我的问题,现在在global.php中添加两个ini设置后一切正常:
ini_set('session.cookie_samesite', 'None');
ini_set('session.cookie_secure', 1);
KIKO软件感谢您的建议。