【问题标题】:Dropping cookies through Javascript or PHP通过 Javascript 或 PHP 删除 cookie
【发布时间】:2013-01-04 09:09:46
【问题描述】:

我想向我的客户提供一个 javascript sn-p 代码(有点像谷歌分析),该代码将在他们的网站上使用该代码并跟踪他们网站上的访问持续时间。我想为此使用 cookie。

我唯一的问题是最好的实施方式是什么?我想到的几个选项:

  1. 我是否应该从 PHP 设置 cookie(它将坐在我的 域),这是否会被视为第 3 方 cookie?
  2. 或者我必须从 Javascript 设置一个 cookie,因为它将是客户端 从我的网站加载?
  3. 或者是使用 javascript 和访问设置 cookie 的最佳方式 用 PHP 吗?

【问题讨论】:

标签: php javascript cookies


【解决方案1】:

如果您在 JavaScript 中设置 cookie,则 cookie 的域将是网站的域,而不是您的域。因此,在执行类似操作时,该信息不可用。

<script src="http://example.com/tracking-js.php"></script>

换句话说,这是行不通的。

相反,您需要使用 AJAX 或(谷歌如何做到这一点)通过加载空白图像将客户信息发送到您的网络服务。

有很多参数在 JavaScript 中可用,但不能发送到服务器(不在 $_SERVER 中)。 Google 将该信息添加为 GET 参数。

但是,如果您真的不需要这些数据,最简单的方法是将您的脚本作为图像包含在客户的网站上。

<img src="http://example.com/tracking.php" />

$_SERVER['HTTP_REFERRER'] 将是包含脚本的页面的 URL。 一定要把Content-Type设置成'image/gif',并输出一个空白的1px gif。

使用 AJAX 时,请注意您需要使用 CORS,这意味着设置 Access-Control-Allow-Origin 响应标头。

请注意,在没有 jQuery 的情况下使用 AJAX 可能会很痛苦。由于您不关心响应,因此创建跟踪图像(使用 javascript)可能是您的最佳选择。阅读 this article 了解如何实现它的基础知识。

【讨论】:

  • 我需要数据,所以看起来 AJAX 解决方案会更优化。你能详细说明一下吗?我可以通过客户端的 js 脚本加载 jquery 库吗,或者只是给他们一个 sn-p.然后我会设置一个具有唯一客户端 ID + 站点信息的 cookie 并通过 ajax 将该信息传递给我的 php 脚本吗?
  • 如果添加了关于 AJAX/CORS 的信息 + 一个关于跟踪图像的好文章的链接。请注意,我建议使用跟踪图像(而不是 AJAX),这是一种久经考验的方法。
  • 谢谢!但实际上我确实关心响应,因为我不仅想跟踪访问持续时间,而且还想根据 php 脚本的响应显示将指向另一个站点的图像或链接。 (php 脚本将根据数据库中的某些参数选择一个站点)。在这种情况下如何运作?
猜你喜欢
  • 2013-03-05
  • 2017-01-08
  • 1970-01-01
  • 2012-06-10
  • 1970-01-01
  • 2018-03-18
  • 2012-07-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多