zoukankan      html  css  js  c++  java
  • 用php和mysql做登陆注册系统

    首先创建数据库:

    数据库名:kinoko1824;

    创建表(用户表和成绩表):

    用户表名:user

           主键:uid

           设置自增

    成绩表名:score

            主键:sid

            设置自增

    在完成之前图解思路:

    数据库创建好之后新建register.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>
    </head>
    <body>
        <form action="register.php" method = "POST">
           <p>用户名:<input type="text" name = "uname"></p>
           <p>密码:<input type="text" name = "upwd"></p>
           <p><button>注册</button></p>
           <div></div>
        </form>
    </body>
    </html>
    <script>
    //获取form元素:
    var oForm = document.forms[0];
    //console.log(oForm);
    //给oForm 添加onsubmit事件:
    oForm.onsubmit = function(){
        //判断如果用户名、密码符合规则,则可以提交,否则不能提交;
        if(flagname&&flagpwd){
            return true;
        }else{
            return false;
        }
    }
    //获取用户名、密码元素:
    var oName = oForm.elements[0];
    var oPwd = oForm.elements[1];
    var oDiv = document.querySelector('div');
    console.log(oDiv);
    //声明一个变量控制onsubmit提交:
    var flagname = null;
    //添加失焦事件:
    oName.onblur = function(){
        var reg = /^w{6,10}/;
        var str = oForm.elements[0].value;
        if(reg.test(str)){
            flagname = true;
        }else{
            oDiv.innerHTML = "包含字母、数字、下划线,在6-10位之间";
            flagname = false;
        }
    }
    //声明一个变量控制onsubmit提交:
    var flagpwd = null;
    //添加失焦事件:
    oPwd.onblur = function(){
        var reg = /^w{6,10}/;
        var str = oForm.elements[1].value;
        if(reg.test(str)){
            flagpwd = true;
        }else{
            oDiv.innerHTML = "包含字母、数字、下划线,在6-10位之间";
            flagpwd = false;
        }
    }
    
    </script>

    新建register.php,代码如下:

    <?php
    header('content-type:text/html;charset=utf-8');
    //接受客户端的数据:
    $name = $_POST["uname"];
    $pwd = $_POST["upwd"];
    //操作数据库:
    //连接数据源:
    $db = mysql_connect("localhost","root","root");
    //选择数据库:
    mysql_select_db("kinoko1824",$db);
    //设置编码符:
    mysql_query("set names utf8");
    //编写sql语句:
    $sql = "INSERT INTO `user`( `uname`, `upwd`) VALUES ('$name','$pwd')";
    //执行sql语句:
    $res = mysql_query($sql);
    //返回数据:
    if($res){
        echo"<script>alert('注册成功!');location.href = 'login.html';</script>";
    }else{
        echo"<script>alert('注册失败!');location.href = 'register.html';</script>";
    }
    
    ?>

    新建login.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>
    </head>
    <body>
        <form action="login.php" method = "POST">
           <p>用户名:<input type="text" name = "uname"></p>
           <p>密码:<input type="text" name = "upwd"></p>
           <p><button>登录</button></p>
           <div></div>
        </form>
    </body>
    </html>

    新建login.php,代码如下:

    <?php
    header('content-type:text/html;charset=utf-8');
    //接受客户端的数据:
    $name = $_POST["uname"];
    $pwd = $_POST["upwd"];
    //操作数据库:
    //连接数据源:
    $db = mysql_connect("localhost","root","root");
    //选择数据库:
    mysql_select_db("kinoko1824",$db);
    //设置编码符:
    mysql_query("set names utf8");
    //编写sql语句:
    $sql = "SELECT * FROM `user` WHERE uname = '$name'";
    //执行sql语句:
    $res = mysql_query($sql);
    //将资源转为数组:
    $arr = mysql_fetch_array($res);
    //返回数据:
    if($arr){
        if($arr['upwd']==$pwd){
            echo"<script>alert('登录成功!');location.href = 'score.php';</script>";
        }else{
            echo"<script>alert('密码错误!');location.href = 'login.html';</script>";
        }
    }else{
        echo"<script>alert('用户名不存在!');location.href = 'register.html';</script>";
    }
    
    ?>

    新建score.php,代码如下:

    <?php
    //引入public.php文件:
      include 'public.php';
      header('content-type:text/html;charset=utf-8');
      echo"<a href = 'add.html'>添加学生成绩</a>";
      //编写sql语句:
      $sql = "SELECT * FROM  `score`";
      //执行sql语句:
      $res = mysql_query($sql);
      //返回的是一个资源,所以用一个数组来接受这个资源:
     /* $arr = mysql_fetch_array($res);
      //把数据库里的数据放到php文件中:
      echo"<table border = 1 width = 300  cellspacing = 0>";
      echo"<tr><th>学号</th><th>姓名</th><th>数学成绩</th><th>语文成绩</th></tr>";
      echo"<tr><td>{$arr['sid']}</td><td>{$arr['sname']}</td><td>{$arr['math']}</td><td>{$arr['chinese']}</td></tr>";
      echo"</table>";
      */
      //每执行一次$arr,添加一次数据,因此采用for循环,减少垃圾代码:
     /* for($id=1;$id<8;$id++){
            $arr = mysql_fetch_array($res);
            //把数据库里的数据放到php文件中:
            echo"<table border = 1 width = 300  cellspacing = 0>";
            echo"<tr><th>学号</th><th>姓名</th><th>数学成绩</th><th>语文成绩</th></tr>";
            echo"<tr><td>{$arr['sid']}</td><td>{$arr['sname']}</td><td>{$arr['math']}</td><td>{$arr['chinese']}</td></tr>";
            echo"</table>";   
      }
      */
      //此时$id的值每添加一次就需要改一次,很不灵活,所以使用while循环语句:
      while($arr=mysql_fetch_array($res)){
            //$arr = mysql_fetch_array($res);
            //把数据库里的数据放到php文件中:
            echo"<table border = 1 width = 600  cellspacing = 0>";
            echo"<tr><th>学号</th><th>姓名</th><th>数学成绩</th><th>语文成绩</th><th>操作</th></tr>";
            echo"<tr>
            <td>{$arr['sid']}</td>
            <td>{$arr['sname']}</td>
            <td>{$arr['math']}</td>
            <td>{$arr['chinese']}</td>
            <td><a class = 'del' href = 'javascript: ;'>删除</a>|<a href = 'update.php ?id={$arr['sid']}'>修改</a></td>
            </tr>";
            //注意:写id={$arr['sid']}时,等号连接处不能有空格。
            echo"</table>";   
    }
    ?>
    <style>
      td{
          text-align:center;
      }
    </style>
    <script>
       //点击删除有确认提示:
       //利用事件委托添加点击事件:
       //获取删除元素以及其父元素table:
         var oDel = document.getElementsByClassName('del');
         var oTable = document.getElementsByTagName('table')[0];
         //console.log(oDel);
         //给oTable添加点击事件:
         oTable.onclick = function(e){
             //做事件兼容:
            var e=e||event;
            //委托兼容:
            var target = e.target||e.srcElement;
            //判断事件源是否是oDel;
            if(target.className == 'del'){
                //利用confirm来做确认删除:
                if(confirm('确认要删除吗?')){
                 //href = 'delete.php ?id={$arr['sid']}'
                 //获取当前要删除行对应的id值:
                 var id = target.parentNode.parentNode.children[0].innerHTML;
                 //console.log(id);
                 location.href = "delete.php?id=" + id;
                }
            }
         }
    </script>

    新建add.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>
    </head>
    <body>
        <form action="add.php" method = "POST">
            <input type="hidden" name = "sid">
            <p>姓名:<input type="text" name= "sname"></p>
            <p>语文:<input type="text" name = "schinese"></p>
            <p>数学:<input type="text" name = "smath"></p>
            <p><button>添加</button></p>
        </form>
    </body>
    </html>

    新建add.php,代码如下:

    <?php
      header('content-type:text/html;charset=utf-8');
      //从客户端获取数据:
      $name = $_POST['sname'];
      $id = $_POST['sid'];
      $chinese = $_POST['schinese'];
      $math = $_POST['smath'];
      //操作数据库
      //连接数据源
      $db = mysql_connect('localhost','root','root');
      //选择数据库
      mysql_select_db('kinoko1824',$db);
      //设置编码符
      mysql_query('set names utf8');
      //编写sql语句
      $sql = "INSERT INTO `score`(`sid`, `sname`, `chinese`, `math`) VALUES ('$id','$name','$chinese','$math')";
      //执行sql语句
      $res = mysql_query($sql);
      //判断返回值
      if($res){
        echo"<script>alert('添加成绩成功!');location.href = 'score.php';</script>";
      }else{
        echo"<script>alert('添加成绩失败!');location.href = 'add.html';</script>";
      }
    ?>

    新建delate.php,代码如下:

    <?php
    include"public.php";
    //此处的id是通过超链接路径来获取的;用get是因为路径传值(将页面中的数据引入服务器的方法:'路径?id=$id')
    $id = $_GET["id"];//此处的id是?后的key.
    //编写sql语句:
    $sql = "DELETE FROM `score` WHERE sid = $id";
    //echo"$id";
    //执行sql语句:
    mysql_query($sql);
    //执行删除语句时的内建代码:
    $row = mysql_affected_rows();
    //判断:
    if($row){
        echo"<script>alert('删除成功!');location.href = 'score.php';</script>";
    }else{
        echo"<script>alert('删除失败!');location.href = 'score.php';</script>";
    }
    ?>

    新建update.php,代码如下:

    <?php
    include"public.php";
    //获取$id
    $id = $_GET["id"];
    //编写sql语句,在修改之前需要查询表中所有信息:
    $sql = "SELECT * FROM `score` where sid = $id ";
    //执行sql语句:
    $res = mysql_query($sql);
    //用arr来接收资源:
    $arr = mysql_fetch_array($res);
    ?>
    
       <form action="updateDo.php" method = "post">
          <input type="hidden" name = "sid" value = "<?php echo $arr['sid'];?>">
          <p>姓名:<input type="text" name = "sname" value =  "<?php echo $arr['sname'];?>"></p>
          <p>数学成绩:<input type="text" name = "math" value =  "<?php echo $arr['math'];?>"></p>
          <p>语文成绩:<input type="text" name = "chinese" value = "<?php echo $arr['chinese'];?>"></p>
          <p><button>确认修改</button></p>
       </form>

    新建updateDo.php,代码如下:

    <?php 
       include"public.php";
       //获取客户端传递的数据:
       $name = $_POST["sname"];
       $id= $_POST["sid"];
       $math = $_POST["math"];
       $chinese= $_POST["chinese"];
       //编写sql语句:
       $sql = "UPDATE `score` SET `sname`='$name',`chinese`='$chinese',`math`='$math' WHERE sid =$id";
       //执行sql语句:
       mysql_query($sql);
       //用内建代码来执行:
       $res = mysql_affected_rows();
       //判断:
       if($res){
        echo"<script>alert('修改成绩成功!');location.href = 'score.php';</script>";
       }else{
        echo"<script>alert('修改成绩失败!');location.href = 'update.php';</script>";
       }
    ?>

    附件:新建public.php,代码如下:

    <?php
    header('content-type:text/html;charset=utf-8');
    //操作数据库:
    //连接数据源:
    $db = mysql_connect("localhost","root","root");
    //选择数据库:
    mysql_select_db("kinoko1824",$db);
    //设置编码符:
    mysql_query("set names utf8");
  • 相关阅读:
    剑指offer JZ-1
    侯捷《C++面向对象开发》--String类的实现
    侯捷《C++面向对象开发》--复数类的实现
    辛普森悖论
    马尔可夫链的平稳分布
    熵和基尼指数的一些性质
    UVA 11624 Fire!(广度优先搜索)
    HDU 4578 Transformation (线段树区间多种更新)
    HDU 1540 Tunnel Warfare(线段树+区间合并)
    多重背包
  • 原文地址:https://www.cnblogs.com/kinoko-1009/p/10305988.html
Copyright © 2011-2022 走看看