如何将访问者发送到备用页面

时间:2012-08-26 18:46:59

标签: php ab-testing

基本上,我正在尝试制作一个拆分测试网络应用程序,而且我对如何在没有任何竞争条件的情况下这样做感到困惑。

基本上,共有3页:

  • main_page.php
  • page1.php中
  • page1_alt.php

所以过程如下:

  1. 用户访问main_page.php
  2. main_page.php检查cookie

    • 一个。如果没有cookie创建cookie,
    • 湾检查上次访问者被发送到的页面
    • ℃。将当前访问者发送到另一页(如果上次访问者访问page1.php,请将此访问者发送到page1_alt.php)
  3. 我已经解决了cookie问题,我只是想知道你认为如何做第2b步的最佳方法。如果我写入数据库,那将是不切实际的。如果我引用文本文件,则会产生可能的竞争条件。

    编辑:如果您认为比从头开始更容易,请给我一些建议。:)

4 个答案:

答案 0 :(得分:3)

我知道谷歌分析可以进行拆分测试,我不确定你的最终目标是什么,但是使用GA它将分割用户并测试哪个页面最让用户达到目标。对不起,如果这不是你想要的。

答案 1 :(得分:3)

我不确定我是否完全理解你为什么要这样做,或者为什么写入数据库是不切实际的。如果你想以精确的精度分割它们,这在我看来是最好的解决方案。

但是,如果您只是需要在没有数据库访问权限的情况下拆分它们,那么您可能很有创意:

if (date('s') % 2 == 1) {
  header("Location: page1.php");
} else {
  header("Location: page1_alt.php");
}

当然有一些机会涉及到这一点,但由于秒数是均匀分布的,如果你有足够的用户,这两组应该非常接近相同的大小。

答案 2 :(得分:0)

考虑使用会话而不是cookie。会话是跟踪用户活动的更灵活,更安全的方式。

答案 3 :(得分:0)

您应该使用sessionsheader("Location:...);。从那以后你可以做这样的事情

    if (!isset($_SESSION["var"])) {
    header("Location: main_page.php");
}

$_SESSION["cookie"]是您要设置的任何内容。我想在你的情况下你可以设置他们最后的页面。然后,您可以检查它是否存在和/或它是什么,并使用header将它们发送到相应的页面。