首页 >后端开发 >PHP问题 >怎么使用php实现用户登录

怎么使用php实现用户登录

藏色散人
藏色散人原创
2021-09-14 10:01:428131浏览

php实现用户登录的方法:1、创建get.php文件,用于获取用户登录信息;2、创建login.php文件,用于实现登录功能;3、创建logout.php文件,用于实现用户注销功能即可。

怎么使用php实现用户登录

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

怎么使用php实现用户登录?

PHP学习日常,放在上面记录一下咯

我用了bootstrap框架,这样的界面要好看一点

登录页面:
image.png
必须用户名、密码、验证码都输入正确才能登录成功喔,否则出现下面提示
image.png
image.png
登陆成功之后,登录和注册选项切换为用户昵称和注销选项:
f57e0b74fd2060dd7f94003673eeba6.png

登陆成功之后:
3224384b771b2856a71c80dae355161.png

选择注销:
0bb4d9b9bd62912c38e294604ef5cf3.png

HTML代码:

  <link rel="stylesheet" href="css/bootstrap.css">
 	<style>
          li.toggle{
              display: block;
           }
          li.toggle1{
              display: none;
            }
        </style>
        <li class="toggle"><a data-toggle="modal" href="#loginer">登录</a></li>
        <li class="toggle"><a data-toggle="modal" href="#register">注册</a></li>
        <li class="toggle1"><a id="nicheng" href="##"></a></li>
        <li class="toggle1"><a id="logout" href="##">注销</a></li>
//模态框
<p id="loginer" class="modal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel1"
     aria-hidden="true">
    <p class="modal-dialog">
        <p class="modal-content">
            <p class="modal-header">
                <button type="button" class="close" data-dismiss="modal">
                    <span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
                <h4 class="modal-title">请登录</h4>
            </p>
            <form id="form_login" class="form-horizontal">
                <p class="modal-body">
                    <p class="form-group has-feedback">
                        <label class="col-sm-3 control-label" for="zh1">用户名:</label>
                        <p class="col-sm-9 require">
                            <input type="text" class="form-control" name="username" id="zh1"
                                   pattern="\w{6,10}" required>
                        </p>
                    </p>
                    <p class="form-group has-feedback">
                        <label class="col-sm-3 control-label" for="pw1">密码:</label>
                        <p class="col-sm-9 require">
                            <input type="password" pattern="\w{6,10}" class="form-control" name="pwd" id="pw1"
                                   required>
                        </p>
                    </p>
                    <p class="form-group has-feedback">
                        <label class="col-sm-3 control-label" for="yzm">验证码:</label>
                        <p class="col-sm-5 require">
                            <input type="text" pattern="\d{4}" class="form-control" name="yzm" id="yzm"
                                   required>
                        </p>
                        <p class="col-sm-4">
                            <img src="php/idcode.php" alt="">
                        </p>
                    </p>
                    <p class="form-group has-feedback">
                        <label id="info" class="col-sm-4 control-label pull-left"></label>
                    </p>
                </p>
                <p class="modal-footer">
                    <button type="submit" class="btn btn-primary">登录</button>
                    <button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
                </p>
            </form>
        </p>
    </p>
</p>

JS代码:

<script src="js/jquery-2.1.3.js"></script>
<script src="js/bootstrap.min.js"></script>
<script>
    function toggle(){
        $.getJSON("php/get.php",function (res) {
            if(res['flag']){
                $('li.toggle').hide();
                $('li.toggle1').show();
                $('#nicheng').html(res['nc'])
            }else {
                $('li.toggle').show();
                $('li.toggle1').hide();
            }
        });
    }
    toggle();
    $('#form_login').submit(function (e) {
        e.preventDefault();
        var data=$('#form_login').serialize();
        $.getJSON('php/login.php',data,function (res) {
            if(res==3){
                toggle();
                $('#loginer').modal('hide');
            }else if(res==2){
                $('#info').html('用户名或密码有误')
            }else {
                $('#info').html('验证码有误')
            }
        })
    });
    $('#logout').click(function () {
        confirm('确定要注销?');
        $.getJSON('php/logout.php',function (res) {
            if(res)toggle();
        })
    })
    </script>

connect.php(连接数据库):

<?php
$link=new PDO("mysql:host=localhost;port=3306;dbname=db","root","");
$link->query("set names utf8");

get.php(获取用户登录信息):

<?php
include_once ("connect.php");
session_start();/*开启会话*/
if (isset($_SESSION[&#39;username&#39;])){
   /* 判断用户会话里用户名是否存在,即用户是否登录*/
    $json[&#39;nc&#39;]=$_SESSION[&#39;nc&#39;];/*把昵称存起来,一会返回给首页*/
    $json[&#39;flag&#39;]=true;/*用户已经登录,标志flag为true*/
}else
    $json[&#39;flag&#39;]=false;/*用户已经登录,标志flag为true*/
echo json_encode($json);/*返回json*/

login.php(登录):

<?php
include_once ("connect.php");
session_start();/*开启会话*/
$user=$_GET[&#39;username&#39;];/*获取登录表单提交过来的数据*/
$pwd=$_GET[&#39;pwd&#39;];
$yzm=$_GET[&#39;yzm&#39;];
if($yzm==$_SESSION[&#39;vCode&#39;]){/*当用户输入的验证码和图片验证码相同时*/
    $result=$link->query("select * from `user` where username='$user' and pwd='$pwd'");
    $link = null;
    $row = $result->fetch();/*读取从数据库获取的数据*/
    if ($row) {/*如果数据存在,即用户登录成功*/
        $_SESSION['username'] = $row['username'];
        /*将用户名和昵称存在服务器,可以多个页面使用*/
        $_SESSION['nc'] = $row['nc'];
        $flag=3;
    }else{/*用户名或密码错误*/
        $flag=2;
    }
}else{/*验证码输入错误*/
    $flag=1;
}
echo $flag;

logout.php(注销):

<?php
session_start();
unset($_SESSION['username']);//销毁用户名
unset($_SESSION['nc']);//销毁昵称
echo json_encode(true);//返回结果

推荐学习:《PHP视频教程

以上是怎么使用php实现用户登录的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn