0

我让访问者进入某个 PHP 登录页面,该页面具有指向外部网站的链接。

我想跟踪每个访问者是否单击了该链接,并接收其他信息,例如它的 HTTP 引用者是什么、进入时间、点击时间、访问持续时间、浏览器等。

一个仅涵盖跟踪 HTTP 引荐来源网址的选项(实际上,它会向我显示访问者用来访问我的网站的“干净”搜索词)是使用一段 JavaScript 代码,它是由我的自动工具生成的流量来源优惠。

由于我将访问者发送到外部网站,我认为进行此类跟踪的唯一方法是首先将点击链接的任何人发送到我网站上包含此代码的自动重定向页面。

现在,假设我所有的假设都是正确的(如果不是,请告知):

1)除了使用这个自动生成的代码之外,我还有什么其他选择?

2) 这样的重定向页面应该是 PHP 页面吗?

3)在这样一个PHP页面中,我读到最好使用:

    header('Refresh: 3;url=http://www.external-page.com');

4) 我假设 3 秒足以让 JavaScript 代码完全工作,有没有办法向访问者显示动态倒计时消息?

5)我希望外部网站在新的浏览器窗口中打开,PHP 有没有办法打开这样一个不包含任何工具栏的窗口,并让这个窗口以一定的大小打开(而不是像整个屏幕一样带有“_blank”目标)?如果没有,我该如何使用 Javascript 执行此操作?它涉及插件吗?

6) 如果我必须将多个登录页面转换为以这种方式工作怎么办?我应该为每个登录页面手动创建一个单独的重定向页面,还是有办法制作一个模板来接收来自原始页面的链接输入?也许将用户发送到

   redirect.php?link=http://link1.com

然后“获取”链接并在 url 中回显它,但它似乎不够干净,我希望用户在指向链接时不会看到如此混乱的目标 url。

谢谢!

4

1 回答 1

0

只需在链接上添加一个单击事件侦听器,并在成功时直接重定向到远程站点(假设您使用的是 jquery):

$(document).ready(function() {
    $('a').on('click', function(){
        var href = $(this).attr('href');

        // Send a transparent POST request to your server
        $.post(
            '/tracking-url', 
            {
                url: href // you will have access to $_POST['url'] containing your href attribute value
            },
            function(response) {
                // On success event 
                // If everything is ok (server-side), just redirect the user to the site
                window.location = href;
            }
        ).fail(function() {
            // something unexpected occured
            alert("error");
        });

        return false; // prevents the default event behaviour
    });
});

并保持原样:

<a href="http://link1.com">Go to link1</a>

请参阅jQuery.post()
您还可以使用jQuery.get()来访问一个$_GET[]值。

于 2013-11-14T13:57:23.370 回答