iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >vue加php怎么实现登陆
  • 941
分享到

vue加php怎么实现登陆

vuephp 2021-03-06 02:03:58 941人浏览 无得
摘要

本文操作环境:windows7系统,PHP7.1版,Dell G3电脑。Vue + php 做用户注册登录功能对于一款应用来说,最基本的就是用户的注册和登录功能,这篇博客就总结一下在vue项目中如何使用PHP来做用户的注册和登录功能。登录部

本文操作环境:windows7系统,PHP7.1版,Dell G3电脑。

Vue + php 做用户注册登录功能

对于一款应用来说,最基本的就是用户的注册和登录功能,这篇博客就总结一下在vue项目中如何使用PHP来做用户的注册和登录功能。

登录部分:

html
<div id="app" class="container">
   <div style="text-align:center;margin-top:60px;">
       <img src="../src/icon/vloGo.png" style="width:20rem;height:auto;" alt="">
   </div>
   <fORM class="form middle">
       <br>
       <div class="form-group">
           <input type="text" class="form-control input100" v-model="userid" placeholder="用户名 / 邮箱"/>
       </div>
       <div class="form-group">
           <input type="passWord" class="form-control input100" v-model="usercode" placeholder="密码" @keyup.13="login" />
       </div>
       <label class="errorMsg" v-if="errorFlag" v-cloak >{{ errorMsg }}</label>
       
       <div class="form-group btn100">
           <button type="button" @click="login" class="btn btn-primary btn100">登陆</button>
       </div>
       <div class="form-group btn100">
           <a href="./reGIStermobile.html" class="btn btn-default btn100">注册</a>
       </div>
       <h6 style="text-align:right;">
           <a href="./findpassword.html" style="margin-right:2rem;">找回密码</a>
       </h6>
       <hr>         
       <h6 style="text-align:center;margin-top:3rem;">
           <a style="margin-right:2rem;">© vchenzhe</a>
           <a href='Http://www.beian.gov.cn' style="text-decoration:none;color:black;" target='_blank'>闽ICP备19008574号-1</a>
       </h6> 
   </form>    
</div>
javascript
import $ from './js/Jquery.js';import './CSS/mobilecommon.css';import Vue from '../node_modules/vue/dist/vue.js';$(function(){
    var vm = new Vue({
        el:"#app",
        data:{
            userid:'',
            usercode:'',
            errorFlag:false,
            errorMsg:''
        },
        methods:{
            login(){
                var thisvue = this;
                if(thisvue.userid==''||thisvue.usercode=='')
                {
                    thisvue.errorMsg = '请输入用户名和密码';
                    thisvue.errorFlag = true;
                }
                else{
                    $.ajax({
                        type:'POST',
                        url:'../server/login.php',
                        data:{
                            userid:thisvue.userid,
                            usercode:thisvue.usercode                        },
                        success:function(res){
                            if(res[0].code==1)
                            {
                                thisvue.errorFlag = false;
                                window.location.href="./homemobile.html";
                            }
                            else{
                                thisvue.errorMsg = '账号或密码错误';
                                thisvue.usercode = '';
                                thisvue.errorFlag = true;
                            }
                        }
                    })

                }
            }
        }
    })})
PHP
<?php
	session_start();
	header('Content-Type:application/JSON; charset=utf-8');
	$myid = $_POST[userid]; 
	$mycode = md5($_POST[usercode]);
	if($myid!=''&&$mycode!='')
	{
		$conn = new Mysqli("localhost:3306", "root", "", "personal");
		if ($conn != null) 
		{
			$sql = "select * FROM user_login where user_id='$myid' or user_mail = '$myid' ";
			$result =$conn->query($sql);
	  		$resArray = mysqli_fetch_array($result); 		
	  		if($resArray["user_password"] == $mycode)
	  		{
				$_SESSION['chenzhe_user_id'] = $resArray['user_id'];
				$result_array[0] = ['code'=>'1','msg'=>'登陆成功'];
				echo json_encode($result_array);
	  		}
	  		else
	  		{
				$result_array[0] = ['code'=>'0','msg'=>'用户名或密码输入错误'];
				echo json_encode($result_array);
	  		}
			$conn->close();
		}
	}
	else
	{
		$result_array[0] = ['code'=>'0','msg'=>'请输入用户名或密码'];
		echo json_encode($result_array);
	}
	?>

注册部分

HTML
<div class="container" style="margin-top:2rem;" id="app">
        <ol class="breadcrumb btn100">
            <li><a href="./indexmobile.html">返回</a></li>
            <li class="active">注册</li>
        </ol>
        <p class="errorMsg" v-if="errorFlag==1" v-cloak >{{errorMsg}}</p>
        <form class="form" id="registerForm">	
            <div class="form-group has-feedback">
                <input type="text" @keyup="testUserIdFunc" v-model="userid" name="userid" minlength=9  maxlength=16  class="form-control input100" placeholder="用户名" required>
                <span v-show="testUserId" class="glyphicon glyphicon-ok form-control-feedback" aria-hidden="true" style="color:#5cb85c;"></span>
              </div>
              <div class="form-group">
                <input type="text" v-model="username" name="username" maxlength=10  class="form-control input100" placeholder="昵称" required>
              </div>

              <div class="form-group has-feedback ">
                <input type="password" @keyup="readInfo" v-model="usercode"  name="usercode" minlength=9 maxlength=20  class="form-control input100"  placeholder="密码" required>
                <span v-show="testpass" class="glyphicon glyphicon-ok form-control-feedback" aria-hidden="true" style="color:#5cb85c;"></span>
              </div>
              
              <div class="form-group has-feedback ">
                <input type="password" @keyup="readInfo" v-model="usercodes" name="checkusercode" maxlength=20  class="form-control input100"  placeholder="确认密码" required>
                <span v-show="testpass" class="glyphicon glyphicon-ok form-control-feedback" aria-hidden="true" style="color:#5cb85c;"></span>
              </div>
    
              <div class="form-group has-feedback ">
                <input type="email" @keyup="testmailFunc" v-model="usermail" name="usermail"  class="form-control input100"  placeholder="邮箱" required>
                <span v-show="testmail" class="glyphicon glyphicon-ok form-control-feedback" aria-hidden="true" style="color:#5cb85c;"></span>
              </div>
              <div class="form-group btn100" style="display:flex;" >
                <input type="number" v-model="code" class="form-control"  placeholder="验证码" required>
                <button  v-if="testUserId==0||testpass==false||usermail==''||testmail==false"  type="button" class="btn btn-default btn80 btn-disabled" disabled style="margin-left:1rem;">获取验证码</button>
                <button v-show="btnGetCode==0" v-if="testUserId==1&&testpass==true&&usermail!=''&&testmail==true"  type="button" class="btn btn-default btn80" @click="getCode" style="margin-left:1rem;">获取验证码</button>
                <button v-show="btnGetCode==1" type="button" class="btn btn-disabled btn80" disabled style="margin-left:1rem;">已发送({{ clock }}s)</button>
              </div>
            
            <div class="btn100">
                <button type="button" class="btn btn-primary btn100" @click="register">注册</button>
            </div>
        </form>

        <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="false">
          <div class="modal-dialog">
              <div class="modal-content">
                  <div class="modal-header">
                      <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
                      <h4 class="modal-title" id="myModalLabel">消息</h4>
                  </div>
                  <div class="modal-body">
                      {{ errorMsg }}
                  </div>
                  <div class="modal-footer">
                      <button type="button" class="btn btn-primary"  data-dismiss="modal">确认</button>
                  </div>
              </div><!-- /.modal-content -->
          </div><!-- /.modal -->
        </div>

        <h6 style="text-align:center;margin-top:3rem;">
            <a href="./index.html" style="margin-right:2rem;">电脑版</a>
            <a href='http://www.beian.gov.cn' style="text-decoration:none;color:black;" target='_blank'>闽ICP备19008574号-1</a>
        </h6> 
    </div>
Javascript
import $ from './js/jquery.js';import './css/mobilecommon.css';import Vue from '../node_modules/vue/dist/vue.js';$(function(){
    var vm = new Vue({
        el:"#app",
        data:{
            errorMsg:'',
            errorFlag:0,
            //填写注册信息
            userid:'',
            username:'',
            usercode:'',
            usercodes:'',
            usermail:'',
            //验证注册信息
            code:'',
            btnGetCode:0, //用于判断当前是否获取了一次验证码,默认是0,获取一次后改成1
            testcode:0, //用于判断当前是否完成了验证码验证,默认是0,验证通过是1
            clock:60,
            testUserId:false,//检测当前用户名是否已经注册
            testpass:false,//检测密码安全
            testmail:false, //检测邮箱是否被注册过了


        },
        methods:{
            testUserIdFunc(){ //检测用户名是否已经注册
                var thisvue = this;
                var testall = /^[a-zA-Z][a-zA-Z0-9]*$/; //只能是数字和字母
                if(thisvue.userid=='')
                {
                    thisvue.testUserId = false;
                    return 0;
                }
                else if(!testall.test(thisvue.userid)) //检测英文和数字
                {
                    this.errorFlag = 1;
                    this.errorMsg = '用户名必须以英文开头,且只能由英文和数字组成';
                }
                else if(thisvue.userid.length<9)
                {
                    thisvue.errorFlag = 1;
                    thisvue.errorMsg = '用户名长度须在9-16之间';
                    thisvue.testUserId = false;
                    return 0;
                }    
                else{
                    $.ajax({
                        type:'POST',
                        url:'../server/testUserId.php',
                        data:{
                            user_id:thisvue.userid                        },
                        success:function(res)
                        {
                            if(res.code==1)
                            {
                                thisvue.testUserId = true;
                                thisvue.errorFlag = 0;
                            }
                            else{
                                thisvue.testUserId = false;
                                thisvue.errorFlag = 1;
                                thisvue.errorMsg = res.msg;
                            }
                        }
                    })
                }
            },
            readInfo(){ //检索密码安全等
                var result = 1;
                var testall = /^(?!\d+$)[\da-zA-Z]+$/; //只能是数字和字母
                if(this.usercode.length<9) //检测长度
                {
                    this.errorFlag = 1;
                    this.errorMsg = '密码长度须在9-20个字符,只能由英文和数字组成';
                    result = 0;
                }
                else if(!testall.test(this.usercode)) //检测英文和数字
                {
                    this.errorFlag = 1;
                    this.errorMsg = '密码只能使用英文+数字,且不能为纯数字';
                    result = 0;
                
                }
                else if(this.usercode!=this.usercodes)
                {
                    this.errorFlag = 1;
                    this.errorMsg = '两次密码输入不一致';
                    result = 0;
                    
                }
                
                
                if(result==1)
                {
                    this.errorFlag = 0;
                    this.testpass = 1;//如果密码验证成功,则通过
                } 
                return result;
            },
            register(){
                var thisvue = this;
                if(thisvue.usermail==''||thisvue.code=='')
                {
                    thisvue.errorMsg = '你还没有进行邮箱验证';
                    thisvue.errorFlag = 1;
                }
                else{
                    thisvue.verifyCode();
                    $.ajax({
                        url:'../server/register.php',
                        type:'POST',
                        data:$("#registerForm").serialize(),
                        success:function(res)
                        {
                            if(res.code==1)
                            {
                                window.location.href = 'indexmobile.html';
                            }
                            else{
                                thisvue.errorMsg = '注册失败';
                                thisvue.errorFlag = 1;
                            }
                        }
                    })
                }                
            },
            getCode(){ //获取验证码
                if(this.userid==''||this.username==''||this.usercode==''||this.usercodes==''||this.usermail=='')
                {
                    this.errorFlag = 1;
                    this.errorMsg = '请填写全部的信息后获取验证码';
                }
                else if(this.usercode!=this.usercodes)
                {
                    this.errorFlag = 1;
                    this.errorMsg = '两次密码输入不一致';
                }
                else{
                    var thisvue = this;
                    thisvue.btnGetCode = 1; //把获取验证码按钮禁用
                    var timer1 = setInterval(function(){thisvue.clock=thisvue.clock-1;},1000);
                    setTimeout(function(){
                        clearInterval(timer1);
                        thisvue.btnGetCode=0;
                        thisvue.clock=60;
                    },60000);
                    //发送邮件
                    $.ajax({
                        type:'POST',
                        url:'../server/mail/sendMail.php',
                        async:false,
                        data:{
                            address:thisvue.usermail                        },
                        success:function(res)
                        {
                            if(res.code==1)
                            {
                                thisvue.errorFlag = 1;
                                thisvue.errorMsg = '我们发送了一封邮件到你的邮箱,请尽快验证' 
                            }
                        }
                    })
                }
            },
            verifyCode(){ //验证验证码
                var thisvue =this;
                if(thisvue.code>100000&&thisvue.code<999999)
                {
                    $.ajax({
                        type:'POST',
                        url:'../server/mail/verifyCode.php',
                        data:{code:thisvue.code},
                        success:function(res)
                        {
                            if(res.code=='1')
                            {
                                thisvue.testcode=1;
                            }
                            else{
                                thisvue.errorFlag=1;
                                thisvue.errorMsg='验证码不正确,请重新输入';
                                return 0;
                            }
                        }
                    })
                }
            },
            testmailFunc(){
                var thisvue = this;
                if(this.usermail!=''&&this.usermail.indexOf('@')!='')
                {
                    $.ajax({
                        type:'POST',
                        url:'../server/testmail.php',
                        data:{
                            user_mail:thisvue.usermail                        },
                        success:function(res){
                            if(res.code==1)
                            {
                                thisvue.testmail = true;
                                thisvue.errorFlag = 0;
                            }
                            else{
                                thisvue.testmail = false;
                                thisvue.errorFlag = 1;
                                thisvue.errorMsg = '此邮箱已被注册,换个邮箱试试吧';
                            }
                        }
                    })
                }
            }
        }
    })})
<?php
session_start();
	header('Content-Type:application/json; charset=utf-8');
	$myid = $_POST[userid];
	$mycode = md5($_POST[usercode]);
	$myname = $_POST[username];
	$mymail = $_POST[usermail];
	$gm = 'vchenzhecom';
	$conn = new mysqli("47.106.190.129:3306", "root", "52F7cbad94f2", "personal");
	$test = "SELECT * FROM user_login WHERE `user_id` = '$myid'";
	$testResult = $conn->query($test);
	if(mysqli_num_rows($testResult)==0)
	{
		$path="/home/www/htdocs/carelesswhisper/src/img/".$myid; //判断目录存在否,存在给出提示,不存在则创建目录
		if (is_dir($path)){
			$result = ['code'=>'1','msg'=>'覆盖用户目录']; 
		}
		else{//第三个参数是“true”表示能创建多级目录,iconv防止中文目录乱码
			$res=mkdir(iconv("UTF-8", "GBK", $path),0777,true); 
			$result = ['code'=>'1','msg'=>'注册成功'];
		}
		$conn->query(" INSERT INTO user_login VALUES('$myid','$mycode','$myname','$mymail','imageFile/image.jpg','未填','未填','未填','未填','0') ");
		$conn->query("INSERT INTO personal_follow VALUES('$gm','$myid',1,'2019',0)");
		$conn->query("INSERT INTO personal_follow VALUES('$myid','$gm',1,'2019',0)");
		$conn->close();
		
	}
	else{
		$result = ['code'=>'0','msg'=>'此用户名已被使用']; 
	}
	$_SESSION['code']='';
	echo json_encode($result);
	?>

以上就是vue加php怎么实现登陆的详细内容,更多请关注编程界其它相关文章!

--结束END--

本文标题: vue加php怎么实现登陆

本文链接: https://www.lsjlt.com/news/827.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • vue加php如何实现登陆
    这篇文章主要讲解了“vue加php如何实现登陆”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue加php如何实现登陆”吧!vue加php实现登录的方法:1、创建登录部分的代码文件;2、创建...
    99+
    2023-06-22
  • vue实现登陆功能
    本文实例为大家分享了vue实现登陆功能的具体代码,供大家参考,具体内容如下 最近在学习vue,发现了vue的好多坑,比如怎么更好的获取input框输入的值而减少获取dom节点的消耗 ...
    99+
    2024-04-02
  • Vue实现登陆跳转
    本文实例为大家分享了Vue实现登陆跳转的具体代码,供大家参考,具体内容如下 不说废话,先上效果图~ 具体的实现方法,参照以下步骤~ 1.创建login.vue,绘制logi...
    99+
    2024-04-02
  • PHP怎么实现用户登陆功能
    本篇内容主要讲解“PHP怎么实现用户登陆功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PHP怎么实现用户登陆功能”吧!一.简介由于 Session 是以文本文件形式存储在服务器端的,所以不怕...
    99+
    2023-06-03
  • Vue如何实现登陆跳转
    这篇文章主要讲解了“Vue如何实现登陆跳转”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Vue如何实现登陆跳转”吧!效果图具体的实现方法,参照以下步骤~1....
    99+
    2024-04-02
  • vue如何实现登陆页面
    这篇文章主要介绍“vue如何实现登陆页面”,在日常操作中,相信很多人在vue如何实现登陆页面问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue如何实现登陆页面”的疑惑有所帮助!接下来,请跟着小编一起来学习吧...
    99+
    2023-06-30
  • 怎么使用vue cli实现项目登陆页面
    这篇文章主要介绍“怎么使用vue cli实现项目登陆页面”,在日常操作中,相信很多人在怎么使用vue cli实现项目登陆页面问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么使用vue&n...
    99+
    2023-07-04
  • vue实现登陆页面开发实践
    目录一、input的校验没有可说的,记住俩点,一个控制输入长度,一个控制格式。二、验证码逻辑:组件使用的是vant ui,具体用法可去官网看。 分几个部分考虑, 一、输入框input...
    99+
    2024-04-02
  • vue项目实现登陆注册效果
    本文实例为大家分享了vue项目实现登陆注册效果的具体代码,供大家参考,具体内容如下 主要内容 本章目标:vue+element-ui完成注册以及登陆 1.效果展示 2.视图页面:...
    99+
    2024-04-02
  • Vue实战记录之登陆页面的实现
    目录1 前期准备1.1 安装Node.js1.2 安装webpack1.3 安装vue-cli2 搭建Vue项目2.1 创建项目2.2 项目目录2.3 导入Element UI3 实...
    99+
    2024-04-02
  • Laravel怎么实现登陆过期后跳转到登陆页面
    这篇文章主要讲解了“Laravel怎么实现登陆过期后跳转到登陆页面”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Laravel怎么实现登陆过期后跳转到登陆页面”吧!一、应用场景:用户登陆后存...
    99+
    2023-07-04
  • ssh,scp怎么实现自动登陆
    这篇文章主要讲解了“ssh,scp怎么实现自动登陆”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“ssh,scp怎么实现自动登陆”吧!示例:A为本地主机(即用于控制其他主机的机器) ;B为远程...
    99+
    2023-06-09
  • PHP用Session实现用户登陆功能
    目录一、启动 Session 会话,并创建一个 $admin 变量:二、验证提交数据三、判断是否登陆:四、如果要登出系统怎么办?销毁 Session 即可。五、设置生存周期对比起Co...
    99+
    2022-12-22
    php登录 session用户登陆
  • Java怎么实现微信授权登陆
    Java怎么实现微信授权登陆?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。通过微信接口获取code微信获取code接口: https://open.weixin...
    99+
    2023-06-15
  • nodejs怎么实现登陆验证功能
    这篇文章主要介绍“nodejs怎么实现登陆验证功能”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“nodejs怎么实现登陆验证功能”文章能帮助大家解决问题。登陆验证需要提交数据,一种使用form表单提...
    99+
    2023-06-30
  • Token登陆验证机制怎么实现
    这篇文章主要介绍“Token登陆验证机制怎么实现”,在日常操作中,相信很多人在Token登陆验证机制怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Token登陆验证机制怎么实现”的疑惑有所帮助!接下来...
    99+
    2023-06-21
  • Java编写怎么实现登陆窗口
    本文小编为大家详细介绍“Java编写怎么实现登陆窗口”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java编写怎么实现登陆窗口”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。要求:用户名和密码正确后进入首页,错误...
    99+
    2023-06-30
  • Vue怎么实现用户访问没有登陆时自动跳转登录页面
    这篇文章主要介绍了Vue怎么实现用户访问没有登陆时自动跳转登录页面的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue怎么实现用户访问没有登陆时自动跳转登录页面文章都会有所收获,下面我们一起来看看吧。设计思路定...
    99+
    2023-07-05
  • 登陆云服务器怎么登陆
    注册云服务器 首先,您需要注册一个云服务器帐户。云服务器通常提供多种服务,如数据库、Web服务器、应用程序服务器等。您需要选择适合您需求的服务,并按照服务提供商的说明进行注册。在注册时,您需要提供您的个人信息,如姓名、联系方式和密码。...
    99+
    2023-10-27
    服务器 陆云
  • WinForm中怎么实现登陆认证功能
    在WinForm中实现登陆认证功能的一种常用方法是使用对话框来让用户输入用户名和密码,然后与预先存储的用户名和密码进行比较来验证用户...
    99+
    2024-04-08
    winform
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作