如何在php上限制一个ip一天只能注册10个账户,注册多了不允许

 我来答
cnf1980
2018-11-29 · TA获得超过1.5万个赞
知道大有可为答主
回答量:1.2万
采纳率:54%
帮助的人:2561万
展开全部
获取IP,把此IP写入数据库的一张表中,表里记录此IP的注册时间及是否有注册用户,如果有,就增加1。用户注册时先检查这张表中的标记位,对应的ip是否超出限制,否就开放正常注册,是则跳到其他页面不给注册。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友6d10b43
2018-12-04
知道答主
回答量:5
采纳率:0%
帮助的人:4523
展开全部
php上不太好限制,加上数据库的话还好做,用户注册的时候把ip加入到用户注册表中,然后每次用户注册的时候,在数据库查询该用户的ip是否超过10个,没超过的话允许注册,否则注册失败。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
手机昂蓝
2018-12-08 · 超过13用户采纳过TA的回答
知道答主
回答量:64
采纳率:0%
帮助的人:11.8万
展开全部

假设会员表是members有id、reg_time、reg_ip字段

<?php
$start=date('Y-m-d')."00:00:00";
$end=date("Y-m-d")."23:59:59";
$start_time=strtotime($start);
$end_time=strtotime($end_time);
$now_time=time();
$ip = $_SERVER['REMOTE_ADDR'];
if($now_time>$start_time && $now_time<$end_time){
$qid = mysql_query(“SELECT count(id) as total FROM members where reg_time>$start_time and reg_time<$end_time and reg_ip=$ip“);//你的查询
$res = mysql_fetch_array($qid);
$count = $res[‘total’]; //取出统计值
if($count>10){
exit("每个ip每天只能注册10个账号");
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
茶苦亦觉甜
2018-12-19 · TA获得超过114个赞
知道小有建树答主
回答量:444
采纳率:0%
帮助的人:131万
展开全部
数据库添加一张注册日志表,字段为:主键,ip,created_at(时间戳),每次新注册就用ip和当前日期去做业务逻辑判断。如select count(*) from 注册日志表 where ip='当前ip' and created_at>当天0点的时间戳,结果超过10条就不允许新注册了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
李温柔1028
2018-11-29 · 超过15用户采纳过TA的回答
知道答主
回答量:46
采纳率:75%
帮助的人:9.9万
展开全部
您好很高兴回答您的问题
首先在用户注册的时候您获取到用户注册的ip,保存在数据库中。相同ip数据库的注册次数递增。
然后当下一个用户注册的时候查找ip注册次数,超过就返回false。
数据库结构:注册ip,注册时间,注册次数。(一天内注册次数递增,超过一天,则第二天数据重新保存)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式