【问题标题】:analytics tracking with php website使用 php 网站进行分析跟踪
【发布时间】:2012-07-09 19:13:21
【问题描述】:

我最近将我的网站格式更改为 php(而不是 html),即我已使用 .php 扩展名重命名了所有 HTML 页面,并使用我的 .htaccess 文件修复了链接。

我需要使用 Google 分析跟踪我的新 php 页面,因此我创建了一个单独的 php 文件,其中包含 Google 的 javascript sn-p。我把它放在我网站的根目录,并在<body>标签之后用这段代码将我的每个php标签链接到它:

<?php include_once("analyticstracking.php") ?>

我的问题是这似乎只适用于我的 index.php 页面。我所有其他页面都找不到analyticstracking.php(在 Dreamweaver 中它说“'analyticstracking.php'不在本地磁盘上。获取”)

如果我将链接(通过添加“/”)更改为:

<?php include_once("/analyticstracking.php") ?>

然后我的所有页面都可以找到该文件,但谷歌分析似乎没有跟踪我的活动。

我正在使用“分析 - 实时”对此进行测试。

这是我的网址 www.brp-architects.com。 (目前正在使用

<?php include_once("/analyticstracking.php") ?>

因为此代码带有“/”,允许我的所有页面找到我的跟踪代码 php 文件)。

我这样做的全部原因是我可以使用 PHP 代码的 sn-p 通过获取代理服务器 ip 来检索我的网站访问者的 IP 地址:

<?
if (getenv(HTTP_X_FORWARDED_FOR)) {
    $ip_address = getenv(HTTP_X_FORWARDED_FOR);
} else {
    $ip_address = getenv(REMOTE_ADDR);
}

?>

感谢您的回复!

这是我在 analyticstracking.php 文件中的跟踪 sn-p:

<script type="text/javascript">

var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-5434990-2']);
  _gaq.push(['_trackPageview']);
  setTimeout('_gaq.push([\'_trackEvent\', \'NoBounce\', \'Over 30 seconds\'])',30000);

(function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();

</script>

我的跟踪代码的链接直接位于开始的正文标记下方:

<?php include_once("/analyticstracking.php") ?>

【问题讨论】:

  • 很高兴看到第一个问题措辞优美,好极了!
  • this html rendered page 中似乎没有任何分析脚本的踪迹。

标签: php google-analytics


【解决方案1】:

如果它适用于 index.php,那么 analyticstracking.php 脚本就可以了。

导致这种情况的原因是您将其包含在其他脚本中的方式。

只需确保该脚本的路径在其他脚本上正确即可。
确保包含这样的内容:

include($_SERVER['DOCUMENT_ROOT'].'PATH-TO-SCRIPT/analyticstracking.php');

【讨论】:

  • 谢谢!谷歌分析是否有任何理由建议使用:“include_once”而不是“include”?
  • include_once 更好,因为可能有常量,并且 include_once 不会重新定义它们给你警告。
  • 是是是!!!太感谢了!我不完全理解为什么,但由于某种原因,比根文件夹更深的 PHP 页面找不到跟踪代码。这是修复它的最终代码: 非常感谢你们(松了一口气!)
  • 原因是include 作用于文件系统而不是 URI - 文件系统上的相对路径与相对 URI 并不完全相同;相对 URI 可能是“/analyticstracking.php”,但 include 的路径可能更像是“/servers/www/yoursite.com/htdocs/analyticstracking.php” - 它是包含Apache 配置中定义的根文件夹的路径。
【解决方案2】:

您可以通过多种方式解决此问题。 首先,您可以更改 include_path 变量 http://il.php.net/manual/en/ini.core.php#ini.include-path

其次,您可以在 index.php 中使用getcwd() 初始化您自己的全局变量

【讨论】:

  • 感谢您的回答。我很感激你的时间!最诚挚的问候。
猜你喜欢
  • 1970-01-01
  • 2012-11-08
  • 1970-01-01
  • 1970-01-01
  • 2012-01-29
  • 2016-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多