2011-04-17 40 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

相關問題