zoukankan      html  css  js  c++  java
  • PHP实现一个简陋的注册登录页面

    PHP实现一个简陋的注册登录页面

    今天来水一篇没有**用的 /滑稽脸,代码简陋臃肿考虑不全,各位大佬轻喷,还望不吝赐教。
    首先考虑了一下需要至少四个页面:register.htmlregister.phplogin.htmllogin.php
    register.html是这么写的:

    <!DOCTYPE html>
    <html>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <head>
        <title>注册界面</title>
    </head>
    <body>
        <form action="register.php" method="post">
            用户名:<input type="text" name="name"></input>
            <br />
            密码:<input type="password" name="password"></input>
            <br />
            <input type="submit" value="注册"></input>
        </form>
    </body>
    </html>
    

    register.php是这么写的:

    <?php
        header("Content-type:text/html;charset=utf-8");
        $conn=new mysqli('localhost','wy','000000','test');
        if ($conn->connect_error){
            die("服务器连接失败!");
        }
        $name=$_POST["name"];
        $password=$_POST["password"];
        $sql="insert into new_info values('$name',$password)";
        $res=$conn->query($sql);
        if(!$res){
            echo "注册失败!";
        }else{
                if($conn->affected_rows>0){
                    sleep(2);
                    header("Location:login.html");
                    exit;
                }else{
                    echo "注册失败";
                }
        }
        $conn->close();
    ?>
    

    login.html是这么写的:

    <!DOCTYPE html>
    <html>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <head>
        <title>登录界面</title>
    </head>
    <body>
        <p>注册成功,请登录!</p>
        <form action="login.php" method="post">
            用户名:<input type="text" name="name"></input>
            <br />
            密码:<input type="password" name="password"></input>
            <br />
            <input type="submit" value="登录"></input>
        </form>
    </body>
    </html>
    

    login.php是这么写的:

    <?php
        header("Content-type:text/html;charset=utf-8");
        $conn=new mysqli('localhost','wy','000000','test');
        if ($conn->connect_error){
            die("服务器连接失败!");
        }
        $name=$_POST["name"];
        $password=$_POST["password"];
        $sql_name="select name from new_info where name='$name'";
        $res_sql=$conn->query($sql_name);
        if($conn->affected_rows==0){
            die("账号或密码有误");
        }else{
            $sql_pass="select password from new_info where name='$name'";
            $res_pass=$conn->query($sql_pass);
            $row_pass=$res_pass->fetch_row();
            if($row_pass[0]==$password){
                echo "登录成功!";
            }else{
                echo "账号或密码有误";
            }
        }
        $conn->close();
    ?>
    

    然后来看一下效果:

    看一下数据库:

    可以看到已经将数据写入数据库。
    接着来登录试一下:

    换个错误密码试一下:

    2018-09-04 问题修正:

    1.用户密码加密
    2.数据库编码问题

    1.用户密码加密

    register.php页面:

    <?php
        header("Content-type:text/html;charset=utf-8");
        $conn=new mysqli('192.168.134.128','root','123456','test');
        if ($conn->connect_error){
            die("服务器连接失败!");
        }
        $name=$_POST["name"];
        $password=$_POST["password"];
        $password=md5($password);     //将用户输入的密码进行md5加密
        $sql="insert into test values('$name','$password')";
        $res=$conn->query($sql);
        if(!$res){
            echo "注册失败!";
       }else{
                if($conn->affected_rows>0){
                    sleep(2);
                    header("Location:login.html");
                }else{
                    echo "注册失败";
                }
        }
        $conn->close();
    ?>
    

    login.php页面:

    <?php
        header("Content-type:text/html;charset=utf-8");
        $conn=new mysqli('192.168.134.128','root','123456','test');
        if ($conn->connect_error){
            die("服务器连接失败!");
        }
        $name=$_POST["name"];
        $password=$_POST["password"];
        $password=md5($password);    //对用户输入的密码进行md5加密
        $sql_name="select name from test where name='$name'";
        $res_sql=$conn->query($sql_name);
        if($conn->affected_rows==0){
            die("账号或密码有误!");
        }else{
            $sql_pass="select password from test where name='$name'";
            $res_pass=$conn->query($sql_pass);
            $row_pass=$res_pass->fetch_row();
            if($row_pass[0]==$password){            //将用户输入的加密密码与数据库密码进行对比
                echo "登录成功!";
            }else{
                echo "账号或密码有误";
            }
        }
        $conn->close();
    ?>
    

    2.数据库编码问题
    在数据库执行set names utf8命令,将数据库编码改为utf8
    这样就可以使用中文名注册登录。

    2018-09-06 问题修正:

    用户注册或者登录时输入为空的问题

    register.php页面:

    <?php
        header("Content-type:text/html;charset=utf-8");
        $conn=new mysqli('192.168.134.128','root','123456','test');
        if ($conn->connect_error){
            die("服务器连接失败!");
        }
        $name=$_POST["name"];
        $password=$_POST["password"];
        if(empty($name) || empty($password)){             //判断注册时账号或密码是否为空
            die('账号或密码不能为空!');
        }else{
            $password=md5($password);
            $sql="insert into test values('$name','$password')";
            $res=$conn->query($sql);
            if(!$res){
                echo "注册失败!";
            }else{
                    if($conn->affected_rows>0){
                        sleep(2);
                        header("Location:login.html");
                    }else{
                        echo "注册失败";
                    }
            }
            $conn->close();
        }
    ?>
    

    login.php页面:

    <?php
        header("Content-type:text/html;charset=utf-8");
        $conn=new mysqli('192.168.134.128','root','123456','test');
        if ($conn->connect_error){
            die("服务器连接失败!");
        }
        $name=$_POST["name"];
        $password=$_POST["password"];
        if(empty($name) || empty($password)){           //判断登陆时账号或密码是否为空
            die('账号或密码不能为空!');
        }else{
            $password=md5($password);
            //var_dump($password);
            $sql_name="select name from test where name='$name'";
            $res_sql=$conn->query($sql_name);
            if($conn->affected_rows==0){
                die("账号或密码有误!");
            }else{
                $sql_pass="select password from test where name='$name'";
                $res_pass=$conn->query($sql_pass);
                $row_pass=$res_pass->fetch_row();
                if($row_pass[0]==$password){
                    echo "登录成功!";
                }else{
                    echo "账号或密码有误";
                }
            }
            $conn->close();
        }
        
    ?>
    

    代码臃肿,还望见谅。

  • 相关阅读:
    md5
    表空间
    create_index
    非额度合同和额度合同
    如何在linux中查找python安装包的路径
    Golang中的SingleFlight与CyclicBarrier
    linux安装protoc
    protobuf 的优缺点
    Xshell 连接 VirtualBox
    限制 input 输入框只能输入纯数字
  • 原文地址:https://www.cnblogs.com/Timesi/p/9349646.html
Copyright © 2011-2022 走看看