很多站长朋友们都不太清楚php每天ip,今天小编就来给大家整理php每天ip,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 PHP投票一个ip每天只能投一次票 2、 用php,要一个ip一天只能注册10个用户,那应该在注册页面添加什么语句呢,代码怎么写啊 3、 如何在PHP上限制一个IP一天只能注册5个帐号 4、 请教:如何用PHP程序限制一个IP地址一天只能投票3次呢? 5、 如何在php上限制一个ip一天只能注册10个账户,注册多了不允许 PHP投票一个ip每天只能投一次票投票的时候见ip 和投票时间存入数据库,
存入数据库的时候判断该ip在数据库中是否存在,
如果不存在就第一次,可以进去,
如果存在,就取出数据库中那条数据的时间来判断是否是当天的时间,
如果不是当天的时间,就把现在投票的数据存进去,
如果是当天的时间,就不能把数据存进去,提示你今天已经投过票了,
用php,要一个ip一天只能注册10个用户,那应该在注册页面添加什么语句呢,代码怎么写啊你的注册成功后的表中,需要有注册IP和注册时间字段,你在输入注册信息的页面,首先查询改IP今天注册的数量,如果大于10就拒绝注册。
例如:
$ip=getenv('REMOTE_ADDR');
$day=date('Y-m-d');
$sql="select count(*) from register where ip='$ip' and regdate='$day'";
$res=mysql_query($sql);
list($cnt)=mysql_fetch_row($res);
mysql_free_resuly($res);
if ($cnt>=10) echo '对不起,你今天注册用户太多。';
else {
echo '<form .....></form>';
}
如何在PHP上限制一个IP一天只能注册5个帐号时间格式用int型,您做起来就会简单的多,你只要做在一天凌晨到24点这个时间内,注册的个数<5就可以了!/**
客户端IP
*/
function getClientIp(){
if(getenv('HTTP_CLIENT_IP')) {
$onlineip = getenv('HTTP_CLIENT_IP');
} elseif(getenv('HTTP_X_FORWARDED_FOR')) {
$onlineip = getenv('HTTP_X_FORWARDED_FOR');
} elseif(getenv('REMOTE_ADDR')) {
$onlineip = getenv('REMOTE_ADDR');
} else {
$onlineip = $_SERVER['REMOTE_ADDR'];
}
return $onlineip;
}//必须用这个,否则很多时候是取不到客户端的ip的$thisDayStart=mktime(0,0,0,date("m"),date("d"),date("Y"));//mktime($h,$i,$s,$m,$d,$y)$thisDayStart=mktime(23,59,59,date("m"),date("d"),date("Y"));//mktime($h,$i,$s,$m,$d,$y)select count(id) from com_users where addtime>=".$thisDayStart." and addtime<".$thisDayStart.";只要这个count(id)>=5了,就不能可以了
请教:如何用PHP程序限制一个IP地址一天只能投票3次呢?1、可以用MySQL 或者用Nosql记录 新建一个投票IP的数据表,字段是IP,投票次数;
2、每次用户投票时,搜索表是否存在该IP:
i、 如果不存在新增一条记录,
ii、否则判断访问次数是否大于3次:
1) 没有更新访问次数;
2)大于3次就return false;
3、弊端:当然这种情况不能避免使用代理来刷票的情况。
建议:用Nosql比较好,高并发,实时性好。
如何在php上限制一个ip一天只能注册10个账户,注册多了不允许思路:
获取访问用户ip,查询数据库判断该ip是否可以继续注册新用户
示例
/**
* Created by PhpStorm.
* 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 = new PDO($dsn, $user, $password,array(PDO::MYSQL_ATTR_INIT_COMMAND => "set names utf8"));
} catch (PDOException $e) {
echo 'Connection failed: ' . $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').' +1 day ');//明天0点
$sth = $db->prepare('select count(*) from user where ip=:ip and created_at>:start_time and created_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上,欢迎点星网页链接
关于php每天ip的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。