PHP转换跟踪

时间:2011-07-20 20:22:57

标签: php mysql

我有3页,我试图“跟踪”可以这么说。注册过程是3页。基本上,我不想计算不按顺序的命中(即,如果用户重新检查到感谢页面(第3页)),我不希望它再次计算转换。

这样的事情 1.用户进入着陆页+1点击 2.用户输入中间页+ 1hit 3.用户输入感谢页面+1转换

我知道如何增加计数非常容易点击,但我不确定如果它们不按顺序如何“不”计算它。

3 个答案:

答案 0 :(得分:3)

您可以设置会话变量,以便在第1页上将其设置为“1”,第2页=“2”,依此类推,但只设置变量,如果它当前小于当前页码,那么:

session_start();
if($_SESSION['cur-page'] < [CURRENT PAGE NUMBER]) {
    $_SESSION['cur-page'] = [CURRENT PAGE NUMBER];
    logHit();
}

logHit()跟踪页面匹配。

答案 1 :(得分:1)

SESSIONS会解决您的问题。

在第一页上执行以下操作:

session_start();
$_SESSION['page'] = '1';

// Store signup values in session

关于第二个:

session_start();

if ($_SESSION['page'] != 1 || $_SESSION['page'] != 3) {
    header("Location: /page1");
    exit();
} elseif ($_SESSION['page'] == 'complete') {
    header("Location: /resubmit-error");
} else {
    $_SESSION['page'] = 2;
}

// Store additional values in session

关于第三个:

session_start();

if ($_SESSION['page'] != 2) {
    header("Location: /page2");
    exit();
} elseif ($_SESSION['page'] == 'complete') {
    header("Location: /resubmit-error");
} else {
    $_SESSION['page'] = 3;
}

// Store additional values in session again and submit values to database or other source.

最后谢谢你的页面:

if ($_SESSION['page'] != 3) {
    header("Location: /page3");
} elseif ($_SESSION['page'] == 'complete') {
    header("Location: /resubmit-error");
} else {
    $_SESSION['page'] = 'complete';
    // Store data
}

在第三页的最终提交重定向到完成/感谢页面。

使用此方法,用户不会在不重新填写表单的情况下返回最终页面。

答案 2 :(得分:0)

设置名为step的cookie或会话变量。在运行跟踪代码之前,请确保当前步骤大于cookie中存储的步骤,否则不要跟踪它。通常对于转化跟踪,最好在会话中使用Cookie,因为您可以跟踪转换30天(或者您想要多长时间),而不是通常在用户关闭浏览器窗口时结束的短会话。

第1页

$step=1;
if (!$_COOKIE['step']) {
    setcookie('step',$step,time()+(86400*30),'/','.yourdomain.com');
    //run tracking code (log database, whatever)
}

在第2页+

$step=2;
if ($_COOKIE['step'] && $_COOKIE['step']<$step) {
    setcookie('step',$step,time()+(86400*30),'/','.yourdomain.com');
    //run tracking code (log database, whatever)
}