项目介绍

项目名称:图书管理系统

项目实现的内容:

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

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

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

 内容页

添加内容

删除内容

 修改内容

 具体实现步骤

根目录布置:

1.登录界面实现

具体步骤参照文章:

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

2.内容页实现

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

1.1创建index.html

用于显示内容页

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>图书管理系统</title>
<link rel="stylesheet" href="../css/style.css"/>
</head>
<body>
<div class="box"><div class="top"><div class="title">图书管理系统</div><div class="nav"><a href="../add.php">添加图书</a><a href="../logout.php">退出登录</a></div></div><div class="main"><table class="lib-list"><tr><th>书名</th><th width="200">作者</th><th width="200">国家</th><th width="200">图书编号</th><th width="250">入库时间</th><th width="200">操作</th></tr>   <?php foreach($data as $v): ?><tr><td class="lib-title"><a href="../show.php?id=<?php echo $v['id'];?>"><?php echo $v['title'];?></a></td><td class="center"><?php echo $v['author'];?></td><td class="center"><?php echo $v['country'];?></td><td class="center"><?php echo $v['id'];?></td><td class="center"><?php echo $v['addtime'];?></td><td class="center"><a href="../edit.php?id=<?php echo $v['id'];?>">编辑</a> <a href="../del.php?id=<?php echo $v['id'];?>" onclick="return confirm('确定删除?');" >删除</a> </td></tr><?php endforeach;?></table></div>
</div>
</body>
</html>

1.2创建index.php关联index.html

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

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

2.1创建info_db_connect.php

用于连接数据库

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

3.1创建add.html

添加内容的界面实现过程

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>图书管理系统</title>
<link rel="stylesheet" href="../css/style.css"/>
</head>
<body>
<div class="box"><div class="top"><div class="title">图书管理系统</div><div class="nav"><a href="index.php">返回</a></div></div><div class="main"><form action="../add.php" method="post"><table class="lib-edit"><tr><th>图书名称:</th><td><input type="text" name="title" placeholder="填写图书标题..." /></td></tr><tr><tr><th>作者姓名:</th><td><input type="text" name="author" placeholder="填写作者名..." /></td></tr><tr><th>作者国籍:</th><td><input type="text" name="country" placeholder="填写作者国籍..." /></td></tr><tr><th>图书简介:</th><td><textarea name="content" placeholder="填写图书简介..."></textarea></td></tr><tr><th></th><td><input type="submit" value="提交入库登记" /></td></tr></table></form></div>
</div>
</body>
</html>

3.2创建add.php关联add.html

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

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

4.1创建edit.html

编辑界面实现过程

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>图书管理系统</title>
<link rel="stylesheet" href="../css/style.css"/>
</head>
<body>
<div class="box"><div class="top"><div class="title">图书管理系统</div><div class="nav"><a href='index.php'>返回</a></div></div><div class="main"><form method="post"><table class="lib-edit"><tr><th>图书名称:</th><td><input type="text" name="title" value="<?php echo $data['title'];?>"/></td></tr><tr><th>作者姓名:</th><td><input type="text" name="author" value="<?php echo $data['author'];?>"/></td></tr><tr><th>作者国籍:</th><td><input type="text" name="country" value="<?php echo $data['country'];?>"/></td></tr><tr><th>图书简介:</th><td><textarea name="content"><?php echo $data['content'];?></textarea></td></tr><tr><th></th><td><input type="submit" value="提交修改" /></td></tr></table></form></div>
</div>
</body>
</html>

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

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

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

5.创建del.php

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

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

6.1创建show.html

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

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>图书管理系统</title>
<link rel="stylesheet" href="../css/style.css"/>
</head>
<body>
<div class="box"><div class="top"><div class="title">图书管理系统</div><div class="nav"><a href="index.php">返回</a></div></div><div class="main"><div class="lib-title"><?php echo $data['title']?></div><div class="lib-time">【<?php echo $data['country'];?>】 <?php echo $data['author'];?></div><div class="lib-time">入库时间:<?php echo $data['addtime'];?> 编号:<?php echo $data['id'];?></div><div class="lib-content"><?php echo $data['content']?></div></div>
</div>
</body>
</html>

6.2创建show.php关联show.html

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

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

7.创建init_login.php

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

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

8.创建logout.php

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

<?php
//用于退出登录
session_start();
//删除session
unset($_SESSION['username']);
//跳转登录界面
header('location:login.php');

*注意:仅供学习参考,转载请注明出处。感谢支持。

源代码下载:https://url79.ctfile.com/d/33928079-50085061-61e3cf?p=7430 (访问密码:7430)

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

  1. 0基础快速入门WebPack(3)——图解详述plugins(插件)的安装及sourceMap的使用及WebpackDevServer正向代理和模块热更新等(附详细案例源码解析过程及版本迭代过程)

    文章目录 1. 重点提炼 2. 配置环境 3. Plugins(插件) 3.1 HtmlWebpackPlugin 3.1.1 example01 3.1.1.1 example01-1 3.1.1. ...

  2. 0基础快速入门CSS技术栈(6)—图解详细阐述说透CSS的浮动及应用、浮动的扩展及清除浮动和详解快速·1photoshop切图(附详细案例源码解析过程)2021-01-07更新

    文章目录 1. 浮动(float)重点提炼 2. CSS 布局的三种机制 3. 为什么需要浮动? 3.1 example01 4. 什么是浮动(float) 4.1 作用 4.1.1 example0 ...

  3. 0基础快速入门CSS技术栈(4)—图解详细阐述CSS的复合选择器、标签显示模式、行高、CSS背景,及最为重要的CSS三大特性附带权重计算笔试题(附详细案例源码解析过程)

    文章目录 1. 0基础快速入门CSS技术栈(4) 2. 重点提炼 3. CSS复合选择器 3.1 后代选择器(重点) 3.1.1 example01 3.2 子元素选择器 3.2.1 exmaple0 ...

  4. PHP+Mysql—学生信息管理系统网站开发(整套源码)

    一.功能 前台功能: 1.用户登录.查看个人信息.个人信息修改 2.查看每个学院的学生信息 3.管理后台登录.退出 后台功能: 1.后台登录 2.管理员密码修改 3.学生信息管理:查看账户.添加账户. ...

  5. 0基础快速入门CSS技术栈(3)—图解详细阐述CSS文字文本样式及综合案例、样式调试工具、快速开发html的emment语法(附详细案例源码解析过程)

    文章目录 1. CSS字体样式属性调试工具 2. font字体 2.1 font-size:大小 2.2 font-family:字体 2.2.1 CSS Unicode字体 2.3 font-wei ...

  6. 0基础快速入门CSS技术栈(5)—图解详细阐述说透CSS的盒子模型(超级重要)、圆角边框、盒子阴影及相关重要的笔试题——css的核心中的核心(附详细案例源码解析过程)2021.01.07更新

    文章目录 1. 盒子模型(CSS重点) 1.1 看透网页布局的本质 1.2 盒子模型(Box Model) 1.3 盒子边框(border) 1.3.1 边框综合设置 1.3.2 example01 ...

  7. C语言实现加密解密功能 附带详细注释源码

    加密主要是通过一种算法对原内容进行处理,使原来内容不直观可见.解密过程通常要知道加密的算法,然后对加密后的内容进行逆处理,从而实现解密功能.当然解密也有一些暴力破解的方法.接下来以 c 语言 为例讲解 ...

  8. 【学习总结】Apsara Clouder云计算技能认证:网站建设:简单动态网站搭建+思维导图

    [学习总结]Apsara Clouder云计算技能认证:网站建设:简单动态网站搭建 网站搭建的类型 网站的主要分类 静态网站 动态网站 动态网站的实现方式 动态网站搭建涉及的内容: 动态网站的常见实现 ...

  9. 动态网站的技术路线_简单动态网站搭建

    如何在windows服务器上配置wordPress和discuz 网站建设中的概念讲解 网站建设的基础操作 网站程序的基础使用 网站程序的优化 简单动态网站搭建 软件部署 域名和主机的购买 域名解析 ...

  10. 网站建设-简单动态网站搭建

    课程介绍: 通过前面Clouder课程的学习,或许你已经掌握了在云服务器上发布和部署静态网页的方法,那么如何搭建一个可以随时更新内容的动态网站?通过本课程的学习,你将掌握如何在云端搭建全世界使用最多的 ...

最新文章

  1. 【原创】linux命令bc使用详解
  2. matlab 基础知识class lt; superclass_name
  3. 响应微信公众平台公众号菜单单击事件
  4. JSON In Code
  5. FileZilla 下载安装使用
  6. Intel 中断和异常处理 - 目录
  7. 洛谷P3941入阵曲
  8. Android系统之Recovery移植教程 【转】
  9. 思科DHCP不同网段通信
  10. EventLoop,TcpClient,TcpServer 中的生命周期
  11. 《云计算:原理与范式》一3.2 知识经济时代的来临
  12. [数据库事务与锁]详解四: 数据库的锁机制
  13. 手机号正则和邮箱正则,常用正则解释
  14. 罗振宇跨年演讲全文、PPT、图解
  15. IPD——从战略到执行的全面研发管理体系
  16. 1、什么是公众号appid?
  17. C++操作Excel表格
  18. Mysql将txt文件导入数据库采坑 load data local infile
  19. 浅谈傅里叶——6. 采样、频率与一个简易的DFT函数
  20. 智联招聘如何设置公司屏蔽

热门文章

  1. vb.net 模拟鼠标 失去焦点_DNF:都9102年了还在手动点竹子?鼠标连点器了解一下...
  2. linux cximage动态库,64位Linux编译cximage手记
  3. jquery weui 显示loading
  4. iocp中GetQueuedCompletionStatus 121 信号灯超时时间已到 (error sem timeout)
  5. FileNet小错误汇总
  6. Java JavaEE JavaSE JavaME JavaWEB 之间的区别与联系
  7. 通往Java架构师之路
  8. Linux下运行黑客帝国屏保
  9. 经纬度距离计算小工具_一个NB工具大合集打网站,总有一款是你需要的
  10. 手机远程桌面linux系统,vnc远程桌面手机版,vnc远程桌面手机版软件好用推荐