1.如何在php上限制一个ip一天只能注册10个账户,限制限制注册多了不允许
2.php如何限制同一IP24小时内重复注册?
3.代码PHP 设置用户登陆限制,注册3次错误锁定账户5分钟
如何在php上限制一个ip一天只能注册10个账户,访问注册多了不允许
思路:获取访问用户ip,限制限制雷达源码论坛查询数据库判断该ip是注册否可以继续注册新用户
示例
/*** Created by PhpStorm.
* User: Administrator
* Date: //
* Time: :
* 限制一个ip一天只能注册个账户
* 获取访问用户ip,查询数据库判断该ip是访问后台模拟源码否可以继续注册新用户
*/
//获取数据库实例
$dsn = 'mysql:dbname=test;host=.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>){
exit('今天,您已注册个新账号了,限制限制请明天再来吧');
}
源码放在github上,注册欢迎点星网页链接
php如何限制同一IP小时内重复注册?
这不是访问一段代码就能解决的,我只能给你解决方案:
1.修改保存用户注册信息的限制限制表,此表要有注册IP和注册时间字段;
2.当用户注册时,注册能过request对象取得用户的访问IP地址,然后到用户注册信息表中查询最后此IP的限制限制进化计算源码注册时间的记录,如果没有查到记录,注册那么允许此用户注册。访问如果查到记录,androidlibc源码修改则判断注册时间是否超过小时,如果超过也允许注册,否则不允许注册。jdkproxy源码分析
代码逻辑很简单,主要是表中要有注册IP和注册时间字段。这么简单的代码,就是根据条件查询数据,以及逻辑判断,只要是程序员应该都能写出来,当然还要结合你的程序来写,否则随便写段代码你也用不上。
代码PHP 设置用户登陆限制,3次错误锁定账户5分钟
if (mysqli_num_rows($r) == 1){
$row = mysqli_fetch_array($r);
if (SHA1($psword) == $row['psword']){
session_start();
//set session variables
$_SESSION['uname'] = $uname;
$_SESSION['fname'] = $row['fname'];
setcookie('uname',$uname,time()+);
setcookie('fname',$row['fname'],time()+);
//check the role of user
if($row['role'] == 'Student'){
echo "<script>window.open('student.php', '_SELF')</script>";
exit();
}
else
header('LOACTION: admin.php');
}
else
echo "Incorrect password.";
}
else {
echo "Unknown username.";
}
}