Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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会话退出页面_Php_Arrays_Session_Session Variables - Fatal编程技术网

轨道入口和入口;使用PHP会话退出页面

轨道入口和入口;使用PHP会话退出页面,php,arrays,session,session-variables,Php,Arrays,Session,Session Variables,我目前有以下代码(从目前为止我能说的情况来看是有效的) 这是用PHP实现进入和退出页面跟踪的最佳方法吗 编辑: 这(来自@T0xicCode)似乎是一个更好的选择: session_start(); if(!is_array($_SESSION['page'])) { $_SESSION['page'] = array('entry' => $_SERVER['REQUEST_URI']); } $_SESSION['page']['exit'] = $_SERVER['REQUE

我目前有以下代码(从目前为止我能说的情况来看是有效的)

这是用PHP实现进入和退出页面跟踪的最佳方法吗

编辑:

这(来自@T0xicCode)似乎是一个更好的选择:

session_start();

if(!is_array($_SESSION['page'])) {
  $_SESSION['page'] = array('entry' => $_SERVER['REQUEST_URI']);
}

$_SESSION['page']['exit'] = $_SERVER['REQUEST_URI'];

$entry = $_SESSION['page']['entry'];

$exit = $_SESSION['page']['exit'];

我建议使用google analytics之类的工具,但是如果你想要一个DIY的纯php解决方案,下面的工具应该可以。它不跟踪中间的页面,这是你原来的解决方案。

session_start();

if(!in_array('page', $_SESSION) || !is_array($_SESSION['page'])) {
  $_SESSION['page'] = array('entry' => $_SERVER['REQUEST_URI']);
}

$_SESSION['page']['exit'] = $_SERVER['REQUEST_URI'];

$entry = $_SESSION['page']['entry'];

$exit = $_SESSION['page']['exit'];

您还必须确定清除旧会话的频率。如果我在两周后回来,是新的浏览会话,还是旧会话的继续?

什么是退出页面?如果我打开几页,然后把它们合在一起呢?如果我打开1毫米的页面怎么办?您有足够的内存来存储它吗?出于我的目的,退出页面是用户单击出站链接的最后一个页面,该链接触发存储入口/出口变量的脚本。因此,打开几个页面/选项卡应该可以,因为这些数据将被适当地存储在触发脚本的每次传出单击中。然后进入页面不应该改变,但是退出页面会为每一次(如果有的话)额外的点击而改变。啊…没有考虑内存问题。这是一个合理的担忧吗?默认情况下,内存限制为128mb,标准url大约为100字节,因此当用户/google机器人在一个会话期间访问大约1M个页面时,您会遇到问题,对于小型站点来说,这不是问题,但是对于大型论坛/商店……假设我的默认会话生存期为24分钟——这难道不能解决内存问题吗?会话是否自动存储在cookie中?我对它的工作原理感到困惑…只需注意:这不会跟踪实际的退出页面,但最后打开的页面,这通常没有太大的区别,要跟踪真正的最后一页,您应该使用基于javascript的解决方案,它会让您更好地了解最后关闭的页面退出页面不是最后访问的页面吗?不,我可以打开:“page1”,“page2”,然后关闭“page2”,然后关闭“page1”,使用php解决方案退出页面将是page2,使用js-page1I,在这种情况下,我同意您的javascript跟踪。我应该提到,它只需要内部和服务器端。所以JS和GA不是我的选择。
session_start();

if(!in_array('page', $_SESSION) || !is_array($_SESSION['page'])) {
  $_SESSION['page'] = array('entry' => $_SERVER['REQUEST_URI']);
}

$_SESSION['page']['exit'] = $_SERVER['REQUEST_URI'];

$entry = $_SESSION['page']['entry'];

$exit = $_SESSION['page']['exit'];