国产探花免费观看_亚洲丰满少妇自慰呻吟_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); } }}
 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 岢岚县| 馆陶县| 民县| 姚安县| 教育| 阳城县| 阳西县| 平南县| 竹山县| 北川| 永平县| 通山县| 平原县| 中阳县| 延吉市| 石门县| 重庆市| 泽州县| 澜沧| 丹江口市| 海林市| 大邑县| 大洼县| 黄梅县| 辽阳县| 永新县| 柘城县| 萨迦县| 腾冲县| 镇沅| 白水县| 黄龙县| 交城县| 灵寿县| 呼图壁县| 黄山市| 荔波县| 承德市| 门头沟区| 枝江市| 旅游|