手机验证码注册,登录
//前端登录页面表单及javascript+ajax传输
<input type="text" name="nickname" placeholder="请输入名称" class="login-password">
<input type="text" name="mobile" placeholder="请输入手机号" class="login-password">
<input type="text" class="reg-yzm" name="tel_code" maxlength="6" placeholder="输入验证码" />
<input type="button" οnclick="code();" id="login_time" class="yzm-hq" value="获取验证码" />
<input type="password" name="password" placeholder="请输入(6-16字母、数字、下划线)密码" class="login-password">
<input type="password" name="passwords" placeholder="确认密码" class="login-name">
<input type="button" class="login-btn" οnclick="check();" value="立即注册">
<script>
function check(){
var nickname = $('input[name = nickname]').val();
var mobile = $('input[name = mobile]').val();
var tel_code = $('input[name = tel_code]').val();
var password = $('input[name = password]').val();
var passwords = $('input[name = passwords]').val();
var url = "{:url('index/user/mobileReg')}";
var data = {'nickname':nickname,'mobile':mobile,'tel_code':tel_code,'password':password};
if(nickname == ''){
layer.open({
content: '请输入昵称',
skin: 'msg',
time: 2
});
return false;
}
if(!mobile.match(/^1[34578]\d{9}$/)){
layer.open({
content: '请输入正确的手机号',
skin: 'msg',
time: 2 //2秒后自动关闭
});
return false;
}
if(mobile == ''){
layer.open({
content: '请输入手机号',
skin: 'msg',
time: 2
});
return false;
}
if(tel_code == ''){
layer.open({
content: '请输入验证码',
skin: 'msg',
time: 2
});
return false;
}
if(password == '' || !password.match(/^(\w){6,16}$/)){
layer.open({
content: '请输入规范密码',
skin: 'msg',
time: 2
});
return false;
}
if(passwords == ''){
layer.open({
content: '请再次输入密码',
skin: 'msg',
time: 2
});
return false;
}
if(passwords != password){
layer.open({
content: '两次输入密码不一致',
skin: 'msg',
time: 2
});
return false;
}
$.post(url,data,function(result){
if(result.flag){
layer.open({
content: result.flag,
skin: 'msg',
time: 2
});
}else{
alert(result.success);
window.location.href=document.referrer;
}
},'json')
}
function code()
{
var mobile = $('input[name = mobile]').val();
var url = "{:url('index/user/code')}";
if(mobile == ''){
layer.open({
content: '手机号不能为空',
skin: 'msg',
time: 2
});
return false;
}
$.post(url,{'mobile':mobile},function(result){
if(result.flag){
layer.open({
content: result.flag,
skin: 'msg',
time: 2
});
}else{
layer.open({
content: result.success,
skin: 'msg',
time: 2
});
}
},'json');
$('#login_time').attr('disabled',true);
var num = 60;
function each()
{
num--;
if(num == 0)
{
$('#login_time').attr('disabled',false);
$('#login_time').val(' 获取验证码');
}else
{
$('#login_time').val('('+num+')');
$('#login_time').attr('disabled',true);
var time = setTimeout(each,1000); // 延时定时器是隔多长时间后,执行,并且只执行一次 所以,放在这是让内部的函数
}
}
var time = setTimeout(each,1000);
}
</script>
//在config.php中写
return[
'JHAPI'=>[
'key'=>'6e4b8c644************43b5f93d7f2', // 聚合数据短信验证api appkey
'tpl_id'=>'1***23', //聚合数据模板id
'company'=>'***网', //自定义
],
];
// 发送手机验证码
public function code(){
$param = $this->request->param();
// 调用配置文件
$API = config('JHAPI');
// 生成验证码
$code = mt_rand(1000,9999);
$smsConf = array(
'key' => $API['key'], //您申请的APPKEY
'mobile' => $param['mobile'], //接受短信的用户手机号码
'tpl_id' => $API['tpl_id'], //您申请的短信模板ID,根据实际情况修改
'tpl_value' =>urlencode('#code#='.$code.'&#company#='.$API['company'])
);
$data['mobile'] = $param['mobile'];
$data['code'] = $code;
$data['create_time'] = time();
$url = 'http://v.juhe.cn/sms/send?mobile='.$smsConf['mobile'].'&tpl_id='.$smsConf['tpl_id'].'&tpl_value='.$smsConf['tpl_value'].'&key='.$smsConf['key'];
//请求发送短信
// $result = curt_url($url);
$ch = curl_init();
$timeout = 5;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$contents = curl_exec($ch);
curl_close($ch);
$result = json_decode($contents,true);
if($result['error_code'] == 0){
Db::name('user_api')->insert($data);
echo json_encode(array('success'=>'发送成功'));
exit;
}else{
echo json_encode(array('flag'=>'发送失败,错误码:'.$result['error_code']));
exit;
}
}
//登录验证
public function mobileReg(){
$param = $this->request->param();
$res = Db::name('user_api')
->where(['mobile'=>$param['mobile']])
->order('create_time DESC')
->find();
if($res['mobile'] != $param['mobile']){
echo json_encode(['flag'=>'手机号有误']);
exit;
}
if($res['code'] != $param['tel_code']){
echo json_encode(['flag'=>'验证码有误']);
exit;
}
$difftime = time() - $res['create_time'];
if($difftime > 120){
echo json_encode(['flag'=>'验证码过期']);
exit;
}
$count = Db::name('user')
->where(['mobile'=>$param['mobile']])
->count();
if($count>0){
echo json_encode(['flag'=>'账号已存在']);
exit;
}else{
$data = [];
$data['usertype'] = 2;
// $data['last_login_ip'] = $_SERVER['HTTP_CLIENT_IP'];
$data['last_login_time'] = time();
$data['create_time'] = time();
$data['status'] = 1;
$data['mobile'] = $param['mobile'];
$data['nickname'] = $param['nickname'];
$data['password'] = $param['password'];
$result = Db::name('user')
->insertGetId($data);
if(is_numeric($result)){
echo json_encode(['success'=>'注册成功']);
exit;
}else{
echo json_encode(['flag'=>'注册失败']);
exit;
}
}
}
手机验证码注册,登录相关推荐
- springboot整合redis之用户手机验证码注册登录
目录 1搭建项目开发环境 1.1安装redis 1.1.1下载redis 1.1.2安装redis 1.1.3设置redis为windows服务 安装为windows服务 1.2启动idea 1.3增 ...
- Security实现手机验证码注册登录
准备工作: <!-- 导入security依赖 --> <dependency><groupId>org.springframework.boot</grou ...
- php 短信验证登录,短信验证码注册登录的实现,php接入的3种方法(附示例)
上周,有朋友需要帮忙做一个关于手机短信验证码注册登录的功能,之前没有做过,于是我查查资料,汇总出PHP接入短信验证码的3种方法,现在和大家分享: 1.cURL $curl = curl_init(); ...
- 手机验证码+Redis登录验证+token+登录拦截
手机验证码+Redis登录验证+token+登录拦截 文章目录 手机验证码+Redis登录验证+token+登录拦截 解决方案 思想 以阿里云为例 1.阿里云官网开通短信服务 2.创建签名 3.创建短 ...
- Python3版本Django实现免费手机验证码注册
Demo代码已放上GitHub,实现登录短信校验+极验验证 https://github.com/ChenJhua/TestLogin 打开网站互亿无线注册一个账号,有50条免费短信 登录进去后会有以 ...
- AXURE手机版注册登录原型(下载+教学)
今天给大家分享一套APP注册/登录界面模板,其中包括本机登录页面,短信验证登录页面,密码登录页面,人脸登录页面,微博.微信.QQ.支付宝登录页面,注册页面,用户协议和隐私条款.该原型使用简单,交互完善 ...
- Day 5-6 阿里云手机验证码及登录代码
短信服务 我们需要在阿里云官网进行注册登录 阿里云短信服务(Short Message Service)是广大企业客户快速触达手机用户所优选使用的通信能力.调用API或用群发助手,即可发送验证码.通知 ...
- 使用阿里云短信验证码API发送短信验证码(配置,获取短信验证码,注册,登录,密码重置)
获取阿里云短信验证码需要的配置信息. 如果是新用户,可以免费领取3个月,老用户的话就只能购买了,但是也不贵. 申请短信签名 申请短信模板 编写发送短信验证码的工具类 代码中我已经进行了详细的注释,也写 ...
- 使用容联云通讯实现手机验证码注册
添加Pom文件以及下lib下添加jar包 添加main方法测试,发送手机验证码 package javamaildemo;import java.util.HashMap; import java.u ...
最新文章
- java 进程100_原创:如何排查java进程cpu100%的问题
- datagridview 设置选中行_Excel实用两大技巧,删除重复行,神奇选择性粘贴
- 设置mac笔记本为固定ip
- ellen 纽奥良大学演讲
- Netty中的Future
- C和指针 第十四章 习题
- ios真机中Text组件出现多余边框
- 关键词组合工具_SEO学习:如何挖掘行业关键词?关键词挖掘策略和工具推荐
- 深信服桌面云的各种密码
- ssd测试软件寿命查看,SSD固态硬盘使用寿命检测方法 固态硬盘怎么测剩余寿命?...
- JavaWeb开发QQ动态表情-源文件
- 红帽子linux转中文后乱码,安装redhat时中文显示乱码(小方框)解决方法
- 《蜗居》100句台词 血淋淋的经典
- 计算机游戏如何产生娱乐效果,浅谈电脑游戏与信息技术教学
- Anaconda从C盘移动到D盘
- 哪款蓝牙耳机性价比最高?2023性价比高的蓝牙耳机推荐
- DS SIMULIA Antenna Magus Professional 2021.5
- 远程桌面从服务器拷文件出错
- (附源码)Node.js自我展示博客网站 毕业设计231547
- 如果宏安全性设置为“禁用所有宏,并且不通知”,将自动禁用所有宏。使用下列步骤可启用宏。