【问题标题】:Really Simple Affiliate Program真正简单的会员计划
【发布时间】:2011-08-18 20:43:30
【问题描述】:

我对 PHP 和 MySQL 还是很陌生。我有兴趣建立一个非常简单的会员计划。它基本上需要进行设置,以便当有人点击会员链接时,它会一直留在用户那里,直到他/她注册我的网站。

例如,我想创建一些漂亮的网页,我的附属公司可以使用这些网页来宣传我的网站。 URL 看起来像这样(理想情况下)。 www.mysite.com/splash1.php?userid=Joe

所以在这种情况下,我的附属公司 Joe 可以使用 www.mysite.com/splash1.php 并附加 ?userid=Joe,这样他就会有一个附属链接。

从这里,人们可以单击此启动页面中的链接,这会将他们带到我网站的主页并保留该会员 ID。此外,如果用户决定在注册之前浏览我的网站,我想确保会员 ID 始终与用户保持一致,直到他/她决定注册。

我熟悉从 URL 中读取用户 ID,但不熟悉如何,最好在页面之间传递该用户 ID 变量。

此时我并不关心与联属网络营销计划相关的所有功能,例如佣金、显示联属网络营销统计数据以及所有其他花哨的东西。我只是想确保用户的会员 ID 在他/她单击“提交”以注册我的网站之前一直与用户保持一致。

我知道我可能不得不使用 cookie 和/或会话。只是不知道该走哪条路。

【问题讨论】:

  • 那么开始写吧,真正的问题是什么?
  • session 比 cookie 更可取,因为 cookie 可以修改,这会打开可能的漏洞,如 sql 注入等,具体取决于该值的使用方式。
  • @Dragon 我一直在写,相信我,我一直在写。很多代码。我的问题是关于我的方法……给猫剥皮的方法不止一种:-)

标签: php


【解决方案1】:

构建附属软件并非易事,尤其是对于 PHP 和 MySQL 的新手而言。你可以整天争论这些实现,但基本上程序如何工作的步骤是这样的:

  1. 用户点击链接
  2. 您将 cookie 写入用户,并将该用户重定向到“客户端”。我们将使用术语客户来指代实际与您的用户做某事的个人或公司。您通常希望向 URL 添加一些内容,因为您无法为用户不在的域编写 cookie,并且您(或其他站点)无法访问为另一个域编写的 cookie。 (这是浏览器安全协议)。

    在此之后,您将需要与客户端建立某种关系,这样您就可以告诉他们他们应该寻找哪些数据,以便识别访问的用户附属公司,并且知道他们必须将其发回给您。

  3. 然后您必须设置一种方式让您的客户告诉您用户已完成注册(或任何其他需要的操作,通常称为转换)。

这个过程本身非常简单,只是大量的数据跟踪。您基本上只需要能够跟踪任何单个转化回特定点击,并确定它的来源以给予适当的联盟信用。为此,您只需在点击和重定向到客户端之间做一个中间人,然后在 URL 中添加一些内容,以便客户端可以告诉您该唯一 ID 是否已转换。

如果您需要在系统内、客户端外以及跨多个关联公司识别唯一用户,则需要部署 Cookie。会话是无用的,因为它们也是一个 cookie - 但更临时并随着浏览器退出而被破坏。

如果您正在编写客户端代码(基本上,接受来自关联公司的用户),您将需要初始化一个长期 cookie(或短期会话,这取决于您希望给您的关联公司多少“时间”获得点击链接的用户的信用)。一旦用户完成了您希望他们完成的操作(转换),您就将其告知关联服务提供商(使用他们提供给您的唯一 ID),然后他们会处理将信用返还给关联公司。

我希望这一切都有意义,并希望能有所启发/让您朝着正确的方向开始。就像我说的,对于新手来说,第一个项目有点困难,但肯定不是不可能的。祝你好运。

【讨论】:

  • 感谢您的智慧之言。肯定要考虑很多。使我的“会员计划”与众不同的是,如果您单击 Joes 会员链接,您不一定直接在 Joe 下注册。你可能是在一个在乔手下注册的人的手下注册的。我知道这听起来可能很奇怪,但如果我向你解释一下就会有意义:-)
  • @Charlie - 我完全明白你的意思。这不应该太难,只取决于嵌套发生的条件。如果您知道用户点击了谁的链接,您应该能够(或前面?)将其跟踪到相应的附属公司。就像我说的,大部分挑战来自数据处理。
  • @JimRubenstein:嗨,吉姆。我知道这是在您回答之后很长时间,但我现在才找到它:) 关于这句话:“您通常希望在 URL 中添加一些内容,因为您无法为用户不在的域编写 cookie,并且您(或其他站点)无法访问为其他域编写的 cookie。(这是浏览器安全协议)。应该在 URL 中添加什么样的内容?我不明白如何在 URL 中添加一些内容来解决编写 cookie 的问题,然后让零售网站能够在销售时访问该 cookie...
  • @Andrew:如果您是关联公司并且您要重定向的网站不提供转化像素,您可以在重定向网址中添加一些内容(通常称为“subid”)展示位置,并以“离线方式”向您报告(这意味着,实际客户不会向您提交请求以告诉您它已转换 - 这就是转换像素的作用)。如果网站确实提供了转化像素放置,您无需修改​​重定向 URL,并且您可以依赖在重定向期间放置在用户身上的 Cookie,以便在用户加载像素时显示。
  • @Andrew:如果这没有意义,你可以通过 gtalk 给我发消息或给我发电子邮件,我可以尝试更清楚地解释它。
【解决方案2】:

当附属链接进入时,将该附属链接存储在会话变量中。您拥有的任何常见标头代码都可以轻松处理通过站点中任何页面的附属链接并适当地存储它。

当用户从一个页面移动到另一个页面时,会话将与用户保持一致,每当他们找到您的注册表单(或任何其他您需要知道他们通过什么附属公司的地方)时,只需查看会话(以及GET 变量只是为了安全起见)。

使用会话不需要任何 URL 更改或杂乱的技巧,其中每个链接都需要附加附属 ID,也不会通过在每个请求中发送额外数据或拥有尽可能多的数据来减慢浏览器的速度使用 cookie 时的安全问题。

【讨论】:

    猜你喜欢
    • 2013-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-25
    • 1970-01-01
    • 1970-01-01
    • 2016-11-04
    相关资源
    最近更新 更多