1

基本的に、私は分割テストWebアプリを作成しようとしていますが、競合状態なしでこれを行う方法について少し混乱しています。

基本的に、3つのページがあります:

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

したがって、プロセスは次のとおりです。

  1. ユーザーがmain_page.phpにアクセスします
  2. main_page.phpはCookieをチェックします

    • a。Cookieがない場合は、Cookieを作成します。
    • b。最後の訪問者が送信されたページを確認してください
    • c。現在の訪問者を他のページに送信します(最後の訪問者がpage1.phpにアクセスした場合は、これをpage1_alt.phpに送信します)

私はクッキーの問題を整理しました、私はあなたがステップ2bを行う方法についてあなたが最良の方法であると思うものを知りたいだけです。私がデータベースに書き込む場合、それは実用的ではありません。テキストファイルを参照すると、競合状態が発生する可能性があります。

編集:最初から始めるよりも簡単な方法があると思うなら、私にいくつかの提案をしてください。:)

4

4 に答える 4

3

なぜこれを実行したいのか、またはDBへの書き込みが非現実的である理由を完全に理解しているのかわかりません。正確に分割したい場合は、これが最善の解決策のようです。

ただし、DBアクセスなしでそれらをほぼ分割する必要がある場合は、創造性を発揮できます。

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

もちろん、これにはある程度の可能性がありますが、秒は均等に分散されるため、十分なユーザーがいる場合、2つのグループはほぼ同じサイズになるはずです。

于 2012-08-26T21:37:37.930 に答える
3

私はグーグルアナリティックが分割テストを行うことができることを知っています、あなたの最終目標が何であるかはわかりませんが、GAを使用すると、ユーザーを分割し、どのページがユーザーを最も目標に到達させるかをテストします。これがあなたが探していたものではなかったらごめんなさい。

于 2012-08-26T21:20:47.667 に答える
0

Cookieの代わりにセッションを使用することを検討してください。セッションは、ユーザーアクティビティを追跡するためのより柔軟で安全な方法です。

于 2012-08-26T18:52:38.003 に答える
0

セッションとを使用する必要がありますheader("Location:...);。それからあなたはこのようなことをすることができます

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

$_SESSION["cookie"]設定したいものはどこにありますか。あなたの場合、あなたは彼らがついにどのページにいたかを設定することができたと思います。次に、それが存在するかどうか、および/またはそれが何であるかを確認headerし、それらを適切なページに送信するために使用できます。

于 2012-08-26T18:59:43.100 に答える