zoukankan      html  css  js  c++  java
  • PHP制作登录注册页面

    用PHP制作登录和注册页面,一共6个页面,三个可视页面:登录、注册、主页,三个处理页面:验证、添加用户、清除退出

    注册

    <!--这是注册页面d&z-2-z.php,用户可以提交用户名和密码进行注册,点击注册按钮提交给d&z-4-add.php页面处理-->
    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>无标题文档</title>
    </head>
    
    <body>
    
    <h1>注册</h1>
    <form action="d&z-4-add.php" method="post">    <!--from表单指定数据的接收文件为d&z-4-add.php,指定数据传输方式为post-->
    <div><label for="users">用户名</label><input type="text" name="users" id="users"></div><!--用户名栏-->
    <div><label for="pwd">密码</label><input type="password" name="pwd" id="pwd"></div><!--密码栏-->
    <div><label for="pwd2">确认密码</label><input type="password" name="pwdag" id="pwd2"></div><!--再次确认密码栏-->
    <input type="submit" value="注册" id="tj" onClick="return tiJiao()"><!--注册按钮,添加了点击事件,用来验证两次密码是否输入的相同-->
    </form>
    </body>
    <script type="text/javascript">
        var pwd = document.getElementById("pwd");    //分别获取密码和确认密码的表单元素
        var pwd2 = document.getElementById("pwd2");
        var bool = false;    //设置一个为非的变量
        
        /*
            tiJiao()函数用来判断两次密码输入的内容是否相同,相同则返回是,不同则输出提示并返回非
        */
        function tiJiao(){    
            if(pwd.value==pwd2.value){
                bool = true;    
            }else{
                alert("两次密码输入不同!");    
            }    
            return bool;
        }
    </script>
    </html>

    用户添加

    <?php 
        //这里是d&z-4-add.php,是d&z-2-z.php页面提交后跳转到的处理页面,处理结果又两种,添加数据成功则跳转到登录页面d&z-1-d.php,失败则输出提示“注册失败!”
        require_once("./DBDA.class.php");    //引入数据库连接类
        $db = new DBDA();    //实例化数据连接
        $users = $_POST["users"];    //接收传过来的用户名和密码数据
        $pwd = $_POST["pwd"];
        $arr = array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","i","s","t","u","v","w","x","y","z","1","2","3","4","5","6","7","8","9","0","*","#","@","$","%","&");//这是一个自定义的字符串数组
        $sjs0 = rand(0,41);    //设置变量从0到9取10个随机数,
        $sjs1 = rand(0,41);
        $sjs2 = rand(0,41);
        $sjs3 = rand(0,41);
        $sjs4 = rand(0,41);
        $sjs5 = rand(0,41);
        $sjs6 = rand(0,41);
        $sjs7 = rand(0,41);
        $sjs8 = rand(0,41);
        $sjs9 = rand(0,41);
        //设置秘钥,秘钥是用来提高加密级别的,是由以上自定义字符串数组中随机取出的10个字符组成的字符串,
        $miyao = "{$arr[$sjs0]}{$arr[$sjs1]}{$arr[$sjs2]}{$arr[$sjs3]}{$arr[$sjs4]}{$arr[$sjs5]}{$arr[$sjs6]}{$arr[$sjs7]}{$arr[$sjs8]}{$arr[$sjs9]}" ;
        $pwdjm = md5($pwd.$miyao);    //将秘钥拼接在传入的密码后面,然后用MD5方法进行加密
        $sql = "insert into d_z values('{$users}','{$pwdjm}','{$miyao}')";    //sql语句为:将用户名、加密后的MD5码、秘钥存入数据库
        $result = $db->query($sql,1);    //执行sql语句,增语句加上第二参数1,用$result接收结果
        if($result){                    //执行成功,跳转到登录页面d&z-1-d.php
            echo "<script type='text/javascript'>
                window.location.href='d&z-1-d.php';
            </script>";    
        }else{                            //执行失败,输出提示“注册失败!”
            echo "注册失败!";    
        }

    登录

    <!--这是登录的主页面d&z-1-d.php,用户可以输入用户名和密码,点击登录时跳转到d&z-5-yan.php做验证处理,还可以点击注册按钮去跳转到注册页面d&z-2-z.php-->
    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>无标题文档</title>
    </head>
    
    <body>
    <h1>登录</h1>
    <form action="d&z-5-yan.php" method="post"><!--from表单指定数据接收页面为d&z-5-yan.php,数据的传输方式为post-->
    <div><label for="users">用户名</label><input type="text" name="users" id="users"></div><!--用户名栏-->
    <div><label for="pwd">密码</label><input type="password" name="pwd" id="pwd"></div><!--密码栏-->
    <input type="submit" value="登录"><!--登录按钮-->
    <a href="d&z-2-z.php"><input type="button" value="注册"></a><!--注册按钮,添加a标签并指定跳转页面为d&z-2-z.php的注册页面-->
    </form>
    
    </body>
    </html>

    验证

    <?php
        //这里是d&z-5-yan.php,是登录页面d&z-1-d.php点击登录后跳转过来的处理页面
        session_start();     //开启session
        require_once("./DBDA.class.php");    //引入数据库访问类
        $db = new DBDA();
        $users = $_POST["users"];    //接收传过来的用户名和密码数据
        $pwd = $_POST["pwd"];
        $sql = "select * from d_z where users='{$users}' ";    //创建sql语句查询传入的用户名在数据库中的对应的数据
        $arr = $db->query($sql);    //执行sql语句并用$arr接收
        if(!empty($arr)){    //判断$arr是否为空
            $pwdjm = md5("{$pwd}{$arr[0][2]}");    //如果$arr不为空,重组MD5码
            if($pwdjm==$arr[0][1]){        //如果重组的MD5码和数据库中提取是MD5码相同,则验证成功,跳转到主页d&z-3-index.php,并且把传入的用户名存入$_SESSION["users"]中
                echo "<script type='text/javascript'>
                    window.location.href='d&z-3-index.php';
                </script>";    
                $_SESSION["users"] = $users; 
            }else{        //如果MD5码不匹配,则提示用户名和密码输入错误
                echo "用户名和密码错误!";    
            }
        }else{            //$arr为空说明没有对应的用户名,提示用户名不存在
            echo "用户名不存在!";    
        }    

    主页

    <!--这是主页页面d&z-3-index.php,是d&z-5-yan.php验证成功后跳转过来的页面,添加了防止绕过登录的方法-->
    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>无标题文档</title>
    </head>
    <?php
    //用来防止绕过登录的方法
        session_start();    //开启session
        if(empty($_SESSION["users"])){    //判断$_SESSION["users"]是否为空
            echo "<script type='text/javascript'>
                window.location.href='d&z-1-d.php';
            </script>";        //空则跳转回登录页面d&z-1-d.php
            exit;    //    停止执行后面的代码
        }
    ?>
    <body>
    <h1>欢迎光临</h1>    
    <a href="d&z-6-qing.php"><input type="button" value="退出"></a><!--退出登录按钮,点击跳转到处理页面d&z-6-qing.php-->
    </body>
    </html>

    退出清除

    <?php
    //这里是d&z-6-qing.php,作用是用来清除$_SESSION["users"]值,即退出登录
    session_start();     //开启session
    unset($_SESSION["users"]);    //清除$_SESSION["users"]值
    echo "<script type='text/javascript'>
                window.location.href='d&z-3-index.php';
            </script>";        //跳转到主页d&z-3-index.php,但由于没有了$_SESSION["users"]的值,会触发防止绕过登录方法,直接跳转到登录页面d&z-1-d.php
  • 相关阅读:
    小程序支付
    小程序传参
    git
    学习过程遇到问题的解决方法
    进程创建注意事项:函数及对应包
    进程创建:函数及对应包
    mac解决eclipse 端口占用问题
    暴力
    doc2vec
    Java正则表达式的解释说明
  • 原文地址:https://www.cnblogs.com/zxbs12345/p/8440029.html
Copyright © 2011-2022 走看看