PHP實現用戶登錄頁面


PHP學習日常,放在上面記錄一下咯
我用了bootstrap框架,這樣的界面要好看一點
登錄頁面:
image.png
必須用戶名、密碼、驗證碼都輸入正確才能登錄成功喔,否則出現下面提示
image.png
image.png
登陸成功之后,登錄和注冊選項切換為用戶昵稱和注銷選項:
image.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>
//模態框
<div id="loginer" class="modal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel1"
     aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
            <div 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>
            </div>
            <form id="form_login" class="form-horizontal">
                <div class="modal-body">
                    <div class="form-group has-feedback">
                        <label class="col-sm-3 control-label" for="zh1">用戶名:</label>
                        <div class="col-sm-9 require">
                            <input type="text" class="form-control" name="username" id="zh1"
                                   pattern="\w{6,10}" required>
                        </div>
                    </div>
                    <div class="form-group has-feedback">
                        <label class="col-sm-3 control-label" for="pw1">密碼:</label>
                        <div class="col-sm-9 require">
                            <input type="password" pattern="\w{6,10}" class="form-control" name="pwd" id="pw1"
                                   required>
                        </div>
                    </div>
                    <div class="form-group has-feedback">
                        <label class="col-sm-3 control-label" for="yzm">驗證碼:</label>
                        <div class="col-sm-5 require">
                            <input type="text" pattern="\d{4}" class="form-control" name="yzm" id="yzm"
                                   required>
                        </div>
                        <div class="col-sm-4">
                            <img src="php/idcode.php" alt="">
                        </div>
                    </div>
                    <div class="form-group has-feedback">
                        <label id="info" class="col-sm-4 control-label pull-left"></label>
                    </div>
                </div>
                <div class="modal-footer">
                    <button type="submit" class="btn btn-primary">登錄</button>
                    <button type="button" class="btn btn-default" data-dismiss="modal">關閉</button>
                </div>
            </form>
        </div>
    </div>
</div>

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['username'])){
   /* 判斷用戶會話里用戶名是否存在,即用戶是否登錄*/
    $json['nc']=$_SESSION['nc'];/*把昵稱存起來,一會返回給首頁*/
    $json['flag']=true;/*用戶已經登錄,標志flag為true*/
}else
    $json['flag']=false;/*用戶已經登錄,標志flag為true*/
echo json_encode($json);/*返回json*/

login.php(登錄):

<?php
include_once ("connect.php");
session_start();/*開啟會話*/
$user=$_GET['username'];/*獲取登錄表單提交過來的數據*/
$pwd=$_GET['pwd'];
$yzm=$_GET['yzm'];
if($yzm==$_SESSION['vCode']){/*當用戶輸入的驗證碼和圖片驗證碼相同時*/
    $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);//返回結果

上面登錄頁面的驗證碼在我的另一篇文里面,需要的小伙伴可以看一下:
https://www.jianshu.com/p/7473f5bdd9c0


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM