色尼玛亚洲综合影院,亚洲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實現頁面防刷新功能,轉載需保留來源!

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

主站蜘蛛池模板: 松潘县| 文登市| 江永县| 桃源县| 阆中市| 裕民县| 灯塔市| 民县| 万载县| 依兰县| 木兰县| 仪陇县| 文安县| 苗栗市| 蕉岭县| 泌阳县| 佛坪县| 石景山区| 孟村| 怀柔区| 阳城县| 调兵山市| 安宁市| 博野县| 峨山| 甘德县| 平乐县| 南郑县| 治县。| 尚志市| 临江市| 云梦县| 慈溪市| 锦屏县| 桑植县| 札达县| 察哈| 罗城| 石景山区| 收藏| 西乌珠穆沁旗|