0

PHP 或 JQuery 的出站链接方式每第 N 次点击就改变一次。

例如:

访问者 1 点击 LinkA - 他们被带到 http://google.com 访问者 2 点击 LinkA - 他们被带到http://google.com访问者3 点击 LinkA - 他们被带到http://google.com访问者 4 次点击在 LinkA - 他们被带到http://yahoo.com 访问者 5 点击 LinkA - 他们 带到http://google.com - 他们被带到http://google.com Visitor8 点击 LinkA - 他们被带到http://yahoo.com Visitor9 点击 LinkA - 他们被带到http://google.com Visitor10 点击 LinkA - 他们被带到








http://google.com
Visitor11 点击 LinkA - 他们被带到http://google.com
Visitor12 点击 LinkA - 他们被带到http://yahoo.com

有什么好的方法可以解决这个问题?

4

2 回答 2

3

最明智的方法是在 PHP 中执行此操作 - 因为您需要确保保持全局点击次数,因此您无法在客户端中执行此操作。

因此,您的原始页面将具有以下内容:

<a href="/forward.php?id=1">site 1</a>
<a href="/forward.php?id=2">site 2</a>
<a href="/forward.php?id=3">site 3</a>
<a href="/forward.php?id=4">site 4</a>

让您的 PHP 文件记录点击次数,并据此返回一个位置。类似这样的伪代码:

// connect to database

// find the count of clicks for site with id=X, and increment it

// if clicks % N == 0 
//    redirect to http://example.com/
// otherwise
//    redirect to http://example.org/

重定向应该很简单:

 <?php
   header( 'Location: http://example.com/' ) ;
 ?>

您的数据库将有一个类似的表:

[link id][click count]

你也可以在那里有链接目标,但这可能比你需要的更复杂..

于 2011-04-17T22:40:04.963 回答
0

在客户端上没有简单的方法可以做到这一点。请记住,jQuery 在客户端而不是服务器上运行。每个访问者都从服务器获取文件。客户端无法相互通信。

有两种方法可以解决这个问题,非客户端方式更容易。对于链接,请在您的服务器上放置一个 url,然后在您的服务器上检查您是否要将此客户端重定向到哪里并将重定向发送回浏览器以转到目标。

使用 jQuery 的硬客户端方式将像这样工作:当用户单击链接时,执行 ajax 调用以查看重定向的位置,然后从本地客户端加载该页面。

两种方式都涉及让服务器跟踪已请求的点击次数。

于 2011-04-17T22:44:15.427 回答