我正在一個網站上進行大量外部鏈接。所有的鏈接都在經歷稱爲PHP文件:out.php每30秒只有一個傳出鏈接
所以,普通的外部鏈接會是這樣的:out.php URL = HTTP://www.google.com
我的問題是如何阻止人們一次點擊多個鏈接?例如,我希望他們僅在30秒內點擊一個鏈接。如果他們點擊另一個鏈接,則應該出現一個錯誤,告訴他們等待幾秒鐘,然後才能訪問另一個頁面。
使用Cookie不是一個選項,因爲他們仍然可以禁用cookie。
在此先感謝您的幫助!
我正在一個網站上進行大量外部鏈接。所有的鏈接都在經歷稱爲PHP文件:out.php每30秒只有一個傳出鏈接
所以,普通的外部鏈接會是這樣的:out.php URL = HTTP://www.google.com
我的問題是如何阻止人們一次點擊多個鏈接?例如,我希望他們僅在30秒內點擊一個鏈接。如果他們點擊另一個鏈接,則應該出現一個錯誤,告訴他們等待幾秒鐘,然後才能訪問另一個頁面。
使用Cookie不是一個選項,因爲他們仍然可以禁用cookie。
在此先感謝您的幫助!
保存被點擊的地方(文件,數據庫,...)和上次點擊時的時間戳。然後,對於每次點擊檢查給定url的時間戳(如果存在)。如果在30秒內窗口忽略請求,否則使用請求並更新時間戳字段。如果你需要爲每個用戶分開它,保存IP(或者如果你有用戶名),也是如此。
需要登錄才能工作,IP地址不會,正如我在Neal的回答中所述 – Gareth 2011-03-25 20:18:10
好!非常感謝! – moonwalker 2011-03-25 20:21:59
@Gareth: 我知道這一點。用戶可以獲得訪問網站的積分,這就是爲什麼我希望他們只能點擊他們感興趣的網站。而且如果您登錄,您只能獲得積分。因此,未登錄的用戶可能會點擊他們想要的數量。 謝謝大家的幫助! – moonwalker 2011-03-25 20:23:28
你可以說,你需要爲了cookies來查看網站
您可以使用會話cookie:
如果他們查看頁面答:
if(!isset($_SESSION['A']))
$_SESSION['A'] = time();
else {
if((time() - $_SESSION['A']) <= 30000){
$_SESSION['A'] = time();
die('YOU JUST WERE HERE 30 SECONDS AGO! TRY AGAIN LATER!');
}
}
$_SESSION['A'] = time();
或者類似的東西,上面的代碼是不完美
本網站的用戶在點擊鏈接之前必須先登錄嗎? – 2011-03-25 20:13:00
我編輯我的答案,幫助你在那裏 – Neal 2011-03-25 20:14:48
@Tim Cooper:不一定。 @Neal:謝謝你的回答,我會檢查出來的。 – moonwalker 2011-03-25 20:18:58