怎么实现登录,怎么判断登录的内容跟注册的内容一样,看一下注释是在这里判断吗

来源:2-10 脚本

慕仰8079247

2022-01-07 10:15:33

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Document</title>

    <link rel="stylesheet" type="text/css" href="css/index.css">

</head>

<body>

    <div class="rigster">

        <p class="title" id="title">

            <span>登录</span>

            <span class="current">注册</span>

        </p>

        <div class="form">

            <div>

                <span>+86</span>

                <input type='text' name="user" id="user" placeholder="请输入注册·手机号码" autocomplete="off"/>

                <i id="user_icon"></i>

                <p class="info" id="user_info"></p>

            </div>

            <div>

                <input type="password" name="password" id="pwd" placeholder="请设置密码">

                <i id="pwd_icon"></i>

                <p id="pwd_info" class="info"></p>

            </div>

            <p class="button">

                <a href="javascript:void(0)" id="sigup-btn" class="btn show">注册</a>

                <a href="javascript:void(0)" id="login-btn" class="btn">登 录</a>

            </p>

        </div>

    </div>

    <script>

      

        var $ = {

    ajax:function(options){

        var xhr = null,          // XMLHttpRequest对象

            url = options.url,   // url地址

            method = options.method || 'get'// 传输方式,默认为get

            async = typeof(options.async) === "undefined"?true:options.async,

            data = options.data || null,      // 参数

            params = '',

            callback = options.success,       // ajax请求成功的回调函数                   

            error = options.error;

            // 将data的对象字面量的形式转换为字符串形式

            if(data){

                for(var i in data){

                    params += i + '=' + data[i] + '&';

                }

                params = params.replace(/&$/,"");

            }

            // 根据method的值改变url

            if(method === "get"){

                url += '?'+params;

            }

        if(typeof XMLHttpRequest != "undefined"){

            xhr = new XMLHttpRequest();

        }else if(typeof ActiveXObject != "undefined"){

            // 将所有可能出现的ActiveXObject版本放在一个数组中

            var xhrArr = ['Microsoft.XMLHTTP','MSXML2.XMLHTTP.6.0','MSXML2.XMLHTTP.5.0','MSXML2.XMLHTTP.4.0','MSXML2.XMLHTTP.3.0','MSXML2.XMLHTTP.2.0'];

            // 遍历创建XMLHttpRequest对象

            var len = xhrArr.length;

            for(var i = 0;i<len;i++){

                try{

                    // 创建XMLHttpRequest对象

                    xhr = new ActiveXObject(xhrArr[i]);

                    break;

                }

                catch(ex){


                }

            }

        }else{

            throw new Error('No XHR object availabel.');

        }

        xhr.onreadystatechange = function(){

            if(xhr.readyState === 4){

                if((xhr.status >=200 && xhr.status <300) || xhr.status === 304){

                    callback && callback(JSON.parse(xhr.responseText))

                }else{

                    error && error();

                }

            }

        }

        // 创建发送请求

        xhr.open(method,url,async);

        xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");

        xhr.send(params);

    },

    jsonp:function(){

        // 跨域

    }

}

        // $.ajax(

        //     {

        //         url:'http://127.0.0.1/register.php',

        //         method:'post',

        //         async:'false',

        //         data:{username:'13229594857',pwd:'32145667'},

              

               

        //        error:function(){


        //        }

            

        //     });

       var user=document.getElementById('user'),

       pwd=document.getElementById('pwd'),

       sigup=document.getElementById('sigup-btn'),

       userInfo=document.getElementById('user_info'),

       userIcon=document.getElementById('user_icon'),

       pwdInfo=document.getElementById('pwd_info'),

       login=document.getElementById('login-btn'),

       titles=document.getElementById('title').getElementsByTagName('span'),

       pwdreg=/^\w{5,12}$/,

       userreg=/^1[3578]\d{9}$/,

       pwdIcon=document.getElementById('pwd_icon'),

       isrepeat=false,

       isfort=false;


       function checkUser(){

           var userval=user.value;

        

        if(!userreg.test(userval)){

    userInfo.innerHTML="手机号无效";

    userIcon.className='none';

        }

        else{

            userInfo.innerHTML=""

            userIcon.className="ok"

            $.ajax({

                url:'http://localhost/rigster/server/isUserRepeat.php',

                method:"get",

                async:true,

                data:{username:userval },

              

                success:function(data){

                   

   if(data.code===1){

       userIcon.className='ok'

       isrepeat=false;

   }

   else if(data.code===0){

       userIcon.className='none';

       isrepeat=true;

       userInfo.innerHTML=data.msg;

   }else{

       userInfo.innerHTML='检测失败,请重试...';

   }

                }

              

            })

        }

       }

       //检测密码

       function checkpwd(){

           var pwdval=pwd.value;

          

           if(!pwdreg.test(pwdval)){

               pwdInfo.innerHTML="请输入5到12位的字母、数字即下划线";

               pwdIcon.className="none";

           }

           else{

            pwdInfo.innerHTML=""

               pwdIcon.className="ok"

           }

       }

       

       function register(){

           var user_val=user.value,

          

           pwd_val=pwd.value;

          

  if(userreg.test(user_val)&&pwdreg.test(pwd_val)&&!isrepeat){

$.ajax({

    url:"http://localhost/rigster/server/register.php",

    method:"post",

    data:{username:user_val,userpwd:pwd_val},

    success:function(data){

        alert('注册成功请登录')

        showlogin();

isfort=true;

user.value="";

pwd.value="";

    },

   

    error:function(){

        pwdInfo.innerHTML="注册失败,请重试!"

        isfort=false;

    }

})

  }

       }

       function loginbtn(){

           var user_val=user.value,

          

           pwd_val=pwd.value;

          

  if(userreg.test(user_val)&&pwdreg.test(pwd_val)&&!isfort){

$.ajax({

    url:"http://localhost/rigster/server/user.json",

    method:"post",

    data:{username:user_val,userpwd:pwd_val},

    success:function(data){

        alert('注册成功请登录')

      window.location.href="http://www.imooc.com"


user.value="";

pwd.value="";

    },

   

    error:function(){

        pwdInfo.innerHTML="注册失败,请重试!"

    }

})

  }

       }

       function showlogin(){

        titles[0].className="current";

titles[1].className="";

login.className="show";

sigup.className="" ;

userIcon.className='';

pwdIcon.className="";

if(!isfort){

//是在这里判断手机号和密码是不是已经注册了吗,当切换到登录的时候怎么实现不用判断用户名有没有重复,而是判断有没有注册

}

       }

       function showsigup(){

        titles[1].className="current";

titles[0].className="";

login.className="";

sigup.className="show" ;

       }

user.addEventListener('blur',checkUser,false);

//绑定事件,检测密码的有效性

pwd.addEventListener('blur',checkpwd,false);

sigup.addEventListener('click',register,false);

titles[0].addEventListener('click',showlogin,false);

titles[1].addEventListener('click',showsigup,false);

 login.addEventListener('click',loginbtn,false);

    </script>

</body>

</html>

css

*{

margin:0;

padding:0;

}


body{

background:#333;

}


.register{

width:300px;

height:270px;

margin:80px auto;

padding:15px 30px;

background:#eee;

border-radius:5px;

}


.title{

height:35px;

}


.title span{

font-size:16px;

font-weight:bold;

color:#666;

margin-right:30px;

cursor:pointer;

}


.title span.current{

color:#f00;

}


.form div{

width:290px;

height:30px;

border-radius:8px;

background:#fff;

margin-bottom:25px;

padding:8px 10px;

position:relative;

}


.form div span{

display:inline-block;

padding-top:8px;

padding-right:3px;

color:#666;

}


.form div input{

border:none;

outline:none;

font-size:17px;

color:#666;

background:none;

}


.form div i{

position:absolute;

width:16px;

height:16px;

right:12px;

top:14px;

}


.form div i.ok{

background:url(../img/icon.png) no-repeat 0 -67px;

}


.form div i.no{

background:url(../img/icon.png) no-repeat -17px -67px;

}


.form .info{

margin-top:22px;

color:#f00;

padding-left:2px;

}


.button{

padding-top:7px;

}


.button a{

display:none;

width:100%;

height:45px;

line-height:45px;

text-align:center;

text-decoration:none;

background:#f20d0d;

color:#fff;

border-radius:30px;

font-size:16px;

}


.button a.show{

display:block;

}






写回答

1回答

好帮手慕久久

2022-01-07

同学你好,解答如下:

1、判断登录的内容是否和“注册的内容”一致的具体逻辑,并不是我们做的。我们只需要把登录信息发给后端,后端会进行判断,然后把最终的判断结果返回给我们,比如“登录成功、用户未注册、登录信息不存在......”;我们拿到返回信息后,再做下一步操作。

2、登录的逻辑不需要在如下位置写:

https://img.mukewang.com/climg/61d7c8b60986c02507840362.jpg

showlogin这个方法,只是把登录界面显示出来。真正的登录逻辑,需要在点击登录按钮的时候触发,即需要在loginbtn方法中书写:

https://img.mukewang.com/climg/61d7c8f009ea2cc208390189.jpg

loginbtn方法中,只需要把登录信息传给后端就行,后端会返回我们验证后的信息:

https://img.mukewang.com/climg/61d7c92e09a3564d07590536.jpg

即具体的判断结果,不是我们决定的,而是后端查询数据库、做了一系列判断后返回给我们的。

我们的后端只是模拟的,功能并不完善,所以同学了解一下怎么操作就行。

祝学习愉快!

0

0 学习 · 14456 问题

查看课程