2011-04-17 44 views
0

PHP或JQuery出站链接每隔N次点击更改一次。出站会员链接:第N次点击进入内部

例如:

Visitor1点击LinkA的 - 他们得到采取http://google.com
Visitor2点击LinkA的 - 他们得到采取http://google.com
Visitor3点击LinkA的 - 他们得到采取http://google.com
Visitor4点击在LinkA上 - 他们被带到http://yahoo.com
Visitor5点击LinkA - 他们被带到http://google.com
Visitor6点击LinkA - Th安永得到采取http://google.com
Visitor7点击LinkA的 - 他们得到采取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

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

回答

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] 

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

0

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

有两种方法可以解决这个问题,非客户端方式更简单。对于链接把一个URL放到你的服务器上,然后在你的服务器上检查你想要将这个客户端重定向到哪里,并发送一个重定向回浏览器去目标。

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

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

+0

无法jQuery做ajax调用,获取所需的信息,并在必要时重新编写链接? – 2012-06-03 03:42:36

+0

这可以处理获取之前的点击次数并更改链接。 还可以将jQuery事件附加到链接,并在单击链接时添加ajax调用以增加数据库中的计数。 这不会是理想的,但它不工作? – 2012-06-03 03:44:19

+0

@SherwinFlight - 你的建议正是我在第3段中所描述的。 – Hogan 2012-06-03 03:59:26

相关问题