2012-08-26 26 views
1

基本上,我正在嘗試製作一個拆分測試web應用程序,而且我對如何在沒有任何競爭條件的情況下執行此操作感到困惑。如何將訪問者發送到備用頁面

基本上有3頁:

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

所以過程如下:

  1. 用戶訪問main_page.php
  2. main_page.php檢查一個cookie

    • 一個。如果沒有cookie創建cookie,
    • b。檢查最後一位訪客發送到的頁面
    • c。發送當前遊客到其他頁面(如果最後遊客去page1.php中,送這樣一來page1_alt.php)

我有餅乾的問題整理出來,我只是想知道你的認爲是如何執行步驟2b的最佳方法。如果我寫入數據庫,這將是不切實際的。如果我參考一個文本文件,它會產生可能的競爭條件。

編輯:如果你覺得還有比從頭開始更簡單的方法,你給我一些建議:)

回答

3

我不確定我完全明白你爲什麼要這樣做,或者爲什麼寫入數據庫不切實際。如果你想精確分割它們,這對我來說似乎是最好的解決方案。

然而,如果你只需要他們沒有DB-接入大致劃分,你可以有創意:

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

當然有一些參與了這次機會,但由於秒均勻分佈,如果你有足夠的用戶,這兩個組應該相當接近相同的大小。

0

考慮使用會話,而不是餅乾。會話更加靈活和安全地跟蹤用戶活動。

+0

感謝您的建議!我會去做。 :) – user1239714

+0

你可能會發現通過官方的php文檔有用什麼時候使用session vs cookie。 http://php.net/manual/en/features.sessions.php和http://php.net/manual/en/features.cookies.php將引導你的方式。不要忘記在官方文檔中閱讀用戶提交的評論。 – jkoech

0

您應該使用sessionsheader("Location:...);。從,你可以做這樣的事情

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

哪裏$_SESSION["cookie"]是你要設置它是什麼。我想在你的情況下,你可以設置他們最後的頁面。然後你可以檢查它是否存在和/或它是什麼,並使用header將它們發送到適當的頁面。

+0

感謝您的提示。:)我現在將使用會話,但我主要關心的是如何平等地將用戶分發到每個頁面。:D – user1239714

+0

我想最好的方法是在服務器上跟蹤它,而不是在會議上,因爲你需要不斷爲每個人的信息。也許你可以使它成爲一個var布爾值或int(T/F或0/1),並且如果當前訪問者轉到page1將其設置爲1,然後下一位訪問者可以查看它,請轉到page1_alt,然後更改對另一個變量。然後重複這個過程。您當然應該使用會話來重定向人員。 我也會說,也許你可以讓它隨機?這通常是公平的,並且無論如何都不那麼令人困惑。 – aug

3

我知道谷歌分析可以做分割測試,我不知道你的最終目標是什麼,但與GA它將拆分用戶和測試哪個頁面的用戶到最大的目標。對不起,如果這不是你要找的。

+0

我同意。鑑於沒有具體原因不使用Google Analytics等預先存在的(免費)工具,我建議不要構建自己的。 Google Analytics有很多陷阱(例如,參見我的StackOverflow問題),但它可能對您的用例來說是完美的。 – Ryan

相關問題