PHP或JQuery的出站链接方式每N次点击都会发生变化。
例如:
访客1点击了LinkA - 他们被带到http://google.com
Visitor2点击LinkA - 他们被带到http://google.com
访客3点击LinkA - 他们被带到http://google.com
访问者4点击了LinkA - 他们被带到http://yahoo.com
访客5点击LinkA - 他们被带到http://google.com
访客6点击LinkA - 他们被带到http://google.com
访客7点击LinkA - 他们被带到http://google.com
访客8点击了LinkA - 他们被带到http://yahoo.com
访客9点击LinkA - 他们被带到http://google.com
访客10点击LinkA - 他们被带到http://google.com
访客11点击LinkA - 他们被带到http://google.com
访客12点击了LinkA - 他们被带到http://yahoo.com
有什么好方法可以解决这个问题?
答案 0 :(得分: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]
你也可以在那里拥有链接目标,但这可能比你需要的更复杂..
答案 1 :(得分:0)
在客户端上没有简单的方法可以做到这一点。请记住,jQuery在不在服务器上的客户端上运行。每个访问者都从服务器获取文件。客户无法相互沟通。
有两种方法可以解决这个问题,非客户端方式更容易。对于链接,将URL添加到服务器,然后在服务器上检查是否要将此客户端重定向到哪里,并将重定向发送回浏览器以转到目标。
使用jQuery的硬客户端方式可以这样工作:当用户点击链接时,执行ajax调用以查看重定向的位置,然后从本地客户端加载该页面。
这两种方法都涉及让服务器跟踪已请求的点击次数。