【问题标题】:What's the easiest way to keep tracking a visitor through multiple pages?通过多个页面持续跟踪访问者的最简单方法是什么?
【发布时间】:2014-03-03 13:49:09
【问题描述】:

我的用户来自自然搜索和付费搜索。

自然用户登陆page.php,付费用户登陆page.php?source=paid

page.php 上的 PHP 变量将根据 source 字符串更改,以帮助我确定用户最初来自哪里,例如,如果他在我的网站上直接从同一页面购买东西,我会有一个指示。

问题:

我的网站中有多个页面。一旦付费用户决定导航到另一个页面,例如page2.php,指示变量将不起作用,因为他导航到page2.php,而不是page2.php?source=paid

因此,一种可能的混乱解决方案是将字符串拖到整个网站上,方法是在每个链接上放置一个IF/ELSE,该IF/ELSE 将插入页面中所有href 的末尾,?source=paid字符串,在任何情况下,用户最初使用?source=paid 字符串登陆。

但是,还有其他选择吗?我想有办法用cookies做到这一点吗?但我从来没有处理过 cookie,除非很容易,否则我不会这样做。

谢谢

【问题讨论】:

  • 使用$_SESSION的力量
  • 您要根据用户是否付费来更改内容吗?还是您只想跟踪付费用户完成交易后的去向?前者需要一个会话,后者只需要 cookie。
  • 是的,前者 - 我想根据是否为付费用户更改内容。不确定我是否理解会话和 cookie 之间的区别。为什么饼干是“公正的”?它们不是更复杂吗?
  • @rockyraw:1 个中的 6 个,另外 6 个。会话是服务器端管理的,但它们需要 cookie 或 PHPSESSID 参数,以便服务器可以“调用”数据。 Cookie 是客户端的,每次访问都会传递,但很多时候访问者会禁用它们。因此,无论如何,您最终都可能通过查询参数“传递接力棒”(尽管是 SESSID 或 source)。
  • @BradChristie 这些实例中的哪一个发生在例如 Ronny Grønsdal 的回答中建议的代码中?

标签: php html cookies


【解决方案1】:

这正是sessions 的用途:

会话是一种根据唯一会话 ID 为单个用户存储数据的简单方法。这可用于在页面请求之间保持状态信息。会话 ID 通常通过会话 cookie 发送到浏览器,并且 ID 用于检索现有的会话数据。

【讨论】:

  • 所以一定要涉及cookies?有没有一个很好的、非常基础的教程来做我所追求的?
  • 这个basic example 向您展示了如何使用它们。它们就像 cookie 和任何其他数组一样。有几件事需要了解(比如将session_start() 放在每一页的顶部)。
【解决方案2】:

要解决这个问题,我建议您使用 Sessions。

在第一页上,您需要使用以下内容设置会话变量:

<?php>
session_start();
if isset($_GET['source']) {$_SESSION['source'] = $_GET['source'];}

and the rest of your first page goes here..

?>

在其他页面上,您可以像这样调用 session 变量:

<?php>
session_start();
if ($_SESSION['source'] == 'paid')
{ paid version}
else 
{unpaid version}

?>

【讨论】:

  • 谢谢,我可以在同一页面上使用这两个部分的代码吗? (由于用户可以登陆page2.php?source=paid然后继续page.php,所以我需要在所有页面上进行相同的“处理”,以涵盖所有情况)
  • 是的,这是可能的,但你应该稍微改变一下,在设置之前检查是否设置了源。
猜你喜欢
  • 2013-06-03
  • 2020-05-01
  • 1970-01-01
  • 2010-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多