给手机发验证码 综合使用 (忘记密码处理 php发验证码 重置用户密码)

本文详细介绍了手机验证码在重置密码过程中的应用。首先,通过前台页面获取手机号并利用Ajax发送请求;接着,后台生成验证码并保存,以便后续验证。验证码有效时间为10分钟,并限制每天最多发送5次。最后,前端确认新密码一致,后台执行密码重置操作。
摘要由CSDN通过智能技术生成

1、前台页面  提取手机号调用 jquery的ajax,到发送验证码

<title>找回密码 - 2015年xxx报名系统</title>
<meta name="description" content="2015年xxx报名系统">
<meta name="keywords" content="2015年xxx报名系统">
<link href="<?=base_url() ?>bootstrap/./pp/pp.css" rel="stylesheet" type="text/css">
<!--[if IE 7]>
<link rel="stylesheet" href="<?=base_url() ?>bootstrap/http://res.ppzuche.com/static/opt/css/font-awesome-ie7.min.css?v=4476c184">
<![endif]-->
<!-- loading patch drivers! @adam -->
<link rel="apple-touch-icon-precomposed" href="<?=base_url() ?>bootstrap/#static/img/apple-touch-icon-car.png">
<script type="text/javascript">

var InterValObj; //timer变量,控制时间
var count = 5; //间隔函数,1秒执行
var curCount;//当前剩余秒数

function validatemobile(mobile)
{
    if(mobile.length==0)
    {
       alert('请输入手机号码!');
       document.form1.mobile.focus();
       return false;
    }    
    if(mobile.length!=11)
    {
        alert('请输入有效的手机号码!');
        document.form1.mobile.focus();
        return false;
    }
    
    var myreg = /^(((13[0-9]{1})|159|153)+\d{8})$/;
    if(!myreg.test(mobile))
    {
        alert('请输入有效的手机号码!');
        document.form1.mobile.focus();
        return false;
    }
}

function sendMessage() {
   curCount = count;
  //设置button效果,开始计时
     $("#btnSendCode").attr("disabled", "true");
     $("#btnSendCode").val("请在" + curCount + "秒内输入验证码");
     InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次
    //向后台发送处理数据
     var mobile = document.getElementById("mobile").value;
     validatemobile(mobile);//验证手机号码正确性
     $.ajax({
       type: "POST", //用POST方式传输       
       url: '<?=base_url() ?>../member/send_code', //目标地址.
		 dataType: "json", //数据格式:JSON
       //data: "dealType=" + dealType +"&uid=" + uid + "&code=" + code,
	     data: "&a="+mobile,
       success: function(json){ 
			if(json.msgid==1){//成功的处理
				alert(json.html);
			}
			else if(json.msgid==2){//失败的处理
				alert(json.html);
			}
			else{
				alert(json.html);
			}
		 }
     });
}

//timer处理函数
function SetRemainTime() {
            if (curCount == 0) {                
                window.clearInterval(InterValObj);//停止计时器
                $("#btnSendCode")
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
可以按照以下步骤实现laravel6通过邮箱验证码实现忘记密码的功能: 1. 创建忘记密码页面和送邮件页面,包括输入框和送按钮。 2. 创建路由: ```php Route::get('forgot-password', 'ForgotPasswordController@showLinkRequestForm')->name('password.request'); Route::post('forgot-password', 'ForgotPasswordController@sendResetLinkEmail')->name('password.email'); ``` 3. 创建控制器: ```php php artisan make:controller ForgotPasswordController ``` 4. 在控制器中编写 showLinkRequestForm 方法和 sendResetLinkEmail 方法。 ```php public function showLinkRequestForm() { return view('auth.passwords.email'); } public function sendResetLinkEmail(Request $request) { $this->validateEmail($request); $user = User::where('email', $request->email)->first(); if (!$user) { return redirect()->back()->withErrors(['email' => '该邮箱未注册']); } $token = str_random(64); DB::table('password_resets')->insert([ 'email' => $request->email, 'token' => $token, 'created_at' => Carbon::now() ]); Mail::to($request->email)->send(new ResetPassword($token)); return redirect()->back()->with('success', '重置密码邮件已送,请注意查收'); } protected function validateEmail(Request $request) { $request->validate(['email' => 'required|email']); } ``` 5. 创建邮件模板: ```php php artisan make:mail ResetPassword --markdown=emails.reset_password ``` 6. 在邮件模板中编写重置密码邮件的内容: ```php @component('mail::message') # 重置密码 请点击以下按钮重置密码: @component('mail::button', ['url' => route('password.reset', ['token' => $token])]) 重置密码 @endcomponent 如果您没有请求重置密码,请忽略此邮件。 Thanks,<br> {{ config('app.name') }} @endcomponent ``` 7. 在 .env 文件中配置邮箱信息: ```php MAIL_DRIVER=smtp MAIL_HOST=smtp.qq.com MAIL_PORT=465 MAIL_USERNAME=youremail@qq.com MAIL_PASSWORD=yourpassword MAIL_ENCRYPTION=ssl MAIL_FROM_ADDRESS=youremail@qq.com MAIL_FROM_NAME="${APP_NAME}" ``` 8. 运行应用并测试重置密码功能。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蜗牛慢慢向上爬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值