色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

php中用memcached實現頁面防刷新功能

有個新需求要加上去,防止用戶頻繁刷新頁面。具體需求是當用戶在一分鐘之后內請求指定的頁面超過100次,就直接拒絕請求。仔細分析后發現這個功能用memcache來做最方便:

1、以用戶IP和被請求的文件名作為KEY值。

2、以memcached的方法increment()來自增記錄用戶訪問次數,increment()是原子性增加,準確。

3、設置set()時指定過期時間為60s,這樣就統計一分鐘的訪問次數。

于是寫了個函數放在項目的初始化文件中調用,函數內容如下:

function requestCount(){  $patharr = pathinfo($_SERVER['php_SELF']); $filename = explode('?',$patharr['basename']);//獲取當前文件名 if( in_array($filename['0'],array('index.php','login.php','password.php')) ){ global $memcache; $clientip = get_client_ip(); //使用長整型IP和文件名生成KEY $ipkey = 'C'.sprintf("%u", ip2long( $clientip )). $filename['0'] ; if( $visitCount = $memcache->get($ipkey) ){        if($visitCount == 100){        die('<h1>Please don/'t refresh your page!</h1>');      }else{        $memcache->increment($ipkey);      }   }else{    $memcache->set($ipkey,1,0,60); } }}

php技術php中用memcached實現頁面防刷新功能,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 巴中市| 项城市| 革吉县| 潮安县| 界首市| 金溪县| 西平县| 承德市| 舒兰市| 南陵县| 腾冲县| 儋州市| 万山特区| 习水县| 肇源县| 祁门县| 博爱县| 绥棱县| 蓬安县| 安阳市| 额尔古纳市| 平顶山市| 兴仁县| 子长县| 蓝田县| 云阳县| 盖州市| 棋牌| 揭西县| 望江县| 合作市| 云梦县| 北安市| 宁城县| 清徐县| 贵南县| 中江县| 临汾市| 天门市| 灵宝市| 炉霍县|