最近在写短信发送验证码,就写了个JS倒计时发送验证码按钮
<script language="javascript" src="jquery-1.7.1.min.js"></script> <input type="button" id="btn" value="获取验证码"/> <script type="text/javascript"> var wait = resetWait = 60; function timer(t) { if (wait == 0) { t.removeAttribute("disabled"); t.value = "获取验证码"; wait = resetWait; } else { t.setAttribute("disabled", true); t.value = "重新发送(" + wait + ")"; wait--; setTimeout(function(){ timer(t) }, 1000); } } $("#btn").click(function () { timer(this); sendSMS(mobile, sendType); }); function sendSMS(mobile, sendType){ $.ajax({ type: 'POST', url: '/verify/index', data: {mobile: mobile, type: sendType}, success: function () { } }); } </script>
PC端支付二维码,通过手机扫码支付成功,PC端跳转到支付成功页面,需要定时心跳检测支付状态
<script type="text/javascript"> var wait = resetWait = 3; timer(); function timer() { if (wait == 0) { wait = resetWait; checkChanged(); } else { wait--; } setTimeout(function(){ timer() }, 1000); } function checkChanged() { $.ajax({ type: 'POST', url: '/verify/index', datatype:'json', success: function (data) { if (data.status == 1) { window.location.href = 'http://www.baidu.com'; } } }); } </script>
短信表设计
$content ="您的短信验证码:461930,30分钟有效,请尽快完成验证,请妥善保存,勿泄露!";
CREATE TABLE `sms_verify` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `mobile` varchar(20) NOT NULL COMMENT '手机号', `verify_code` varchar(6) NOT NULL COMMENT '验证码数字', `user_id` int(11) NOT NULL DEFAULT '0' COMMENT '用户id', `type` smallint(2) NOT NULL DEFAULT '0' COMMENT '0注册 1忘记密码 2登录 10修改密码', `create_time` int(10) NOT NULL DEFAULT '0' COMMENT '创建时间', `update_time` int(10) NOT NULL DEFAULT '0' COMMENT '使用时间', `expire_time` int(10) NOT NULL DEFAULT '0' COMMENT '失效时间', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;
当给注册手机发送一个验证码之后,该手机以前其他的没有过期的注册验证码都设置成过期。
后端60秒内只能发一次的验证(防止恶意消耗短信),过期验证,手机号验证等。
//发送短信验证码 public function addVerifyInfo($mobile, $verify_code, $type, $user_id = 0) { //todo 发码把之前的设为过期 $this->where(['mobile' => $mobile, 'type' => $type, 'user_id' => $user_id, 'expire_time' => 0, 'update_time' => 0])->data(['expire_time' => time()])->save(); $id = $this->data(['mobile' => $mobile, 'type' => $type, 'verify_code' => $verify_code, 'user_id' => $user_id])->add(); //todo send sms to mobile $id && D("Message", "Logic")->smsVerifyCode($mobile, $verify_code); } //短信验证码否过期 public function checkVerifyNotExpired($mobile, $verify_code, $type, $expire_time, $user_id = 0) { return $this->where(['mobile' => $mobile, 'type' => $type, 'verify_code' => $verify_code, 'user_id' => $user_id, 'create_time' => ['egt', $expire_time]])->find(); } //超过60秒能发短信 public function canSendVerifyOverSeconds($mobile, $type, $user_id = 0, $seconds = 60) { $createtime_stamp = $this->where(['mobile' => $mobile, 'type' => $type, 'user_id' => $user_id])->order('create_time desc')->getField('create_time'); return $createtime_stamp < (time() - $seconds); }
相关推荐
在这个特定的案例中,我们讨论的是2016年七夕情人节的倒计时代码,这是一个利用Canvas API实现的特殊时钟应用。 首先,我们需要了解HTML5 Canvas的基本结构。在HTML中,`<canvas>`标签定义了一个画布,开发者可以...
在Android应用中,计时器常用于倒计时、心跳检测、自动刷新数据等场景。例如,在游戏应用中,可以使用计时器实现定时刷新游戏状态;在聊天应用中,可以设置心跳检测保持连接状态;在新闻阅读应用中,可以设定自动...
【jQuery浪漫结婚倒计时页面代码详解】 在网页设计中,倒计时功能常常用于创建紧张、期待或浪漫的氛围,比如在结婚庆典这样的特殊场合。这个“jQuery浪漫的结婚倒计时页面代码”就是一个很好的例子,它为即将举行的...
在iOS开发中,`NSTimer` ...理解并熟练运用`NSTimer`对于iOS开发中的各种定时需求至关重要,无论是倒计时、心跳检测还是UI刷新,`NSTimer`都是一个实用的工具。通过实践和调试,你可以更好地掌握其工作原理和使用技巧。
此外,还可以结合其他UI元素和业务逻辑,实现更丰富的功能,如倒计时、心跳检测等。 总之,这个压缩包中的代码实例是一个基础的VC++计时器应用,对于初学者来说,可以作为学习MFC计时器使用的起点,通过阅读和运行...
这在需要持续监控时间流逝的场景中非常实用,比如系统心跳检测。 3. **用户定义的计数模式**:计时器允许用户自定义计数模式,例如递增或递减计数,以及不同频率的计数。这种灵活性使得计时器可以适应各种不同的...
在实际开发中,计时器常常用于实现如心跳检测、定时刷新数据、倒计时等功能。理解并熟练掌握C#计时器的使用,能极大地提高代码的灵活性和效率。 通过学习本教程提供的"第02章课件(完整版)-计时器",你可以进一步...
这可能涉及到JavaScript的定时器来检查客户端活动,并在检测到会话即将过期时触发WebSocket连接向服务器发送心跳,服务器则返回一个确认消息,或者在没有收到心跳时关闭连接并触发遮罩层。 7. **WebSocket的使用...
它们广泛应用于各种场景,如定时任务执行、超时检测、倒计时等。在Python中,可以使用`threading.Timer`类来创建定时器;在Java中,有`java.util.Timer`和`java.util.concurrent.ScheduledExecutorService`等实现。...
4. **实例应用**:教程中的实例可能涵盖了如何创建一个简单的计时器,例如倒计时、心跳检测、定时提醒等。通过设置合适的`Interval`和处理`Tick`事件,你可以实现各种定时功能。 5. **多线程考虑**:在使用`System....
通过理解和掌握C#中的`Timers`,你可以创建各种基于时间的逻辑,例如定期备份、心跳检测、倒计时等,极大地丰富了你的应用程序功能。在实际项目中,灵活运用这些定时器类,能够提高代码的可维护性和可扩展性。
以下示例展示了如何创建两个独立的定时器,分别显示倒计时和心跳动画: ```html <div id="timer1">0 <div id="timer2">Loading... ``` ```javascript function startCountdown() { var countdown = 10; ...
3. **实时反馈系统**:在多人在线游戏中,可以设定定时发送心跳包,检测服务器连接状态,及时向玩家反馈网络状况。 四、总结 `nodecg-timetools-bundle`作为NodeCG生态中的重要组件,其提供的高效时间管理工具对...
- **提高要求**:改进走时精度,增加日期显示,实现倒计时和整点报时,以及定时功能。 3. **电平感觉检测仪** - **基本要求**:使用光电式摇晃传感器,通过脉冲计数来测量人体平衡感,测试时长1分钟。 4. **便携...
4. **游戏服务器**: 游戏中的各种定时事件,如冷却时间、倒计时等。 综上所述,ttimer库通过分层定时轮算法实现了高效的定时任务管理,对于需要处理大量并发定时事件的系统来说,它是一个值得考虑的选择。其设计...
在QQForm中,timer控件可能被用来实现定时器功能,例如倒计时、心跳检测或者定期刷新界面信息。 对于C#初学者来说,学习编写代码的风格也是非常重要的。代码风格不仅影响程序的可读性和可维护性,还反映了编程者的...
1秒定时器的应用广泛,如倒计时、数据刷新、心跳检测等。 万年历,正如其名,是能够显示至少几千年日期的系统,涵盖了公历、农历等多种日历类型。在编程中实现万年历需要处理复杂的日期计算,包括闰年规则、月份...
在应用程序中,定时器常用于实现倒计时、定期执行某项操作(如轮询、心跳检测)等功能。定时器可以分为硬件定时器和软件定时器,硬件定时器通常由芯片提供,与CPU紧密相连,而软件定时器则是通过软件算法模拟的定时...
总的来说,理解JavaScript中的Date对象和定时器是开发Web应用时不可或缺的基础知识,它们在各种场景中都有广泛的应用,如计时器、倒计时、心跳检测等。通过深入学习和实践,我们可以更好地利用这些工具来创建高效、...
首先,定时器的主要作用是调度任务,比如心跳检测、技能冷却、倒计时等,这些都需要一个精确的超时机制来实现。在服务端编程中,通常有两种处理网络事件和时间事件的方式:一种是将它们放在同一个线程中处理,如...