㈠ 如何在php上限制一個ip一天只能注冊10個賬戶,注冊多了不允許
思路:
獲取訪問用戶ip,查詢資料庫判斷該ip是否可以繼續注冊新用戶
示例
/**
*CreatedbyPhpStorm.
*User:Administrator
*Date:2018/11/30
*Time:19:35
*限制一個ip一天只能注冊10個賬戶
*獲取訪問用戶ip,查詢資料庫判斷該ip是否可以繼續注冊新用戶
*/
//獲取資料庫實例
$dsn='mysql:dbname=test;host=127.0.0.1';
$user='root';
$password='';
try{
$db=newPDO($dsn,$user,$password,array(PDO::MYSQL_ATTR_INIT_COMMAND=>"setnamesutf8"));
}catch(PDOException$e){
echo'Connectionfailed:'.$e->getMessage();
}
//獲取訪問用戶ip
$access_user_ip=$_SERVER['REMOTE_ADDR'];
//查詢資料庫判斷該ip是否可以繼續注冊新用戶
$start_time=strtotime(date('Y-m-d'));//今天0點
$end_time=strtotime(date('Y-m-d').'+1day');//明天0點
$sth=$db->prepare('selectcount(*)fromuserwhereip=:ipandcreated_at>:start_timeandcreated_at<:end_time');
$sth->bindParam(':ip',$access_user_ip);
$sth->bindParam(':start_time',$start_time);
$sth->bindParam(':end_time',$end_time);
$sth->execute();
$count=$sth->fetchColumn();//當前該ip今天注冊的用戶總數量
if($count>10){
exit('今天,您已注冊10個新賬號了,請明天再來吧');
}
源碼放在github上,歡迎點星網頁鏈接