iotcat 4 years ago
parent 0060ca623a
commit f96b334e8c
  1. 34
      api/checkAccount.php
  2. 3
      api/emailCode.php
  3. 3
      api/smsCode.php
  4. 39
      api/verCode.php
  5. 19
      index.html
  6. 331
      js/login.js

@ -0,0 +1,34 @@
<?php
include './functions.php';
$redis = new redis();
$redis->connect('redis',6379);
$hash = $_REQUEST['hash'];
if(!isset($hash)) die();
if($redis->exists('account/'.$hash)){
$arr = json_decode($redis->get('account/'.$hash));
if(!$arr['isExist']){
$arr_t = $arr;
unset($arr_t['isExist']);
$cnn = db__connect();
db__pushData($cnn, "account", $arr_t);
$arr['isExist'] = true;
$redis->set('account/'.$arr['hash'], json_encode($arr));
}
echo json_encode(array("code"=> 200, "hash"=>$arr['hash'], "message" => "Verified successfully!"));
}else{
echo json_encode(array("code"=> 500, "message"=>"Error!!"));
}

@ -25,3 +25,6 @@ curl_setopt($curl, CURLOPT_URL, $url);
$res = curl_exec($curl);
curl_close($curl);
echo json_encode(array(
"code": 200
));

@ -26,3 +26,6 @@ curl_setopt($curl, CURLOPT_URL, $url);
$res = curl_exec($curl);
curl_close($curl);
echo json_encode(array(
"code": 200
));

@ -1,20 +1,57 @@
<?php
include './functions.php';
$redis = new redis();
$redis->connect('redis',6379);
$usr = $_REQUEST['usr'];
$code = $_REQUEST['code'];
$type = $_REQUEST['type'];
if(!isset($usr)) die();
if(!isset($code)) die();
if(!isset($type) || $type != 'tel' || $type != 'email') die();
if($redis->exists('vercode/'.$usr) && $redis->get('vercode/'.$usr) == $code){
echo json_encode(array("code"=> 200, "message" => "Verified successfully!"));
$cnn = db__connect();
if($type == 'tel'){
$res = db__getData($cnn, "account", "tel", $usr);
}else{
$res = db__getData($cnn, "account", "email", $usr);
}
if(count($res)){
$arr = $res[0];
$arr = array_merge($arr, array("isExist"=>true));
}else{
$arr = array(
"nickname"=>null,
"avatar"=>null,
"tel"=>null,
"email"=>null,
"hash"=> hash('sha256', $usr.$code.$type.time()),
"group"=>"client",
"comments"=>"From ushio-login",
"created_at"=>date("Y-m-d H:i:s", time()),
"updated_at"=>date("Y-m-d H:i:s", time())
);
if($type == 'tel'){
$arr['tel'] = $usr;
}else{
$arr['email'] = $usr;
}
$arr = array_merge($arr, array("isExist"=>false));
}
$redis->set('account/'.$arr['hash'], json_encode($arr));
echo json_encode(array("code"=> 200, "hash"=>$arr['hash'], "isExist"=>$arr['isExist'], "message" => "Verified successfully!"));
}else{
echo json_encode(array("code"=> 500, "message"=>"Error!!"));

@ -40,8 +40,9 @@
</div>
<div class="form1">
<p class="p-input pos">
<label for="num">邮箱</label>
<label for="num" id="lab_num">邮箱</label>
<input type="text" id="num">
<input type="number" id="num2" class="hide">
<span class="tel-warn num-err hide"><em>账号或密码错误,请重新输入</em><i class="icon-warn"></i></span>
</p>
<p class="p-input pos">
@ -51,20 +52,6 @@
<span class="time hide"><em>120</em>s</span>
<span class="tel-warn error hide">验证码错误</span>
</p>
</div>
<div class="form2 hide">
<p class="p-input pos">
<label for="num2">手机号</label>
<input type="number" id="num2">
<span class="tel-warn num2-err hide"><em>账号或密码错误</em><i class="icon-warn"></i></span>
</p>
<p class="p-input pos">
<label for="veri-code">输入验证码</label>
<input type="number" id="veri-code">
<a href="javascript:;" class="send">发送验证码</a>
<span class="time hide"><em>120</em>s</span>
<span class="tel-warn error hide">验证码错误</span>
</p>
</div>
<div class="reg_checkboxline pos">
<span class="z"><i class="icon-ok-sign boxcol" nullmsg="请同意!"></i></span>
@ -77,7 +64,7 @@
<a href="./getpass.html" class="y">忘记密码</a>
</div>-->
<button class="lang-btn off log-btn">登录</button>
<button class="lang-btn off log-btn">登录/注册</button>
<!--<div class="third-party">
<a href="#" class="log-qq icon-qq-round"></a>
<a href="#" class="log-qq icon-weixin"></a>

@ -1,5 +1,9 @@
$(function(){
var tab = 'account_number';
var usr = '';
var code = '';
var hash = '';
var timer;
// 选项卡切换
$(".account_number").click(function () {
$('.tel-warn').addClass('hide');
@ -7,8 +11,9 @@ $(function(){
checkBtn();
$(this).addClass("on");
$(".message").removeClass("on");
$(".form2").addClass("hide");
$(".form1").removeClass("hide");
$("#num2").addClass("hide");
$("#num").removeClass("hide");
$("#lab_num").html('邮箱');
});
// 选项卡切换
$(".message").click(function () {
@ -17,8 +22,9 @@ $(function(){
checkBtn();
$(this).addClass("on");
$(".account_number").removeClass("on");
$(".form2").removeClass("hide");
$(".form1").addClass("hide");
$("#num").addClass("hide");
$("#num2").removeClass("hide");
$("#lab_num").html('手机号');
});
@ -50,213 +56,95 @@ $(function(){
// 按钮是否可点击
function checkBtn()
{
$(".log-btn").off('click');
if (tab == 'account_number') {
var inp = $.trim($('#num').val());
var pass = $.trim($('#pass').val());
if (inp != '' && pass != '') {
if (!$('.code').hasClass('hide')) {
code = $.trim($('#veri').val());
if (code == '') {
$(".log-btn").addClass("off");
} else {
$(".log-btn").removeClass("off");
sendBtn();
}
} else {
$(".log-btn").removeClass("off");
sendBtn();
}
} else {
$(".log-btn").addClass("off");
}
} else {
var phone = $.trim($('#num2').val());
var code2 = $.trim($('#veri-code').val());
if (phone != '' && code2 != '') {
$(".log-btn").removeClass("off");
sendBtn();
} else {
$(".log-btn").addClass("off");
}
}
}
function checkAccount(username){
if (username == '') {
$('.num-err').removeClass('hide').find("em").text('请输入账户');
return false;
} else {
$('.num-err').addClass('hide');
return true;
}
}
function checkPass(pass){
if (pass == '') {
$('.pass-err').removeClass('hide').text('请输入密码');
return false;
} else {
$('.pass-err').addClass('hide');
return true;
}
}
function checkCode(code){
if (code == '') {
// $('.tel-warn').removeClass('hide').text('请输入验证码');
return false;
} else {
// $('.tel-warn').addClass('hide');
return true;
}
}
function checkPhone(phone){
var status = true;
if (phone == '') {
$('.num2-err').removeClass('hide').find("em").text('请输入手机号');
return false;
}
var param = /^1[34578]\d{9}$/;
if (!param.test(phone)) {
// globalTip({'msg':'手机号不合法,请重新输入','setTime':3});
$('.num2-err').removeClass('hide');
$('.num2-err').text('手机号不合法,请重新输入');
return false;
function checkTo(phone){
if(tab == 'account_number'){
var status = true;
if (phone == '') {
$('.num-err').removeClass('hide').find("em").text('请输入邮箱');
return false;
}
var param = /^([A-Za-z0-9_\-\.\u4e00-\u9fa5])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,8})$/;
if (!param.test(phone)) {
// globalTip({'msg':'手机号不合法,请重新输入','setTime':3});
$('.num-err').removeClass('hide');
$('.num-err').text('邮箱不合法,请重新输入');
return false;
}
}else{
var status = true;
if (phone == '') {
$('.num-err').removeClass('hide').find("em").text('请输入手机号');
return false;
}
var param = /^1[34578]\d{9}$/;
if (!param.test(phone)) {
// globalTip({'msg':'手机号不合法,请重新输入','setTime':3});
$('.num-err').removeClass('hide');
$('.num-err').text('手机号不合法,请重新输入');
return false;
}
}
$.ajax({
url: '/checkPhone',
type: 'post',
dataType: 'json',
async: false,
data: {phone:phone,type:"login"},
success:function(data){
if (data.code == '0') {
$('.num2-err').addClass('hide');
// console.log('aa');
// return true;
} else {
$('.num2-err').removeClass('hide').text(data.msg);
// console.log('bb');
status = false;
// return false;
}
},
error:function(){
status = false;
// return false;
}
});
return status;
}
function checkPhoneCode(pCode){
function checkCode(pCode){
if (pCode == '') {
$('.error').removeClass('hide').text('请输入验证码');
return false;
} else {
$('.error').addClass('hide');
$.get('/api/verCode.php?type='+((tab == 'account_number')?'email':'tel')+'&usr='+usr+'&code='+code, function(data){
if(data.code == 200){
hash = data.hash;
if(data.isExist){
$('.lang-btn').html('登录');
}else{
$('.lang-btn').html('注册');
}
var oTime = $(".form-data .time"),
oSend = $(".form-data .send"),
oEm = $(".form-data .time em");
clearInterval(timer);
oSend.text("验证成功");
oSend.css("color", 'green');
oSend.show();
oEm.text("120");
oTime.addClass("hide");
$(".log-btn").removeClass("off");
$('.error').addClass('hide')
}else{
$('.error').removeClass('hide').text('验证码错误!');
}
});
return true;
}
}
// 登录点击事件
function sendBtn(){
if (tab == 'account_number') {
$(".log-btn").click(function(){
// var type = 'phone';
var inp = $.trim($('#num').val());
var pass = $.md5($.trim($('#pass').val()));
if (checkAccount(inp) && checkPass(pass)) {
var ldata = {userinp:inp,password:pass};
if (!$('.code').hasClass('hide')) {
code = $.trim($('#veri').val());
if (!checkCode(code)) {
return false;
}
ldata.code = code;
}
$.ajax({
url: '/dologin',
type: 'post',
dataType: 'json',
async: true,
data: ldata,
success:function(data){
if (data.code == '0') {
// globalTip({'msg':'登录成功!','setTime':3,'jump':true,'URL':'http://www.ui.cn'});
globalTip(data.msg);
} else if(data.code == '2') {
$(".log-btn").off('click').addClass("off");
$('.pass-err').removeClass('hide').find('em').text(data.msg);
$('.pass-err').find('i').attr('class', 'icon-warn').css("color","#d9585b");
$('.code').removeClass('hide');
$('.code').find('img').attr('src','/verifyCode?'+Math.random()).click(function(event) {
$(this).attr('src', '/verifyCode?'+Math.random());
});;
return false;
} else if(data.code == '3') {
$(".log-btn").off('click').addClass("off");
$('.img-err').removeClass('hide').find('em').text(data.msg);
$('.img-err').find('i').attr('class', 'icon-warn').css("color","#d9585b");
$('.code').removeClass('hide');
$('.code').find('img').attr('src','/verifyCode?'+Math.random()).click(function(event) {
$(this).attr('src', '/verifyCode?'+Math.random());
});
return false;
} else if(data.code == '1'){
$(".log-btn").off('click').addClass("off");
$('.num-err').removeClass('hide').find('em').text(data.msg);
$('.num-err').find('i').attr('class', 'icon-warn').css("color","#d9585b");
return false;
}
},
error:function(){
}
});
} else {
return false;
}
});
} else {
$(".log-btn").click(function(){
// var type = 'phone';
var phone = $.trim($('#num2').val());
var pcode = $.trim($('#veri-code').val());
if (checkPhone(phone) && checkPass(pcode)) {
$.ajax({
url: '/plogin',
type: 'post',
dataType: 'json',
async: true,
data: {phone:phone,code:pcode},
success:function(data){
if (data.code == '0') {
// globalTip({'msg':'登录成功!','setTime':3,'jump':true,'URL':'http://www.ui.cn'});
globalTip(data.msg);
} else if(data.code == '1') {
$(".log-btn").off('click').addClass("off");
$('.num2-err').removeClass('hide').text(data.msg);
return false;
} else if(data.code == '2') {
$(".log-btn").off('click').addClass("off");
$('.error').removeClass('hide').text(data.msg);
return false;
}
},
error:function(){
}
});
} else {
$(".log-btn").off('click').addClass("off");
// $('.tel-warn').removeClass('hide').text('登录失败');
return false;
}
});
}
$.get('/api/checkAccount.php?hash='+hash, function(data){
if(data.code == 200){
tips.success({message: '登录/注册成功!'})
window.location.href="https://www.eee.dog/";
}else{
tips.warning({message: '登录/注册失败!'})
}
});
}
// 登录的回车事件
@ -268,42 +156,61 @@ $(function(){
$(".form-data").delegate(".send","click",function () {
var phone = $.trim($('#num2').val());
if (checkPhone(phone)) {
$.ajax({
url: '/getcode',
type: 'post',
dataType: 'json',
async: true,
data: {phone:phone,type:"login"},
success:function(data){
if (data.code == '0') {
} else {
}
},
error:function(){
}
});
if(tab == 'account_number'){
var to = $.trim($('#num').val());
}else{
var to = $.trim($('#num2').val());
}
if (checkTo(to)) {
var oTime = $(".form-data .time"),
oSend = $(".form-data .send"),
num = parseInt(oTime.text()),
oEm = $(".form-data .time em");
$(this).hide();
oTime.removeClass("hide");
var timer = setInterval(function () {
timer = setInterval(function () {
var num2 = num-=1;
oEm.text(num2);
if(num2==0){
clearInterval(timer);
oSend.text("重新发送验证码");
oSend.css("color", 'red');
oSend.show();
oEm.text("120");
oTime.addClass("hide");
}
},1000);
$.ajax({
url: '/api/'+((tab == 'account_number')?'email':'sms')+'Code.php',
type: 'get',
dataType: 'json',
async: true,
data: {email: to, tel: to},
success:function(data){
if (data.code == '200') {
} else {
clearInterval(timer);
oSend.text("重新发送验证码");
oSend.css("color", 'red');
oSend.show();
oEm.text("120");
oTime.addClass("hide");
}
},
error:function(){
clearInterval(timer);
oSend.text("重新发送验证码");
oSend.css("color", 'red');
oSend.show();
oEm.text("120");
oTime.addClass("hide");
}
});
}
});

Loading…
Cancel
Save