Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP会话变量在Firefox 63.0、MacOS Mojave上的Safari 12.0和iOS 12.0.1上丢失_Php_Firefox_Safari_Session Variables_Favicon - Fatal编程技术网

PHP会话变量在Firefox 63.0、MacOS Mojave上的Safari 12.0和iOS 12.0.1上丢失

PHP会话变量在Firefox 63.0、MacOS Mojave上的Safari 12.0和iOS 12.0.1上丢失,php,firefox,safari,session-variables,favicon,Php,Firefox,Safari,Session Variables,Favicon,Mac和Windows上的最新Firefox版本63.0,不知何故打破了我为电子商务网站的管理后台构建的登录。这以前运作良好。我使用PHP 使用有效凭据成功登录后,$\u会话['admin\u logged\u in']变量设置为TRUE,我已正确登录并重定向到起始页。然而,当我尝试导航到管理站点中的任何其他页面时,我会立即注销,就像会话变量突然丢失一样 在最开始的每个页面上,包括起始页面,我都有一个包含短登录检查脚本的include,如下所示: <?php //start session

Mac和Windows上的最新Firefox版本63.0,不知何故打破了我为电子商务网站的管理后台构建的登录。这以前运作良好。我使用PHP

使用有效凭据成功登录后,
$\u会话['admin\u logged\u in']
变量设置为
TRUE
,我已正确登录并重定向到起始页。然而,当我尝试导航到管理站点中的任何其他页面时,我会立即注销,就像会话变量突然丢失一样

在最开始的每个页面上,包括起始页面,我都有一个包含短登录检查脚本的include,如下所示:

<?php
//start session
session_start() ;
//check user is logged in
if (($_SESSION['admin_logged_in'] !== TRUE) || (!isset($_SESSION['admin_logged_in']))) {
    header("location: /index.php") ;
    $_SESSION['admin_reason'] = "illegal" ;
    exit;
    }
?>

我可能认为这是Firefox的一个bug,但最近我也被iOS 12和MacOS Mojave上最新版本的Safari注销了,通常是在浏览了几页之后

目前正在工作,在Opera或Chrome上没有问题(在Mac上测试)

我尝试过清除Firefox中的缓存并调整隐私设置,但没有成功。我与我的web主机进行了交谈,他们没有意识到任何服务器端问题或更改

但若PHP代码和会话变量有问题,因为这是在服务器端处理的,那个么它可能不会在任何浏览器上工作,以前也不会工作

谢谢你的建议



我设法解决了这个问题,请看下面我的答案。

它可能与阻止登录系统中使用的某些JavaScript或其他资源的新安全策略有关

检查Firefox web控制台

您可能会收到如下消息:

Content Security Policy: Ignoring “'unsafe-inline'” within script-src: ‘strict-dynamic’ specified
Content Security Policy: Ignoring “https:” within script-src: ‘strict-dynamic’ specified
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://XXX. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing).

请参阅

它可能与阻止登录系统中使用的某些JavaScript或其他资源的新安全策略相关联

检查Firefox web控制台

您可能会收到如下消息:

Content Security Policy: Ignoring “'unsafe-inline'” within script-src: ‘strict-dynamic’ specified
Content Security Policy: Ignoring “https:” within script-src: ‘strict-dynamic’ specified
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://XXX. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing).

我自己设法解决了这个问题

为了澄清这一问题,Mac和Windows上的Firefox版本63.0、MacOS Mojave上的Safari版本12.0和iOS 12.0.1上的Safari都出现了问题。其他被测试的浏览器,Chrome和Opera,都很好

我对一组基本页面进行了一些测试,发现在Firefox中,在设置任何PHP会话变量之后的所有页面上,它都不可用/不存在。Safari通常在浏览了几页之后就会丢失它

然后,我在Mozilla论坛参考favicons上发现了一篇旧帖子的下一页:

我检查了开发人员工具,发现这些浏览器,每次在Firefox中,每几页在Safari中,都在请求favicon.ico并得到404响应,因为我在那里没有响应。出于某种原因,这会破坏PHP会话变量。我不清楚为什么

因此,修复方法只是在网站的根目录中放置一个favicon.ico


谢谢你的评论。

我自己设法解决了这个问题

为了澄清这一问题,Mac和Windows上的Firefox版本63.0、MacOS Mojave上的Safari版本12.0和iOS 12.0.1上的Safari都出现了问题。其他被测试的浏览器,Chrome和Opera,都很好

我对一组基本页面进行了一些测试,发现在Firefox中,在设置任何PHP会话变量之后的所有页面上,它都不可用/不存在。Safari通常在浏览了几页之后就会丢失它

然后,我在Mozilla论坛参考favicons上发现了一篇旧帖子的下一页:

我检查了开发人员工具,发现这些浏览器,每次在Firefox中,每几页在Safari中,都在请求favicon.ico并得到404响应,因为我在那里没有响应。出于某种原因,这会破坏PHP会话变量。我不清楚为什么

因此,修复方法只是在网站的根目录中放置一个favicon.ico


感谢您的评论。

您是否在另一台独立安装Firefox的计算机上尝试过此功能?您是否尝试过一组非常简单的测试页面,而没有其他代码?如前所述,这似乎不太可能。您的浏览器不关心PHP会话;除非您将会话数据存储在cookie中,并且已锁定浏览器上的cookie行为,否则它完全不知道这些行为。您是否在另一台独立安装了Firefox的计算机上尝试过此操作?您是否尝试过一组非常简单的测试页面,而没有其他代码?如前所述,这似乎不太可能。您的浏览器不关心PHP会话;除非您将会话数据存储在cookie中,并且您已经锁定了浏览器上的cookie行为,否则它完全不知道这些问题。我也在努力解决同样的问题。我收到了一个CSP错误,阻止了favicon的下载,但它都在同一个域上,并且都是https,所以我不知道为什么会发生这种情况。我正在为同样的问题而挣扎。我收到一个CSP错误,阻止了favicon的下载,但它都在同一个域上,并且都是https,所以我不知道为什么会发生这种情况。