php用户登陆代码(限制用户错误登录次数)(1/2)php用户登陆代码(限制用户错误登录次数)

php教程用户登陆代码(限制用户错误登录次数)

session_start();

include("mysql教程.class.php");

$db=new mysql('localhost', 'root', '', 'flx', 'conn', 'gbk');

// 为方便测试,这里只是简单定义了一个特定的用户,在实际操作中,用户信息从数据库教程中得出;

define('user','admin');

define('pw', 123);

$db->findall('limit_login');

$row=$db->fetch_array();

//print_r($row);

if($_post['submit']){

$username=$_post["username"];

$pw=$_post["pw"];

$_session['time']=time();

/* 错误次数超限判断*/

// 对于登陆出错超过三次的用户,如果现在时间,减去开始登陆的时间,小于特定的值时,就不允

许在登陆;

if($username==user){

//这里用户可以试着登陆3次,,下面写为2,是因为页面刷新与数据库的连接不同步,

// 就是说,第二次的错误信息插入数据库时,这里获取的信息,还是第一次的,实际用户出错的

次数已经多一次了;

if($row['login_times']>2){

$current=time();

$passed_time=$current-$row['login_date'];

echo '现在已经过了'.$passed_time.'秒
';

// 设定时间 900秒,在此时间段内,特定用户不能登陆系统;按

if(($current-$row['login_date'])<900){

//$test_pw=substr(md5(rand()),0,10);

//现在admin (特定用户)用户已经登陆错误大于3次,那在限定的时间内,

//即使他的密码输入正确,也不能在登陆系统;

if($pw==pw){

exit('你密码输入错误次数大于三次,请在15分钟后登陆系统!');

}

// 当然,这位用户输入的密码不是正确的密码,也给出这样的提示;

if($pw!=pw){

exit('你密码输入错误次数大于三次,请在15分钟后登陆系统!');

}

}else{

//此时已经过了限制的时间,这位用户可以登陆了,在此用户在登陆之前,要把前次登陆的时间

清零;

$mod_content="`login_times`=0,`login_date`=0";

$condition="`id`=1";

$db->update('limit_login',$mod_content,$condition);

}

}

}

/* 用户登陆操作*/

if($username&&$pw){

if($username==user&&$pw==pw){

/* 用户登陆成功,*/

// 更新数据表;表登陆次数和时间,都置零;

$mod_content="`login_times`=0,`login_date`=0";

$condition="`id`=1";

$db->update('limit_login',$mod_content,$condition);

echo '

'window.location="success.php"';

}else{

//在第一次出错时,设置密码出错次数为1,把登陆时是session 保存的时间放入数据库;

if($row['login_times']==0&&$row['login_date']==0){

$mod_content="`login_times`=1,`login_date`='".$_session['time']."'";

$condition="`id`=1";

$db->update('limit_login',$mod_content,$condition);

}else{

$mod_content="`login_times`=`login_times`+1";

$condition="`id`=1";

$db->update('limit_login',$mod_content,$condition);

}

/*  提示用户还有几次机会*/

if($row['login_times']<3){

$row['login_times']++;// 这里登陆次数加1,和上面的说的原因一样,是因不能同步连接

数据库所致;

echo'密码错误!错误次数为:'.$row['login_times'].'次
';

$remain_times=3-$row['login_times'];

echo '你还有'.$remain_times.'登陆机会';

}

}

}else{

echo '用户名和密码不能为空!';

}

}

?>

username:

password:

1 2

/php/11720.htmlwww.phpzy.comtrue/php/11720.htmlTechArticlephp用户登陆代码(限制用户错误登录次数)(1/2) php用户登陆代码(限制用户错误登录次数) php教程用户登陆代码(限制用户错误登录次数) session_start(); include(mysql教程.class.php); $db=ne...

php错误密码也能登陆账号,php用户登陆代码(限制用户错误登录次数)(1/2相关推荐

  1. html手机qq登陆验证码,为什么qq登陆需要验证码?qq登陆需要验证码怎么取消?...

    为什么qq登陆需要验证码?qq登陆需要验证码怎么取消?很多用户在登陆qq时,总是需要输入验证码,一些用户表示很烦,那么大家知道为什么qq登陆需要验证码吗?如果不想每次登陆qq都需要验证码该如何取消呢? ...

  2. 逻辑漏洞之任意用户登陆漏洞

    环境 环境: Web: phpstudy 5.4.45 System: Windows 10x64 源码版本为:vlcms_1.2.0 什么是任意用户登录漏洞 几乎每个网站都有自己的会员系统,有会员, ...

  3. 若登陆账号错误次数过多则限制登陆一定时长(自定义时长)

    前提须知:登陆拦截器 此演示:登陆5次错误 则限制登陆时长5秒 业务层实现方法 在控制器中使用此方法,若判断用户账户和密码是否正确则返回用户对象 定义session中的key为'count' 定义一个 ...

  4. 解决Navicat使用账号密码登陆Oracle数据库提示【密码已过期,请输入新密码】【或账号已被锁定】

    一.问题描述 打开Navicat使用对应的账号密码登陆Oracle时,弹出提示框[密码已经过期,请输入新密码]:但是自己按照提示输入正确的旧密码和设置对应的新密码后无法修改成功提示[ORA-01017 ...

  5. LINUX 查看宝塔BT登陆账号密码

    LINUX 查看宝塔BT登陆账号密码 登陆SSH, 输入这段代码/etc/init.d/bt default 即可

  6. PHP+AJAX实现账号注册和登陆,附可用demo

    前言 登陆和注册已经是网站的标配了,所以这是我们web开发学习过程中必学的了.其实很容易实现,只需要懂数据库的增删改查,还有if_else的条件语句即可做出来. 目录 css--Login-Reg.c ...

  7. spring boot结合shiro实现用户-角色-权限的控制(包含用户名密码登陆和手机号验证码登陆)

    spring boot整合shiro实现权限校验 1.首先导入项目所需jar包 <parent><groupId>org.springframework.boot</gr ...

  8. 【问】软件安装,数据库失败,错误:(15007)‘HB’是无效登陆名或您没有相应的权限

    [问题描述] 软件安装,数据库失败,错误:(15007)'HB'是无效登陆名或您没有相应的权限 [答] 请按照下面的方法处理: 方式1:此问题是由于SQL 启用了强制密码策略,导致软件安装数据库创建账 ...

  9. 用python编程锁定别人的手机_python输入错误密码用户锁定实现方法

    小编给大家带来了用python实现用户多次密码输入错误后,用户锁定的实现方式,以及具体的流程,让大家更好的理解运行的过程. 1.新建一个文件,用以存放白名单用户(正确注册的用户 格式:username ...

最新文章

  1. matplotlib输出图形到网页_【Python】No.2 Numpy和Matplotlib初体验
  2. 软件测试模型以及测试方法
  3. python网络库_python的网络库
  4. 使用deeplearning4j训练Word2Vec(Java操作)
  5. python函数参数定义顺序_18 Python - 函数定义与参数
  6. 10蓝牙_小米10手机专用?小米“真无线蓝牙耳机Air 2s”评测
  7. 基于原生javascript的淡入淡出函数封装(兼容IE)
  8. 430.扁平化多级双向链表
  9. SOEM主站开发笔记-- 点亮第一个LED----SOEM 的simpletest.c代码的解析以及改动
  10. 配有傲腾内存的电脑如何安装系统
  11. 电子邮件工作原理及主要协议
  12. java pdf添加图片_java pdf指定位置插入图片?
  13. 兼容 iOS retina 高清屏
  14. c语言乘方程序,C语言求幂计算的高效解法
  15. 日语N2听力常用词汇
  16. 负载均衡性能参数如何测评?
  17. 如何降低计算机版本,苹果系统怎么降级到好用的老版本
  18. Originpro绘制y轴偏移堆积图无法设置偏移量
  19. 使用 canvas 和面向对象思想绘制流星动画
  20. C语言简单实现通讯录

热门文章

  1. ClassLoader引发的类型转换异常(转载)
  2. 开源 java CMS - FreeCMS2.6 模型管理
  3. undefined reference to `libiconv_open 无法编译PHP
  4. 面向初级 Web 开发人员的 Tomcat
  5. How to enable javascript in windows server 2008 R2 enterprise
  6. linux c 获取进程 cpu占用率 内存占用情况
  7. docker容器 与 系统时间同步
  8. python 获取10位和13位 时间戳
  9. linux shell 杀进程 kill 包含关键字的进程
  10. 深度包检测 DPI 介绍