php限定用戶只能提交一次的實作方法:1、透過「$ip=getenv('REMOTE_ADDR');」取得ip,並使用ip進行限制;2、在客戶端的瀏覽器保存一個有效期限一天的COOKIE即可。
本文操作環境:Windows7系統、PHP7.1版、Dell G3電腦。
php怎麼限定使用者只能提交一次?
php限定post次數,例如一天只能post一次:
第一,使用IP限制的話,你只能獲得對方用戶的外網IP,那麼網咖裡面所有電腦的IP是相同的,一天之內這個網咖只有一台電腦可以提交。如果你的客戶主要是家庭用戶,那麼可以使用IP限制,否則IP限制會把許多無辜的人限制了。
取得IP的方法:
$ip=getenv('REMOTE_ADDR');
IP限制還是可以破的,家庭寬頻用戶斷往重新撥號,會得到新的IP。
再次確認,伺服器無法取得192.1.1.100這樣的內網IP位址的。
第二,除了IP之外,還可以使用COOKIE限制,在客戶端的瀏覽器保存一個有效期一天的COOKIE,程式偵測COOKIE進行限制。這個方法可以解決IP限制對網咖限製過嚴的問題,但無法解決聰明的客戶自己清除瀏覽器COOKIE的方法。
設定有效期限一天的COOKIE的方法:
setcookie("TestCookie", $value, time()+24*3600);
以上兩個方法都各有千秋,你可以結合起來做一個稍微更合理的,但是都不可能完美。
相關介紹:
cookie 常用於辨識使用者。 cookie 是一種伺服器留在使用者電腦上的小檔案。每當同一台電腦透過瀏覽器請求頁面時,這台電腦將會傳送 cookie。透過 PHP,您能夠建立並取回 cookie 的值。
setcookie() 函數用於設定 cookie。
註解:setcookie() 函數必須位於 100db36a723c770d327fc0aef2ce13b1 標籤之前。
語法
setcookie(name, value, expire, path, domain);
推薦學習:《PHP影片教學》
以上是php怎麼限定使用者只能提交一次的詳細內容。更多資訊請關注PHP中文網其他相關文章!