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

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

主站蜘蛛池模板: 盐津县| 大厂| 博客| 扎赉特旗| 惠安县| 苗栗县| 定西市| 乌恰县| 黄龙县| 宣威市| 永善县| 尚义县| 高淳县| 杭锦旗| 开江县| 麦盖提县| 沭阳县| 丰顺县| 綦江县| 诸城市| 桂阳县| 青冈县| 含山县| 泰安市| 延长县| 三门峡市| 张家口市| 同心县| 广饶县| 华坪县| 鱼台县| 新巴尔虎左旗| 镇赉县| 广丰县| 正阳县| 北流市| 衡阳县| 信阳市| 青浦区| 隆尧县| 祁连县|