记住 PHP 会话隐私浏览
我正在开发一个分析脚本,人们将能够将其添加到他们的页面中,以便跟踪访问者数据。我遇到的一个问题是设计一种方法来跟踪个人从私人浏览器(即隐身)查看某人页面时的会话。
这是我使用的脚本,用于查看是否有人观察某人是否处于活动状态超过30分钟,如果他们有,将创建一个新会话,如果没有,那么他们将恢复上一个会话。
session_start();
$max_time = 1800;
$current = time();
if (!isset ($_SESSION['Stationary'])){
$_SESSION['Stationary'] = time();
$session = $_SESSION['Stationary'];
}
if (!isset ($_SESSION['Inactive'])) {
$_SESSION['Inactive'] = time();
} else {
$session_life = $current - $_SESSION['Inactive'] ;
if ($session_life > $max_time ) {
session_destroy();
session_start();
$_SESSION['Inactive'] = time();
$_SESSION['Stationary'] = time();
$session = $_SESSION['Stationary'];
} else {
$_SESSION['Inactive'] = time();
$session = $_SESSION['Stationary'];
}
}
当用户从常规浏览器(IE.Chrome Incognito),但是,当他们在iPhone之类的东西上查看它时,在私人浏览中,每次他们访问新页面时,都会呈现一个新会话 - 否则我不会遇到这个问题。
所以我的问题是,我知道在私人浏览器中查看页面是通过临时缓存实现的,一旦浏览器关闭,就会清除该缓存,但是为什么即使浏览器没有关闭,打开链接也会破坏他们以前的会话,即使链接指向另一个页面,页面上的脚本相同?
有没有解决方法?
编辑:我应该注意,这个脚本被放置在一个php文件中,其头文件也要用作JavaScript文件。application/json