码迷,mamicode.com
首页 > 数据库 > 详细

用php和mysql做登陆注册系统

时间:2019-01-22 21:50:30      阅读:217      评论:0      收藏:0      [点我收藏+]

标签:字母   href   children   span   声明   sub   系统   客户   sid   

首先创建数据库:

数据库名: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 = $_GET["id"];
//编写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");

 

用php和mysql做登陆注册系统

标签:字母   href   children   span   声明   sub   系统   客户   sid   

原文地址:https://www.cnblogs.com/kinoko-1009/p/10305988.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!