203 lines
7.9 KiB
PHP
203 lines
7.9 KiB
PHP
<?php
|
||
|
||
include("../includes/common.php");
|
||
|
||
if($conf['reg_open']==0)sysmsg('未开放商户申请');
|
||
|
||
$csrf_token = md5(mt_rand(0,999).time());
|
||
$_SESSION['csrf_token'] = $csrf_token;
|
||
?>
|
||
<!DOCTYPE html>
|
||
<html lang="zh-CN">
|
||
<head>
|
||
<meta charset="utf-8" />
|
||
<title>找回密码 | <?php echo $conf['sitename']?></title>
|
||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
|
||
<link rel="stylesheet" href="//cdn.staticfile.org/twitter-bootstrap/3.3.7/css/bootstrap.min.css" type="text/css" />
|
||
<link rel="stylesheet" href="//cdn.staticfile.org/animate.css/3.5.2/animate.min.css" type="text/css" />
|
||
<link rel="stylesheet" href="//cdn.staticfile.org/font-awesome/4.7.0/css/font-awesome.min.css" type="text/css" />
|
||
<link rel="stylesheet" href="//cdn.staticfile.org/simple-line-icons/2.4.1/css/simple-line-icons.min.css" type="text/css" />
|
||
<link rel="stylesheet" href="./assets/css/font.css" type="text/css" />
|
||
<link rel="stylesheet" href="./assets/css/app.css" type="text/css" />
|
||
<style>input:-webkit-autofill{-webkit-box-shadow:0 0 0px 1000px white inset;-webkit-text-fill-color:#333;}img.logo{width:14px;height:14px;margin:0 5px 0 3px;}</style>
|
||
</head>
|
||
<body>
|
||
<div class="app app-header-fixed ">
|
||
<div class="container w-xxl w-auto-xs" ng-controller="SigninFormController" ng-init="app.settings.container = false;">
|
||
<span class="navbar-brand block m-t" id="sitename"><?php echo $conf['sitename']?></span>
|
||
<div class="m-b-lg">
|
||
<div class="wrapper text-center">
|
||
<strong>找回密码</strong>
|
||
</div>
|
||
<form name="form" class="form-validation">
|
||
<input type="hidden" name="csrf_token" value="<?php echo $csrf_token?>">
|
||
<div class="text-danger wrapper text-center" ng-show="authError">
|
||
</div>
|
||
<div class="list-group list-group-sm swaplogin">
|
||
<div class="list-group-item">
|
||
<select class="form-control" name="type">
|
||
<option value="email">使用邮箱找回</option><option value="phone">使用手机找回</option></select>
|
||
</div>
|
||
<div class="list-group-item">
|
||
<input type="text" name="account" placeholder="邮箱/手机号" class="form-control no-border" required>
|
||
</div>
|
||
<div class="list-group-item">
|
||
<div class="input-group">
|
||
<input type="text" name="code" placeholder="输入验证码" class="form-control no-border" required>
|
||
<a class="input-group-addon" id="sendcode">获取验证码</a>
|
||
</div>
|
||
</div>
|
||
<div class="list-group-item">
|
||
<input type="password" name="pwd" placeholder="请输入新密码" class="form-control no-border" required>
|
||
</div>
|
||
<div class="list-group-item">
|
||
<input type="password" name="pwd2" placeholder="请重新输入密码" class="form-control no-border" required>
|
||
</div>
|
||
</div>
|
||
<button type="button" id="submit" class="btn btn-lg btn-primary btn-block" ng-click="login()" ng-disabled='form.$invalid'>确认提交</button>
|
||
<a href="login.php" ui-sref="access.signup" class="btn btn-lg btn-default btn-block">返回登录</a>
|
||
</form>
|
||
</div>
|
||
<div class="text-center">
|
||
<p>
|
||
<small class="text-muted"><a href="/"><?php echo $conf['sitename']?></a><br>© 2016~2020</small>
|
||
</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<script src="//cdn.staticfile.org/jquery/3.3.1/jquery.min.js"></script>
|
||
<script src="//cdn.staticfile.org/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script>
|
||
<script src="../assets/layer/layer.js"></script>
|
||
<script src="../assets/js/jquery-qrcode.min.js"></script>
|
||
<script src="//static.geetest.com/static/tools/gt.js"></script>
|
||
<script>
|
||
function invokeSettime(obj){
|
||
var countdown=60;
|
||
settime(obj);
|
||
function settime(obj) {
|
||
if (countdown == 0) {
|
||
$(obj).attr("data-lock", "false");
|
||
$(obj).text("获取验证码");
|
||
countdown = 60;
|
||
return;
|
||
} else {
|
||
$(obj).attr("data-lock", "true");
|
||
$(obj).attr("disabled",true);
|
||
$(obj).text("(" + countdown + ") s 重新发送");
|
||
countdown--;
|
||
}
|
||
setTimeout(function() {
|
||
settime(obj) }
|
||
,1000)
|
||
}
|
||
}
|
||
var handlerEmbed = function (captchaObj) {
|
||
var sendto,type;
|
||
captchaObj.onReady(function () {
|
||
$("#wait").hide();
|
||
}).onSuccess(function () {
|
||
var result = captchaObj.getValidate();
|
||
if (!result) {
|
||
return alert('请完成验证');
|
||
}
|
||
var ii = layer.load(2, {shade:[0.1,'#fff']});
|
||
$.ajax({
|
||
type : "POST",
|
||
url : "ajax.php?act=sendcode2",
|
||
data : {type:type,sendto:sendto,geetest_challenge:result.geetest_challenge,geetest_validate:result.geetest_validate,geetest_seccode:result.geetest_seccode},
|
||
dataType : 'json',
|
||
success : function(data) {
|
||
layer.close(ii);
|
||
if(data.code == 0){
|
||
new invokeSettime("#sendsms");
|
||
layer.msg('发送成功,请注意查收!');
|
||
}else{
|
||
layer.alert(data.msg);
|
||
captchaObj.reset();
|
||
}
|
||
}
|
||
});
|
||
});
|
||
$('#sendcode').click(function () {
|
||
if ($(this).attr("data-lock") === "true") return;
|
||
type = $("select[name='type']").val();
|
||
sendto=$("input[name='account']").val();
|
||
if(type=='phone'){
|
||
if(sendto==''){layer.alert('手机号码不能为空!');return false;}
|
||
if(sendto.length!=11){layer.alert('手机号码不正确!');return false;}
|
||
}else{
|
||
if(sendto==''){layer.alert('邮箱不能为空!');return false;}
|
||
var reg = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/;
|
||
if(!reg.test(sendto)){layer.alert('邮箱格式不正确!');return false;}
|
||
}
|
||
captchaObj.verify();
|
||
});
|
||
};
|
||
$(document).ready(function(){
|
||
$("select[name='type']").change(function(){
|
||
if($(this).val() == 'email'){
|
||
$("input[name='account']").attr('placeholder','邮箱');
|
||
}else{
|
||
$("input[name='account']").attr('placeholder','手机号码');
|
||
}
|
||
});
|
||
$("select[name='type']").change();
|
||
$("#submit").click(function(){
|
||
if ($(this).attr("data-lock") === "true") return;
|
||
var type=$("select[name='type']").val();
|
||
var account=$("input[name='account']").val();
|
||
var code=$("input[name='code']").val();
|
||
var pwd=$("input[name='pwd']").val();
|
||
var pwd2=$("input[name='pwd2']").val();
|
||
if(account=='' || code=='' || pwd=='' || pwd2==''){layer.alert('请确保各项不能为空!');return false;}
|
||
if(pwd!=pwd2){layer.alert('两次输入密码不一致!');return false;}
|
||
if(type=='phone'){
|
||
if(account.length!=11){layer.alert('手机号码不正确!');return false;}
|
||
}else{
|
||
var reg = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/;
|
||
if(!reg.test(account)){layer.alert('邮箱格式不正确!');return false;}
|
||
}
|
||
var csrf_token=$("input[name='csrf_token']").val();
|
||
var ii = layer.load(2, {shade:[0.1,'#fff']});
|
||
$(this).attr("data-lock", "true");
|
||
$.ajax({
|
||
type : "POST",
|
||
url : "ajax.php?act=findpwd",
|
||
data : {type:type,account:account,code:code,pwd:pwd,csrf_token:csrf_token},
|
||
dataType : 'json',
|
||
success : function(data) {
|
||
$("#submit").attr("data-lock", "false");
|
||
layer.close(ii);
|
||
if(data.code == 1){
|
||
layer.alert(data.msg, {icon: 1}, function(){window.location.href="login.php"});
|
||
}else{
|
||
layer.alert(data.msg);
|
||
}
|
||
}
|
||
});
|
||
});
|
||
$.ajax({
|
||
// 获取id,challenge,success(是否启用failback)
|
||
url: "ajax.php?act=captcha&t=" + (new Date()).getTime(), // 加随机数防止缓存
|
||
type: "get",
|
||
dataType: "json",
|
||
success: function (data) {
|
||
console.log(data);
|
||
// 使用initGeetest接口
|
||
// 参数1:配置参数
|
||
// 参数2:回调,回调的第一个参数验证码对象,之后可以使用它做appendTo之类的事件
|
||
initGeetest({
|
||
width: '100%',
|
||
gt: data.gt,
|
||
challenge: data.challenge,
|
||
new_captcha: data.new_captcha,
|
||
product: "bind", // 产品形式,包括:float,embed,popup。注意只对PC版验证码有效
|
||
offline: !data.success // 表示用户后台检测极验服务器是否宕机,一般不需要关注
|
||
// 更多配置参数请参见:http://www.geetest.com/install/sections/idx-client-sdk.html#config
|
||
}, handlerEmbed);
|
||
}
|
||
});
|
||
});
|
||
</script>
|
||
</body>
|
||
</html>
|