获取验证码效果和后台代码(js+html+cs)
客户端js+html代码
- <script type="text/javascript">
- var tcode = 0;//定时器返回代码
- //获得验证码
- function GetVerifyCodeAction() {
- var email = $("#email").val();
- if (!checkEmail(email)) {
- $("#area_error").addClass("log-tips").show().text(EmailFormatIsFault);//邮箱格式错误
- }
- else {
- $.ajax({
- type: "post",
- async: false,
- url: "/Handler/SendMsgToMail.ashx",
- data: { op: 12, email: email },
- success: function (result) {
- var data = parseInt(result);
- switch (data) {
- case 1:
- $("#area_error").addClass("log-tips").show().text(CheckVerifyCode);//验证码已发送,请注意查收
- $("#btnSendCode").removeAttr("onclick");//移除发送验证码的click事件
- tcode = setInterval("ReSend()", 1000);//设置定时器,60秒后容许再次发送
- break;
- case -1:
- $("#area_error").addClass("log-tips").show().text(FillEmail);//请输入邮箱
- break;
- case -2:
- $("#area_error").addClass("log-tips").show().text(MailNotReg);//邮箱尚未注册
- break;
- case -3:
- $("#area_error").addClass("log-tips").show().text(OperateException);//操作异常
- break;
- case -4:
- $("#area_error").addClass("log-tips").show().text(OperateException);//操作异常
- break;
- case -5:
- $("#area_error").addClass("log-tips").show().text(OnceMinute);//每分钟只能发送一次
- break;
- default:
- $("#area_error").addClass("log-tips").show().text(OperateException);//操作异常
- break;
- }
- }
- });
- }
- return false;
- }
- //点击进入下一步
- function GoNext() {
- $("#area_error").removeClass("log-tips").text("").hide();
- var email = $("#email").val();
- if (!checkEmail(email)) {
- $("#area_error").addClass("log-tips").show().text(EmailFormatIsFault);//邮箱格式不正确
- return false;
- }
- var vcode = $("#verify").val();
- if (vcode == "") {
- $("#area_error").addClass("log-tips").show().text(FillVerifyCode);//请输入验证码
- return false;
- }
- //判断验证码是否正确
- $.ajax({
- type: "post",
- url: "/Handler/Members.ashx",
- data: { op: 14, email: email, vcode: vcode },
- success: function (result) {
- if (result == "-1") {
- $("#area_error").addClass("log-tips").show().text(VCodeIsNotAvailable);//验证码已失效
- }
- if (result == "1") {
- window.location = "forgot_password.aspx?email=" + email + "&vcode=" + vcode;
- }
- }
- });
- }
- //定时器
- function ReSend() {
- var Wait60Second="60秒后重发";
- var TotalCount = $("#hf_timecount").val();
- TotalCount = TotalCount - 1;
- $("#hf_timecount").val(TotalCount);
- if (TotalCount == 0) {
- ReSetSendMail();
- }
- else {
- $("#btnSendCode").text(Wait60Second.replace("60", TotalCount));
- }
- }
//重新附加发送邮箱事件- function ReSetSendMail() {
- clearInterval(tcode);
- $("#hf_timecount").val("60");
- $("#btnSendCode").text("获取验证码");
- $("#btnSendCode").attr("onclick", "GetVerifyCodeAction()");
- }
- </script>
<input id="hf_timecount" value="60" type="hidden" />
<input type="text" name="email" id="email" />
<button type="button" id="btnSendCode" onclick="GetVerifyCodeAction()">获取验证码</button>
<input type="text" name="verify" id="verify" />
<input type="button" id="btn_next" value="下一步" onclick="GoNext()"/>
服务端代码:
- /// <summary>
- /// 发送邮件
- /// </summary>
- /// <param name="context"></param>
- /// <returns></returns>
- public string SendMail(HttpContext context)
- {
- try
- {
- if (!string.IsNullOrEmpty(CookiesHelper.getCookie("send_mail_limit")))
- {
- return "-5";//每分钟只能发送一次
- }
- string email = context.Request["email"];
- if (string.IsNullOrEmpty(email) || !CommonHelper.IsValidEmail(email))
- {
- return "-1";//传值为空
- }
- //判断邮件是否存在
- BLL.Web.Member bllMember = new BLL.Web.Member();
- int mailCount = bllMember.GetCountByEmail(email);
- Models.Web.Member member = bllMember.GetModelByEmail(email);
- if (mailCount == 0 || member == null)
- {
- return "-2";//不存在
- }
- string vcode = CommonHelper.RandCode(8);
- Models.Web.VerifyCode model = new Models.Web.VerifyCode();
- model.v_code = vcode;
- model.v_createdate = DateTime.Now;
- model.v_enddate = DateTime.Now.AddHours(2);
- model.v_status = 0;
- model.v_email = email;
- BLL.Web.VerifyCode bllVC = new BLL.Web.VerifyCode();
- int no = bllVC.Append(model);
- if (no > 0)
- {
- string sendText = "";
- string tempPath = context.Server.MapPath("~/EmailTemp/ModifyPwd.txt");
- using (StreamReader sr = new StreamReader(tempPath))
- {
- sendText = sr.ReadToEnd();
- }
- sendText = sendText.Replace("{UserName_CH}", member.PersnalName);
- sendText = sendText.Replace("{UserName_EN}", member.PersnalName);
- sendText = sendText.Replace("{VCode}", vcode);
- CommonHelper.SendEmail(email, sendText, Resource.Lang.RetrievePassword);
- CookiesHelper.setCookie("send_mail_limit", "SendMail", 1.00);
- }
- else
- {
- return "-3";//验证码生成异常,请重试!
- }
- return "1";//成功
- }
- catch (Exception)
- {
- return "-4";//异常
- }
- }
获取验证码效果和后台代码(js+html+cs)的更多相关文章
- 获取验证码,60秒倒计时js
<input type="button" id="btn" value="免费获取验证码" /><script type= ...
- Android 获取验证码倒计时实现
Android 获取验证码倒计时实现 2017年10月24日 09:55:41 FBY展菲 阅读数:2002 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.cs ...
- [RN] React Native 获取验证码 按钮
React Native 获取验证码 按钮 效果如图: 实现方法: 一.获取验证码 按钮组件 封装 CountDownButton.js "use strict"; import ...
- day80:luffy:短信sdk接入&点击获取验证码&注册功能的实现&Celery实现短信发送功能
目录 1.短信sdk接入 2.前端点击获取验证码效果 3.注册后端接口实现 4.注册-前端 5.Celery 6.Celery完成短信发送功能 1.短信sdk接入 1.准备工作 1.下载云通讯相关的文 ...
- JQuery 获取验证码倒计时
HTML代码: <button id="btn">点击获取验证码</button> Jquery:代码: $(document).ready(functio ...
- selenium+Python3.5获取验证码
其中PIL为Python Imaging Library,已经是Python平台事实上的图像处理标准库了.PIL功能非常强大,但API却非常简单易用. PIL第三方库安装 pip install PI ...
- 用户点击获取验证码之后我们会发送一条信息到用户手机,然后就会出现一个倒计时按钮,很像支付宝手机付款效果了,下面我给大家分享两个js效果
js代码 代码如下 复制代码 <div class="input"> <input type="button" id="bt ...
- js获取验证码 秒表效果(原创)
<script src="http://code.jquery.com/jquery-latest.js"></script> <input type ...
- Angular.js 使用获取验证码按钮实现-倒计时
获取验证码界面效果如图: 需要实现以下逻辑 按钮不可选 --输入电话号码,按钮可选 --点击获取,进入倒计时,按钮不可选 --倒计时结束,回到初识状态 核心代码: var cd = 60; var t ...
随机推荐
- mysql更新(七) MySQl创建用户和授权
14-补充内容:MySQl创建用户和授权 权限管理 我们知道我们的最高权限管理者是root用户,它拥有着最高的权限操作.包括select.update.delete.update.grant等操作 ...
- js-传送file
这是选择文件的标签 <input type="file" class="add-image-input"> 这是js实现传输文件 var addIm ...
- python学习笔记一和PHP的一些对比
python和php一样是 解释性语言 php和php一样 定义变量不需要指定类型,C语言中的print函数 在python中也是适用的 python编码 适用缩进 4个空格,通常存储为UTF-8模 ...
- jQuery ajax - serializeArray() 方法
定义和用法 serializeArray() 方法通过序列化表单值来创建对象数组(名称和值). 您可以选择一个或多个表单元素(比如 input 及/或 textarea),或者 form 元素本身. ...
- yii 执行sql
sql $sql = "SELECT ".join(',', $this->search_fields_channel)." FROM {{chan ...
- border做三角符号
用border做三角符号以及其他图形 ;; border-width:20px 10px; border-style:solid; border-color:#ff3300 #ff3300 #ffff ...
- Mysql 日期类型 date、datetime、timestamp.
三种: date.datetime.timestamp. date : 格式 "YYYY-MM-DD" ,范围 "1000-00-00"到"9999 ...
- SpringMvc 文件上传后台处理
springMVC后台参数是通过MultipartFile类来转化Request的文件上传,但需要apache下fileupload的jar包做支持. 在springMVC的dispatcher-co ...
- DrawDib 使用例子<转>
#include<vfw.h>#pragma comment(lib,"Vfw32.lib") BITMAPINFOHEADER biHeader; memset(&a ...
- 9 python 多态与多态类
1.多态定义 多态指的是一类事物的多种形态 比如动物有多种形态:人,狗,猪 import abc class Animal(metaclass=abc.ABCMeta): @abc.abstractm ...