關於投票ip限制的一種手段

2021-06-09 21:07:11 字數 1691 閱讀 3620

專案中有這樣的乙個功能,截圖如下:

1、不用多說大家都應該明白這是乙個什麼樣的功能,其實就是乙個投票。

2、要求是要限制使用者的ip,乙個使用者只能投一次。

3、使用者第一次投票提示投票成功並且所支援方的票數要累計一,再次投票提示使用者您已經投過了。

4、頁面在載入完以後如果使用者投過票,所支援方是active狀態,反對方是gray狀態。

經過分析,要獲取使用者的兩個資料:ip和他支援方的標記,獲取資料簡單關鍵是怎麼儲存資料,本文採用了檔案儲存的方式,在專案裡建立乙個ini檔案(如:ip.ini),把獲取的資料按『ip=flag;』(如:127.0.0.1=1;其中127.0.0.1是ip、1標記使用者支援圖中的藍方)這種格式儲存起來如下圖:

剩下的就是對這個檔案進行處理了,可以採用parse_ini_file()array_key_exists(),關於這兩個函式的介紹如下:

parse_ini_file:

格式:array parse_ini_file ( string $filename [, bool $process_sections ] );

$filename是要解析的ini檔案。

$process_sections設定獲取陣列的維數,如果是true可以獲取多維陣列,預設的是false。

函式的返回值是聯合陣列。

array_key_exists:

格式:boolean array_key_exists(string $key,array $array);

$key要檢測的鍵名。

$array被檢測的陣列。

函式返回boolean值,true存在,false不存在。

該功能中用到的函式如下:

/*** 讀取客戶端ip

*/function rrip()

/*** 讀取ip集合

*/function rips()

/*** ip 位址記錄

* @param string $ip ip位址

* @param int $f 1表示贊成 0表示反對

*/function wip($ip, $f)

/*** 讀取 pk 資料

*/function rpk()

//藍方支援數

$zc = file_get_contents('zancheng.txt');

//紅方支援數

$fd = file_get_contents('fandui.txt');

echo $_get['rpk'] . '(' . json_encode(array('zc' => $zc, 'fd' => $fd, 'success' => $success, 'f' => $f)) . ')';

}/**

* 更新 pk 資料

*/function upk()else

if($success)else

//記錄ip 和 標記

wip($ip, $f);

echo $_get['upk'] . '(' . json_encode(array('success' => true)) . ')';

}else

}

IP位址的另一種形式 一種隱藏IP的方法

ip位址的另一種形式 192.168.1.1這種ip位址格式是在熟悉不過的了,但要是有人讓你訪問他的 時卻給你http 0x3d9b5f51這樣的位址你是不是感到很疑惑?那麼下面就讓我來教 你這麼把61.155.95.81轉換成上面的那種格式.首先把61.155.95.81按 分成4部分,分別是61...

Linux 一種多執行緒建立 監視手段

目前對linux的多程序 多執行緒理解還不夠深入。在現有理解的基礎上,寫了一套多執行緒的建立 維護例程。具備以下特性 1.批量建立,類似於註冊 2.批量監視 3.重啟機制 直接上 注釋很詳細 include include include include include include includ...

關於封裝的一種解釋

封裝這個解釋,我一直喜歡用cpu作為例子 cpu把所有的電阻電容閘電路等都封裝起來,只留出一些管腳 介面 讓使用者使用,cpu能暴露什麼,不能暴露什麼,是生產商設計決定的,使用者不能直接操作cpu的電阻電容等等,但可以通過給管腳適當的電壓來控制電阻電容等,也就是說使用者不能直接訪問cpu的屬性,但是...