国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

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

2024-05-04 23:25:00
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了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); } }}
 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 类乌齐县| 玛曲县| 新闻| 佳木斯市| 罗源县| 临沭县| 枣阳市| 沙坪坝区| 金华市| 屯门区| 宜兰市| 财经| 普宁市| 乐至县| 三都| 年辖:市辖区| 吴川市| 金坛市| 岳阳县| 沧州市| 双桥区| 永胜县| 彭水| 辽中县| 海口市| 湖南省| 沂源县| 宁陵县| 商城县| 鹿邑县| 湘阴县| 万载县| 长海县| 浮山县| 甘德县| 城口县| 卓尼县| 大港区| 南漳县| 资溪县| 孟津县|