zoukankan      html  css  js  c++  java
  • 前端小白之每天学习记录----php(5)表单验证

    1.引入文件

    require  与 nclude 语句
    跟文件的路径
    eg:require( "./a.php" );
    2.新建一个数据库配置文件(新建config.php)
    <?php
        $config = array(
            'hostName' => 'localhost',//主机名
            'userPwd' => 'root',//用户密码
            'userName' => 'root', //用户名    
            'dbName' => 'company_info',//数据库名
            'code' => 'utf8'
        );
    ?>
    

    3.封装数据库连接(新建connect.php)

    <?php
        require( "./config.php" );//引入配置文件
    
        // $link = mysql_connect( "localhost", "root", "root" );
        // if( !$link ){
        //     die(mysql_error());
        // }
        // mysql_query( "set names utf8");
        // mysql_select_db( "company_info" );
    
        $link = mysql_connect( $config['hostName'], $config['userName'], $config['userPwd'] );
    
        if( !$link ){
            die(mysql_error());
        }
        mysql_query( "set names " .  $config['code'] );
        mysql_select_db( $config['dbName'] );
    
    ?> 
    4.简单的用户名格式验证(不涉及后台数据,新建onsubmit.html文件)
    因为后台数据的交互需要时间,所以先验证出正确格式的用户名,在去后台验证用户名密码是否正确。
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
        <script>
            window.onload =() => {
                let oForm = document.querySelector("#form");
                let oUser = document.querySelector("#user");
                //表单提交的时候, 会触发onsubmit事件
                oForm.onsubmit = () => {
                    // alert( '表单触发了提交事件' );
                    //阻止表单提交
                    // return false;
                    if( user.value.length == 0 ){//没输入是阻止提交
                        return false;
                    };
                    if( document.querySelector("#tip").innerHTML =='非法'){//用户名错误时阻止提交
                        return false;
                    }
                } 
    
                // oUser.onchange = () =>{
                oUser.onkeyup = () =>{
                    // alert(this + '
    ' + this.value);
                    // alert( oUser.value );
                    var re = /^w{6,20}$/;//匹配用户名的格式的正则:6-20位的非特殊字符---->更多匹配请自行百度
                    if( re.test( oUser.value ) ){
                        document.querySelector("#tip").innerHTML = '合法';
                    }else {
                        document.querySelector("#tip").innerHTML = '非法';
                    }
                }
            }
        </script>
    </head>
    <body>
       <form action="http://www.baidu.com/s" target="_blank" id="form">
            <input type="text" name="wd" id="user">
            <span id="tip"></span>
            <br>
            <input type="submit" value="提交数据到百度去" id="btn">
        </form> 
    </body>
    </html>
    5.用户名密码登录验证(后台验证)(新建login.php)
    <!DOCTYPE html>
    <html lang="en">
    
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <meta http-equiv="X-UA-Compatible" content="ie=edge">
      <title>Document</title>
      <link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
      <style>
        .reg-form {
          margin-top: 100px;
        }
      </style>
    </head>
    
    <body>
    
      <?php
    require( './connect.php' );//链接数据库
    ?>  
        <div class="container">
          <div class="row">
            <div class="tip"></div>
            <form class="form-horizontal reg-form" role="form" method="post">
              <!-- post 方式提交数据 -->
              <div class="form-group">
                <label for="firstname" class="col-md-2 control-label">用户名:</label>
                <div class="col-md-6">
                  <input type="text" class="form-control" id="user" name="user" placeholder="请输入用户名">
                </div>
              </div>
              <div class="form-group">
                <label for="lastname" class="col-md-2 control-label">密码</label>
                <div class="col-md-6">
                  <input type="password" name="pwd" class="form-control" id="pwd" placeholder="请输入密码">
                </div>
              </div>
              <div class="form-group">
                <div class="col-sm-offset-2 col-sm-10">
                  <button type="submit" class="btn btn-primary">登录</button>
                </div>
              </div>
            </form>
          </div>
        </div>
    
    <?php
    if( !empty( $_POST['user'] ) && !empty( $_POST['pwd'] ) ){//用户名密码非空
        $userName = $_POST['user'];
        $userPwd = $_POST['pwd'];
        $sql = "SELECT * FROM user_info WHERE user_name = '$userName' AND user_pwd = '$userPwd'"; 
        $res = mysql_query( $sql ); //查询用户名与密码
        if( $res && mysql_num_rows( $res ) ){   //判断用户名密码正确
            // header("Location:success.html");
            header("Location:http://www.baidu.com"); //用户名密码正确跳转到百度
    ?>
        <!-- <script>
            window.location.href = './success.html';
        </script> -->
    <?php
        }else {
            header("Location:error.html"); //用户名密码错误,跳转到失败页面
    ?>
        <!-- <script>
            window.location.href = './error.html';
        </script> -->
    <?php
        }
    }
    ?>
    </body>
    </html>
    

    6.注册验证用户名是否存在(新建reg.php)

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <meta http-equiv="X-UA-Compatible" content="ie=edge">
      <title>Document</title>
      <link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
      <style>
        .reg-form {
          margin-top: 100px;
        }
      </style>
    </head>
    
    <body>
    
      <?php
    require( './connect.php' );//链接数据库
    ?>
    
    
        <div class="container">
          <div class="row">
            <div class="tip"></div>
            <form class="form-horizontal reg-form" role="form" method="post">
              <div class="form-group">
                <label for="firstname" class="col-md-2 control-label">用户名:</label>
                <div class="col-md-6">
                  <input type="text" class="form-control" id="user" name="user" placeholder="请输入用户名">
                </div>
              </div>
              <div class="form-group">
                <label for="lastname" class="col-md-2 control-label">密码</label>
                <div class="col-md-6">
                  <input type="password" name="pwd" class="form-control" id="pwd" placeholder="请输入密码">
                </div>
              </div>
              <div class="form-group">
                <div class="col-sm-offset-2 col-sm-10">
                  <button type="submit" class="btn btn-primary">注册</button>
                </div>
              </div>
            </form>
          </div>
        </div>
    
        <?php
    if( !empty( $_POST['user'] ) && !empty( $_POST['pwd'] ) ){//用户名密码非空
        $userName = $_POST['user'];
        $userPwd = $_POST['pwd'];
        $sql = 'SELECT * FROM user_info WHERE user_name = "' . $userName . '"';
        $res = mysql_query( $sql );//查询用户名
        if( $res && mysql_num_rows( $res ) ){ //用户名存在
           ?>
            <script>
                document.querySelector(".tip").innerHTML = '你输入的用户名已经存在';
            </script> 
           <?php 
        }else { //用户名不存在,开始注册了
            $sql = "INSERT INTO user_info ( user_name, user_pwd ) VALUES( '$userName', '$userPwd' )";
            $res = mysql_query( $sql );
            if( $res !== false ){//判断语句执行情况
                ?>
            <script>
                document.querySelector(".tip").innerHTML = '用户名注册成功';
            </script> 
                <?php
            }else {
                ?>
            <script>
                document.querySelector(".tip").innerHTML = '用户名注册失败';
            </script> 
                <?php
            }
        }
    }
    ?>
    </body>
    </html>
    

     7.留言板(message.php)

    需要新建表massage (表有三列msg_id,title,content)

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
        <link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
        <style>
            .my-form {
                margin-top: 60px;
            }
        </style>
    </head>
    <body>
        <div class="container">
            <div class="row">
                <div class="col-md-offset-3 col-md-6">
                    <form action="" class="form-horizontal my-form" method="post">
                        <div class="form-group">
                            <label for="" class="control-label col-md-2">标题:</label>
                            <div class="col-md-8">
                                <input type="text" name="title" class="form-control">
                            </div> 
                        </div>
                        <div class="form-group">
                            <div class="col-md-offset-2 col-md-8">
                                <textarea name="content"  class="form-control" id="" cols="10" rows="5"></textarea>
                            </div> 
                        </div>
                        <div class="form-group">
                            <div class="col-md-offset-2 col-md-8">
                                <button type="submit" class="btn btn-primary">发布</button>
                            </div>
                        </div>
                    </form>
                </div>
            </div>
        </div>
    
        <?php
            require("connect.php");
        ?>
        <?php
            if( !empty( $_POST['title'] ) && !empty( $_POST['content'] ) ){
                $title = $_POST['title'];
                $content=  $_POST['content'];
                $sql = "INSERT INTO message( title, content ) VALUES( '$title', '$content' )";
                $res = mysql_query( $sql );
                if( $res !== false ){
                    echo "<script>alert('留言发布成功');</script>";
                }else {
                    echo "<script>alert('留言发布失败');</script>";
                }
            }
        ?>
    
     <div class="container">
            <div class="row">
                <div class="col-md-offset-3 col-md-6">
    <ul>
        <?php
            $sql = "SELECT * FROM message";//查询
            $res = mysql_query( $sql );
            while( $row = mysql_fetch_assoc( $res ) ){
                //php,html混编
    ?>
            <li>
                <?php echo $row['title']; ?>
                <p><?php echo $row['content']; ?></p>
            </li>
    <?php
            }
    ?>
    </ul>
            </div>
        </div>
    </div>
    
    
    
    </body>
    </html>
    

      

  • 相关阅读:
    用代码说话:如何正确启动线程
    我的2019——菜鸟互联网找实习和工作记录
    Python网络爬虫——Appuim+夜神模拟器爬取得到APP课程数据
    用代码说话:如何在Java中实现线程
    用代码说话:synchronized关键字和多线程访问同步方法的7种情况
    RabbitMQ(四):使用Docker构建RabbitMQ高可用负载均衡集群
    RabbitMQ(三):RabbitMQ与Spring Boot简单整合
    RabbitMQ(二):RabbitMQ高级特性
    RabbitMQ(一):RabbitMQ快速入门
    使用Docker部署Spring Boot项目
  • 原文地址:https://www.cnblogs.com/szlxb/p/7340130.html
Copyright © 2011-2022 走看看