• PHP+MySQL制作简单动态网站(附详细注释+源码)


    项目介绍

    项目名称:图书管理系统

    项目实现的内容:

    1.用户登录、用户注册、登录界面验证码功能。

    2.退出登录功能、内容查看、内容添加、内容修改。

    前端页面设计得有点可能不太专业,将就着用。主要专注在功能的实现。

     内容页

    添加内容

    删除内容

     修改内容

     具体实现步骤

    根目录布置: 

     1.登录界面实现

    具体步骤参照文章:

    PHP+MySQL制作简单的用户注册登录界面(注释超详细~附源代码)_Tsing X的博客-CSDN博客

    2.内容页实现

    *注意,请完成登录界面后再进行后续操作

     1.1创建index.html

    用于显示内容页

    1. html>
    2. <html>
    3. <head>
    4. <meta charset="utf-8">
    5. <title>图书管理系统title>
    6. <link rel="stylesheet" href="../css/style.css"/>
    7. head>
    8. <body>
    9. <div class="box">
    10. <div class="top">
    11. <div class="title">图书管理系统div>
    12. <div class="nav">
    13. <a href="../add.php">添加图书a>
    14. <a href="../logout.php">退出登录a>
    15. div>
    16. div>
    17. <div class="main">
    18. <table class="lib-list">
    19. <tr>
    20. <th>书名th>
    21. <th width="200">作者th>
    22. <th width="200">国家th>
    23. <th width="200">图书编号th>
    24. <th width="250">入库时间th>
    25. <th width="200">操作th>
    26. tr>
    27. <tr>
    28. <td class="lib-title">
    29. <a href="../show.php?id=">a>
    30. td>
    31. <td class="center">td>
    32. <td class="center">td>
    33. <td class="center">td>
    34. <td class="center">td>
    35. <td class="center">
    36. <a href="../edit.php?id=">编辑a>
    37. <a href="../del.php?id=" onclick="return confirm('确定删除?');" >删除a>
    38. td>
    39. tr>
    40. table>
    41. div>
    42. div>
    43. body>
    44. html>

    1.2创建index.php关联index.html

    实现对内容数据的获取,执行数据的查询操作

    1. //主页
    2. require './init_login.php';//验证是否有登录
    3. require 'info_db_connect.php';//连接数据库
    4. $sql='select id,title,author,country,addtime from info order by id asc';
    5. //执行查询语句,查询结果集存储在对象$stmt中
    6. $stmt = $pdo->query($sql);
    7. //从stmt中取出查询结果,并保存在$data中
    8. $data=$stmt->fetchAll(PDO::FETCH_ASSOC);
    9. require './view/index.html';
    10. ?>

    2.1创建info_db_connect.php

    用于连接数据库

    1. //用于管理界面的数据库的连接
    2. //设置DSN数据源
    3. $dsn = 'mysql:host=localhost;dbname=LMS;charset=utf8';//注意,此处的LMS为自定义的数据库名,你创建什么数据库名就将LMS改成它就行了
    4. //连接数据库
    5. try {
    6. $pdo = new PDO($dsn,'root','Huawei@123');//通过pdo连接数据源,此处root为MySQl的登录用户名,其后是登录密码
    7. }catch (PDOException $e){
    8. echo 'error--'.$e->getMessage();
    9. }

    3.1创建add.html

    添加内容的界面实现过程

    1. html>
    2. <html>
    3. <head>
    4. <meta charset="utf-8">
    5. <title>图书管理系统title>
    6. <link rel="stylesheet" href="../css/style.css"/>
    7. head>
    8. <body>
    9. <div class="box">
    10. <div class="top">
    11. <div class="title">图书管理系统div>
    12. <div class="nav">
    13. <a href="index.php">返回a>
    14. div>
    15. div>
    16. <div class="main">
    17. <form action="../add.php" method="post">
    18. <table class="lib-edit">
    19. <tr>
    20. <th>图书名称:th>
    21. <td><input type="text" name="title" placeholder="填写图书标题..." />td>
    22. tr>
    23. <tr>
    24. <tr>
    25. <th>作者姓名:th>
    26. <td><input type="text" name="author" placeholder="填写作者名..." />td>
    27. tr>
    28. <tr>
    29. <th>作者国籍:th>
    30. <td><input type="text" name="country" placeholder="填写作者国籍..." />td>
    31. tr>
    32. <tr>
    33. <th>图书简介:th>
    34. <td><textarea name="content" placeholder="填写图书简介...">textarea>td>
    35. tr>
    36. <tr>
    37. <th>th>
    38. <td><input type="submit" value="提交入库登记" />td>
    39. tr>
    40. table>
    41. form>
    42. div>
    43. div>
    44. body>
    45. html>

    3.2创建add.php关联add.html

    在验证用户为登录状态后,执行数据的插入工作

    1. require './init_login.php';//验证是否有登录
    2. if (!empty($_POST)){//用户提交了表单
    3. //获取表单中输入的数据
    4. $data = array();//用于存储表单中输入的数据的数组
    5. $data['title']=trim(htmlspecialchars($_POST['title']));//存储书名
    6. $data['author']=trim(htmlspecialchars($_POST['author']));//存储作者名
    7. $data['country']=trim(htmlspecialchars($_POST['country']));//存储国籍
    8. $data['content']=trim(htmlspecialchars($_POST['content']));//存储简介
    9. //连接数据库
    10. require 'info_db_connect.php';
    11. $sql='insert into info(title,author,country,content) values(:title,:author,:country,:content)';
    12. $stmt=$pdo->prepare($sql);//预编译sql语句
    13. $stmt->execute($data);//执行插入数据的sql语句
    14. header('Location:./index.php');//重定向到主页面
    15. }
    16. require './view/add.html';

    4.1创建edit.html

    编辑界面实现过程

    1. html>
    2. <html>
    3. <head>
    4. <meta charset="utf-8">
    5. <title>图书管理系统title>
    6. <link rel="stylesheet" href="../css/style.css"/>
    7. head>
    8. <body>
    9. <div class="box">
    10. <div class="top">
    11. <div class="title">图书管理系统div>
    12. <div class="nav">
    13. <a href='index.php'>返回a>
    14. div>
    15. div>
    16. <div class="main">
    17. <form method="post">
    18. <table class="lib-edit">
    19. <tr>
    20. <th>图书名称:th>
    21. <td><input type="text" name="title" value=""/>td>
    22. tr>
    23. <tr>
    24. <th>作者姓名:th>
    25. <td><input type="text" name="author" value=""/>td>
    26. tr>
    27. <tr>
    28. <th>作者国籍:th>
    29. <td><input type="text" name="country" value=""/>td>
    30. tr>
    31. <tr>
    32. <th>图书简介:th>
    33. <td><textarea name="content">textarea>td>
    34. tr>
    35. <tr>
    36. <th>th>
    37. <td><input type="submit" value="提交修改" />td>
    38. tr>
    39. table>
    40. form>
    41. div>
    42. div>
    43. body>
    44. html>

    4.2创建edit.php,关联edit.html

    在验证完用户为登录状态后,执行修改数据库的相关操作

    1. //用于编辑内容
    2. require './init_login.php';//验证是否有登录
    3. require 'info_db_connect.php';//连接数据库
    4. $id=isset($_GET['id'])?(int)$_GET['id']:0;//获取get传参id值
    5. $data=array('id'=>$id);//将id值放到data数组中
    6. $sql='select title,author,country,content,addtime from info where id=:id';//:id占位符
    7. $stmt=$pdo->prepare($sql);//对于查询语句进行编译PDOStatement对象
    8. if (!$stmt->execute($data)){//执行查询语句
    9. exit('查询失败'.implode(' ', $stmt->errorInfo()));//输出查询失败原因
    10. }
    11. $data = $stmt->fetch(PDO::FETCH_ASSOC);//将查询结果存储在数组data中
    12. if(empty($data)){
    13. echo ('新闻id不存在');
    14. }
    15. //数据修改
    16. if (!empty($_POST)){
    17. // var_dump($data);
    18. $id=isset($_GET['id'])?(int)$_GET['id']:0;//获取get传参id值
    19. $data=array('id'=>$id);//将id值放到data数组中
    20. $data = array();//用于存储表单中输入的数据的数组
    21. $data=array('id'=>$id);//将id值放到data数组中
    22. $data['title']=trim(htmlspecialchars($_POST['title']));//存储图书名称
    23. $data['author']=trim(htmlspecialchars($_POST['author']));//存储作者名
    24. $data['country']=trim(htmlspecialchars($_POST['country']));//存储国家名称
    25. $data['content']=trim(htmlspecialchars($_POST['content']));//存储图书简介
    26. // print_r($data);
    27. //将数据写入到数据库中(update)
    28. $sql='update `info` set title=:title,author=:author,country=:country,content=:content where id=:id';
    29. $stmt=$pdo->prepare($sql);//预编译sql语句
    30. $stmt->execute($data);//执行插入数据的sql语句
    31. }
    32. require './view/edit.html';

    5.创建del.php

    用于实现删除内容的操作,通过get值准确定位到要执行操作的数据

    1. //用于删除内容
    2. require './init_login.php';//验证是否有登录
    3. require 'info_db_connect.php';//连接数据库
    4. $id=isset($_GET['id'])?(int)$_GET['id']:0;//获取get传参id值
    5. $data=array('id'=>$id);//将id值放到data数组中
    6. //删除数据的sql语句
    7. $sql='delete from info where id=:id';
    8. //预处理
    9. $stmt=$pdo->prepare($sql);
    10. //执行sql语句
    11. if (!$stmt->execute($data)){
    12. exit('删除失败'.implode('-', $stmt->errorInfo()));
    13. }
    14. //重定向到主页面
    15. header('Location:index.php');

    6.1创建show.html

    用于实现展示详细内容的功能

    1. html>
    2. <html>
    3. <head>
    4. <meta charset="utf-8">
    5. <title>图书管理系统title>
    6. <link rel="stylesheet" href="../css/style.css"/>
    7. head>
    8. <body>
    9. <div class="box">
    10. <div class="top">
    11. <div class="title">图书管理系统div>
    12. <div class="nav">
    13. <a href="index.php">返回a>
    14. div>
    15. div>
    16. <div class="main">
    17. <div class="lib-title">div>
    18. <div class="lib-time">div>
    19. <div class="lib-time">入库时间: 编号:div>
    20. <div class="lib-content">div>
    21. div>
    22. div>
    23. body>
    24. html>

    6.2创建show.php关联show.html

    执行的操作有连接数据库,查询数据,对传参进行判断。

    1. //内容详情页
    2. require './init_login.php';//判断是否登录
    3. require 'info_db_connect.php';//连接数据库
    4. $id=isset($_GET['id'])?(int)$_GET['id']:0;//获取get传参id值
    5. $data=array('id'=>$id);//将id值放到data数组中
    6. $sql='select id,title,content,author,country,addtime from info where id=:id';//:id占位符
    7. $stmt=$pdo->prepare($sql);//对于查询语句进行编译PDOStatement对象
    8. if (!$stmt->execute($data)){//执行查询语句
    9. exit('查询失败'.implode(' ', $stmt->errorInfo()));//输出查询失败原因
    10. }
    11. $data = $stmt->fetch(PDO::FETCH_ASSOC);//将查询结果存储在数组data中
    12. if(empty($data)){
    13. echo ('编号不存在');
    14. }
    15. require './view/show.html';

    7.创建init_login.php

    用于判断用户是否登录,若未登录则跳转登录界面,提升网站安全性

    1. //验证是否有登录,无登录则跳转登录界面
    2. //启动session
    3. session_start();
    4. if (!isset($_SESSION['username'])){
    5. header('Location:login.php');
    6. exit;
    7. }

    8.创建logout.php

    依靠关闭session来实现退出登录的功能。

    1. //用于退出登录
    2. session_start();
    3. //删除session
    4. unset($_SESSION['username']);
    5. //跳转登录界面
    6. header('location:login.php');

    *注意:篇幅有限,具体详见源代码,仅供学习参考,转载请注明出处。感谢支持。

    源代码下载:

    https://pan.quark.cn/s/7223b1e8b27a
    提取码:SVw5

    备用网盘:https://url79.ctfile.com/d/33928079-50085061-61e3cf?p=7430 (访问密码:7430)
     

  • 相关阅读:
    谷歌浏览器安装包无法打开,双击闪退!完美解决
    Android 中的权限
    在 HarmonyOS 上实现 ArkTS 与 H5 的交互
    RK3588 I2C设备开发硬件检测
    Ubuntu22.04 下安装驱动、CUDA、cudnn以及TensorRT
    节点电价形成机制
    6.Linux常用命令---文件目录管理(3)
    【PyTorch】nn.MaxPool2d函数详解
    MCE | 肝炎病毒是如何诱发肝癌的
    软件测试——分类
  • 原文地址:https://blog.csdn.net/m0_53649704/article/details/125940400