博客列表 >初识 类与对象

初识 类与对象

Mr.Ran
Mr.Ran原创
2021年10月20日 19:29:51485浏览

1.创建一个用户类

文件 users.php 代码:

  1. <?php
  2. // 用户类
  3. class User{
  4. public $phone;
  5. public $pwd;
  6. public $name;
  7. public $age;
  8. public $status;
  9. //登录
  10. public function login($uphone,$upwd){
  11. require('db.php');
  12. $sql = "select * from users where u_phone = '".$uphone."' and u_pwd ='".md5($upwd)."'";
  13. $stmt = $pdo -> prepare($sql);
  14. $res = $stmt -> execute();
  15. if ($res) {
  16. $row = $stmt -> fetch();
  17. if (!empty($row)) {
  18. return array('code'=>1,'msg'=>"登录成功",'res'=>$row);
  19. }else {
  20. return array('code'=>0,'msg'=>'登录失败');
  21. };
  22. };
  23. }
  24. //获取用户信息
  25. public function getUser($id){
  26. require('db.php');
  27. $sql = "select * from users where u_id = ".$id."";
  28. $stmt = $pdo -> prepare($sql);
  29. $res = $stmt -> execute();
  30. if ($res) {
  31. $row = $stmt -> fetch();
  32. if (!empty($row)) {
  33. return array('code'=>1,'msg'=>"成功",'res'=>$row);
  34. }else {
  35. return array('code'=>0,'msg'=>'失败');
  36. };
  37. };
  38. }
  39. //获取用户列表
  40. public function getUserList(){
  41. require('db.php');
  42. $sql = "select * from users";
  43. $stmt = $pdo -> prepare($sql);
  44. $res = $stmt -> execute();
  45. if ($res) {
  46. $row = $stmt -> fetchAll();
  47. if (!empty($row)) {
  48. return array('code'=>1,'msg'=>"成功",'res'=>$row);
  49. }else {
  50. return array('code'=>0,'msg'=>'失败');
  51. };
  52. };
  53. }
  54. //注册
  55. public function add($uphone,$upwd,$uname,$uage){
  56. require('db.php');
  57. $sql = "insert into `users`(`u_phone`,`u_pwd`,`u_name`,`u_age`,`u_createtime`) values('".$uphone."','".md5($upwd)."','".$uname."',".$uage.",".time().")";
  58. $stmt = $pdo -> prepare($sql);
  59. $stmt -> execute();
  60. if ($stmt -> rowCount() > 0) {
  61. return array('code'=>1,'msg'=>"注册成功");
  62. }else {
  63. return array('code'=>0,'msg'=>'注册失败');
  64. };
  65. }
  66. //修改
  67. public function update($id,$name,$age,$pwd,$status){
  68. require('db.php');
  69. if (!empty($pwd)) {
  70. $sql = "update `users` set `u_name`='".$name."',`u_age`=".$age.",`u_pwd`= '".md5($pwd)."',`u_status`=".$status." where `u_id` = ".$id.";";
  71. }else {
  72. $sql = "update `users` set `u_name`='".$name."',`u_age`=".$age.",`u_status`=".$status." where `u_id` = ".$id.";";
  73. }
  74. $stmt = $pdo -> prepare($sql);
  75. $stmt -> execute();
  76. if ($stmt -> rowCount() > 0) {
  77. return array('code'=>1,'msg'=>"修改成功");
  78. }else {
  79. return array('code'=>0,'msg'=>'修改失败');
  80. };
  81. }
  82. //删除
  83. public function delete($uid){
  84. require('db.php');
  85. $sql = "delete from `users` where `u_id` = ".$uid;
  86. echo $sql;
  87. $stmt = $pdo -> prepare($sql);
  88. $stmt -> execute();
  89. if ($stmt -> rowCount() > 0) {
  90. return array('code'=>1,'msg'=>"删除成功");
  91. }else {
  92. return array('code'=>0,'msg'=>'删除失败');
  93. };
  94. }
  95. }
  96. ?>

2.注册用户

文件 reg.php 代码:

  1. <?php
  2. require_once('users.php');
  3. if (isset($_POST['submit'])) {
  4. $user = new User();
  5. $u = $user->add($_POST['phone'],$_POST['pwd'],$_POST['name'],$_POST['age']);
  6. if ($u['code']) {
  7. print_r($u);
  8. echo "<script>alert('".$u['msg']."');location.href='login.php'</script>";
  9. } else {
  10. echo "<script>alert('".$u['msg']."');</script>";
  11. }
  12. }
  13. ?>
  14. <!DOCTYPE html>
  15. <html lang="en">
  16. <head>
  17. <meta charset="UTF-8">
  18. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  19. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  20. <title>注册</title>
  21. <link href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/4.6.0/css/bootstrap.css" rel="stylesheet" />
  22. </head>
  23. <body>
  24. <div class="jumbotron">
  25. <h1 class="display-4">用户注册</h1>
  26. <hr class="my-4">
  27. <form method="POST" action="" >
  28. <div class="form-group">
  29. <label>姓名</label>
  30. <input class="form-control" type="text" name="name">
  31. </div>
  32. <div class="form-group">
  33. <label>手机号</label>
  34. <input class="form-control" type="text" name="phone">
  35. </div>
  36. <div class="form-group">
  37. <label>密码</label>
  38. <input class="form-control" type="password" name="pwd">
  39. </div>
  40. <div class="form-group">
  41. <label>年龄</label>
  42. <input class="form-control" type="number" name="age">
  43. </div>
  44. <hr class="my-4">
  45. <button type="submit" name="submit" class="btn btn-primary">立即注册</button>
  46. <a href="login.php" class="btn btn-success">登录</a>
  47. </form>
  48. </div>
  49. </body>
  50. </html>

3.登录

文件 login.php 代码:

  1. <?php
  2. require_once('users.php');
  3. if (!empty($_POST['phone'])) {
  4. $user = new User();
  5. $u = $user->login($_POST['phone'],$_POST['pwd']);
  6. if ($u['code']) {
  7. echo "<script>alert('".$u['msg']."');location.href='list.php'</script>";
  8. } else {
  9. echo "<script>alert('".$u['msg']."');</script>";
  10. }
  11. }
  12. ?>
  13. <!DOCTYPE html>
  14. <html lang="en">
  15. <head>
  16. <meta charset="UTF-8">
  17. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  18. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  19. <title>登录</title>
  20. <link href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/4.6.0/css/bootstrap.css" rel="stylesheet" />
  21. </head>
  22. <body>
  23. <div class="jumbotron">
  24. <h1 class="display-4">登录</h1>
  25. <hr class="my-4">
  26. <form method="POST" action="" >
  27. <div class="form-group">
  28. <label>手机号</label>
  29. <input class="form-control" type="text" name="phone">
  30. <small class="form-text text-muted">请输入手机号码</small>
  31. </div>
  32. <div class="form-group">
  33. <label>密码</label>
  34. <input class="form-control" type="password" name="pwd">
  35. </div>
  36. <button type="submit" class="btn btn-primary">登录</button>
  37. <a href="reg.php" class="btn btn-success">注册</a>
  38. </form>
  39. </div>
  40. </body>
  41. </html>

4.用户列表&删除用户

文件 list.php 代码:

  1. <?php
  2. require_once('users.php');
  3. $user = new User();
  4. $u = $user->getUserList();
  5. if (!empty($_GET['id'])) {
  6. $res = $user -> delete($_GET['id']);
  7. if ($res['code'] === 1) {
  8. echo "<script>alert('".$res['msg']."');location.href='list.php'</script>";
  9. } else {
  10. echo "<script>alert('".$res['msg']."');</script>";
  11. }
  12. }
  13. ?>
  14. <!DOCTYPE html>
  15. <html lang="en">
  16. <head>
  17. <meta charset="UTF-8">
  18. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  19. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  20. <title>用户列表</title>
  21. <link href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/4.6.0/css/bootstrap.css" rel="stylesheet" />
  22. </head>
  23. <body>
  24. <div class="jumbotron">
  25. <h1 class="display-4">用户列表</h1>
  26. <hr class="my-4">
  27. <table class="table">
  28. <thead class="thead-dark">
  29. <tr>
  30. <th>ID</th>
  31. <th>手机号</th>
  32. <th>用户名</th>
  33. <th>年龄</th>
  34. <th>注册日期</th>
  35. <th>状态</th>
  36. <th>操作</th>
  37. </tr>
  38. </thead>
  39. <tbody>
  40. <?php foreach ($u['res'] as $user) { ?>
  41. <tr>
  42. <td><?=$user['u_id']?></td>
  43. <td><?=$user['u_phone']?></td>
  44. <td><?=$user['u_name']?></td>
  45. <td><?=$user['u_age']?></td>
  46. <td><?=date('Y-m-d',$user['u_createtime'])?></td>
  47. <td><?=$user['u_status'] == 0?'<span class="badge badge-warning">待审</span>':'<span class="badge badge-success">正常</span>'?></td>
  48. <td>
  49. <a href="edit.php?id=<?=$user['u_id']?>" class="btn btn-primary btn-sm">修改</a>
  50. <a href="list.php?id=<?=$user['u_id']?>" class="btn btn-danger btn-sm">删除</a>
  51. </td>
  52. </tr>
  53. <?php } ?>
  54. </tbody>
  55. </table>
  56. </div>
  57. </body>
  58. </html>

5.编辑用户

文件 edit.php 代码:

  1. <?php
  2. require_once('users.php');
  3. $id = $_GET['id'];
  4. $info = array();
  5. if (!empty($id)) {
  6. $user = new User();
  7. //读取用户信息
  8. $uinfo = $user -> getUser($id);
  9. if ($uinfo['code'] == 1) {
  10. $info = $uinfo['res'];
  11. }
  12. //提交修改
  13. if(isset($_POST['submit'])){
  14. $status = $_POST['status'];
  15. $u = $user-> update($id,$_POST['name'],$_POST['age'],$_POST['pwd'],$status == 'on'? $status=1:$status=0);
  16. if ($u['code']) {
  17. echo "<script>alert('".$u['msg']."');location.href='list.php'</script>";
  18. } else {
  19. echo "<script>alert('".$u['msg']."');</script>";
  20. }
  21. }
  22. }else {
  23. echo "<script>alert('请选择用户');</script>";
  24. }
  25. ?>
  26. <!DOCTYPE html>
  27. <html lang="en">
  28. <head>
  29. <meta charset="UTF-8">
  30. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  31. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  32. <title>修改用户信息</title>
  33. <link href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/4.6.0/css/bootstrap.css" rel="stylesheet" />
  34. </head>
  35. <body>
  36. <div class="jumbotron">
  37. <h1 class="display-4">编辑用户信息</h1>
  38. <hr class="my-4">
  39. <form method="POST" action="" >
  40. <div class="form-group">
  41. <label>姓名</label>
  42. <input class="form-control" type="text" name="name" value="<?=$info['u_name']?>">
  43. </div>
  44. <div class="form-group">
  45. <label>手机号</label>
  46. <input class="form-control" type="text" name="phone" value="<?=$info['u_phone']?>" readonly>
  47. </div>
  48. <div class="form-group">
  49. <label>密码</label>
  50. <input class="form-control" placeholder="不填为不修改" type="password" name="pwd" value="">
  51. </div>
  52. <div class="form-group">
  53. <label>年龄</label>
  54. <input class="form-control" type="number" name="age" value="<?=$info['u_age']?>">
  55. </div>
  56. <div class="form-group">
  57. <div class="custom-control custom-switch">
  58. <input type="checkbox" class="custom-control-input" name="status" <?=$info['u_status']==1?'checked':''?> id="status">
  59. <label class="custom-control-label" for="status">状态</label>
  60. </div>
  61. </div>
  62. <hr class="my-4">
  63. <button type="submit" name="submit" class="btn btn-primary">提交修改</button>
  64. </form>
  65. </div>
  66. </body>
  67. </html>

6.运行效果

  • 列表页:
  • 登录页:
  • 编辑页:
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议