PHP实现用户登录页面

PHP学习日常,放在上面记录一下咯
我用了bootstrap框架,这样的界面要好看一点
登录页面:



必须用户名、密码、验证码都输入正确才能登录成功喔,否则出现下面提示




登陆成功之后,登录和注册选项切换为用户昵称和注销选项:

登陆成功之后:
登录成功之后

选择注销:



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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,980评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,178评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,868评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,498评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,492评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,521评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,910评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,569评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,793评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,559评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,639评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,342评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,931评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,904评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,144评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,833评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,350评论 2 342

推荐阅读更多精彩内容