php结课报告--会员注册管理系统

news2025/4/9 16:03:45

目录
1. 系统背景及意义 1
2. 系统的设计思路 1
2.1 数据库设计分析 1
2.2 功能模块设计分析 1
3. 程序功能测试及截图 1
3.1代码测试与功能演示 1
4. 总结与收获 6

1.系统背景及意义
随着现在时代得发展,信息的保护与安全都极为重要,很多企业,公司,学校都采用了信息化的管理,这样能够使得管理工作方便快捷、高效。特别是人员的管理工作涉及面很广,使用会员注册管理系统不仅可以实现信息的高效管理和共享,更能使用户管理工作更加规范化、标准化、科学化和现代化,构建该系统主要是为了方便用户使用,要求界面良好、针对性强、对系统信息的”查插删改”,能够提供良好的信息安全保护机制。
2.系统的设计思路
系统通过用户登录界面进行session检测保证安全,在登录界面设有七天免登录按钮,以及没有账号进行的注册按钮。当我们进行注册时会进行用户名检测,当用户名重复时会进行提示,会输入两次密码,两次密码必须相同这时候才能够注册成功。但这还不是最保险的,更安全一点的应该根据用户填写的手机号发送验证码,这时候才能将安全系数提高
2.1 数据库设计分析
数据库中包含了两张表,其中包括用户注册信息的存储表user,里面存储有用户名和密码以及用户的手机号。还包括存储用户课程数据的tb_course表,里面保存有用户的课程信息时长,学习进度等。
2.2 功能模块设计分析
包括的功能有用户注册,用户登录,七天免登录,课程的修改,添加,删除等功能
3.程序功能测试及截图
3.1程序代码展示,和功能演示
1,进行数据库连接操作
当用户在使用的过程中涉及到数据库的相关知识都会进行数据库的连接,所以将数据库的连接操作单独列出来,可以更方便以后的使用
header(“Content-Type:text/html;charset=utf-8”);
$conn=mysqli_connect(“localhost”,“root”,“root”,“rg2001”);
if(mysqli_connect_errno()){
exit(mysqli_connect_error());
}
else{echo “”;}
2,会员注册功能的实现
当用户第一次使用系统时,可以通过注册一个用户来使用,其中在注册时包括的功能有用户名检测,两个密码是否一致的检测,当注册成功后用户的信息会被放进数据库user表中。
function check_user(){
var user=document.getElementsByName(“user”)[0].value;
if(!user){ alert(“请输入用户名”); return false;}
//使用Ajax技术//第一步:初始化XMLHttpRequest对象
var http_request=new XMLHttpRequest();
//第二步:设置请求状态和返回处理函数
http_request.onreadystatechange=function(){
if(http_request.readyState=4&&http_request.status==200){
alert(http_request.responseText);}}
//第三步:发送Http请求:GET方法
http_request.open(“GET”,“checkUser.php?user=”+user);
//第四步:发送数据
http_request.send(null);}
function check(){
/非空判断/
var user=document.getElementsByName(“user”)[0].value;
if(!user){ /为空/
alert(“请输入用户名”);
return false;}
var pwd1=document.getElementsByName(“pwd1”)[0].value;

    ![在这里插入图片描述](https://img-blog.csdnimg.cn/76efbd185f454ba89f7f6b225db0134e.png)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3,用户中心
包括用户的查询,删除,修改,包括分页,模糊查询等功能,为用户提供更好的操作体验
3.1用户查询,模糊查询:使用的是SQL语句中的like作为查询的方式,可以同时查询多个符合条件,其中通过session中保存的登陆者的信息所以可以通过session来确定查询的用户名的信息
“select * from tb_course where user_name='”. S E S S I O N [ " n a m e " ] . " ′ a n d c o u r s e n a m e l i k e ′ _SESSION["name"]."' and course_name like '%". SESSION["name"]."andcoursenamelike_GET[“text”].“%’ limit “.( p a g e − 1 ) ∗ page-1)* page1)rows.”,”.$rows.“”
在这里插入图片描述
在这里插入图片描述
3.2用户的删除,借助Ajax技术获得要删除用户的id和name在通过连接数据库对数据进行删除
function del(id,name){
if(confirm(“确定要删除用户”+name+“吗?”)){
var http_request=new XMLHttpRequest();
//(2)设置请求状态和返回处理函数
http_request.onreadystatechange=function(){
if(http_request.readyState4&&http_request.status200){
//刷新列表 search(1); }}
//(3)发送HTTP请求:GET方式
http_request.open(“GET”,“delete.php?id=”+id);
//(4)发送数据http_request.send(null);}}
c o n n = m y s q l i c o n n e c t ( " l o c a l h o s t " , " r o o t " , " r o o t " , " r g 2001 " ) ; m y s q l i q u e r y ( conn=mysqli_connect("localhost","root","root","rg2001"); mysqli_query( conn=mysqliconnect("localhost","root","root","rg2001");mysqliquery(conn,“delete from tb_course where course_id=”.$_GET[“id”]);
在这里插入图片描述
在这里插入图片描述
3.3用户的修改,通过Ajax技术确定用户要修改的数据再将数据保存再session中,再通过Get方法获得,最后使用update修改数据
session_start();
c o n n = m y s q l i c o n n e c t ( " l o c a l h o s t " , " r o o t " , " r o o t " , " r g 2001 " ) ; i f ( m y s q l i c o n n e c t e r r n o ( ) ) e x i t ( m y s q l i c o n n e c t e r r o r ( ) ) ; m y s q l i s e t c h a r s e t ( conn = mysqli_connect("localhost", "root", "root", "rg2001"); if(mysqli_connect_errno()){ exit(mysqli_connect_error());} mysqli_set_charset( conn=mysqliconnect("localhost","root","root","rg2001");if(mysqliconnecterrno())exit(mysqliconnecterror());mysqlisetcharset(conn,‘utf8’);
mysqli_query( c o n n , " u p d a t e t b c o u r s e s e t c o u r s e n a m e = ′ " . conn,"updatetb_coursesetcourse_name='". conn,"updatetbcoursesetcoursename="._GET[“name”].“‘,course_desc=’”. G E T [ " d e s c " ] . " ′ , c o u r s e t i m e = ′ " . _GET["desc"]."',course_time='". GET["desc"].",coursetime="._GET[“time”].“‘,study_percent=’”. G E T [ " s t u d y " ] . " ′ w h e r e c o u r s e i d = " . _GET["study"]."'wherecourse_id=". GET["study"]."wherecourseid="._GET[“id”]);
echo “success”;
在这里插入图片描述
在这里插入图片描述
3.4分页功能
通过连接数据库查询用户的数据总共有多少条,然后根据每一页显示的用户数据条数计算总条数与每一页条数的模,取得分页数
//获取当前页数 p a g e = i n t v a l ( page=intval( page=intval(_GET[“page”]);
//每一页多少条$rows=2;//总条数
c o u n t = m y s q l i q u e r y ( count=mysqli_query( count=mysqliquery(conn,“select count(*) from tb_course where user_name='”. S E S S I O N [ " n a m e " ] . " ′ a n d c o u r s e n a m e l i k e ′ _SESSION["name"]."' and course_name like '%". SESSION["name"]."andcoursenamelike_GET[“text”].“%’ “);
t o t a l = m y s q l i f e t c h r o w ( total=mysqli_fetch_row( total=mysqlifetchrow(count)[0];
//获取总共多少页 t o t a l p a g e = c e i l ( total_page=ceil( totalpage=ceil(total/$rows);//limit 开始位置,条数
r e s u l t = m y s q l i q u e r y ( result=mysqli_query( result=mysqliquery(conn,“select * from tb_course where user_name='”. S E S S I O N [ " n a m e " ] . " ′ a n d c o u r s e n a m e l i k e ′ _SESSION["name"]."' and course_name like '%". SESSION["name"]."andcoursenamelike_GET[“text”].”%’ limit “.( p a g e − 1 ) ∗ page-1)* page1)rows.”,”.$rows.“”);
在这里插入图片描述
在这里插入图片描述
3.5添加功能的实现
添加功能通过Ajax技术保存用户输入的信息之后将其保存在user表中,可以添加用户的数据,更方便的管理。





本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/388500.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【AI面试】NMS 与 Soft NMS 的辨析

往期文章: AI/CV面试,直达目录汇总【AI面试】L1 loss、L2 loss和Smooth L1 Loss,L1正则化和L2正则化 一、NMS 非极大值抑制(Non-Maximum Suppression,NMS),并不是深度学习时期,目标…

VS项目配置常用的配置

背景随着学习使用VS的深入在项目配置使用一些相对路径是必不可少的,使用绝对路径是最简单的,但是加入你换了电脑或者别人拉取你的代码,就会发现通常会编译不过.因为项目配置使用了绝对路径.所以使用相对路径的好处就会体现.在VS项目配置有自己的一套配置,简单记录一下我使用到的…

mysql一主键uuid和自增的选择

文章目录 1.自增ID的优缺点1.1 优点1.2 缺点1.3 不适合以自增ID主键作为主键的情况2.UUID作为主键2.1 介绍2.2 优点2.3 缺点3.有序UUID作为主键3.1 介绍3.2 演示使用3.2.1 前提知识3.2.1.1 数据类型 - binary3.2.1.2 函数 - hex()3.2.1.3 函数 - unhex()3.2.2 数据库层3.2.3 JA…

蓝桥杯第十四届校内赛(第三期) C/C++ B组

一、填空题 (一)最小的十六进制 问题描述   请找到一个大于 2022 的最小数,这个数转换成十六进制之后,所有的数位(不含前导 0)都为字母(A 到 F)。   请将这个数的十进制形式作…

提升Mac使用性能的5大方法,CleanMyMacX 2023非常的好用哦~

近些年伴随着苹果生态的蓬勃发展,越来越多的用户开始尝试接触Mac电脑。然而很多人上手Mac后会发现,它的使用逻辑与Windows存在很多不同,而且随着使用时间的增加,一些奇奇怪怪的文件也会占据有限的磁盘空间,进而影响使用…

sql数据库常用操作指令

一、操作库-- 创建库create database db1;-- 创建库是否存在,不存在则创建create database if not exists db1;-- 查看所有数据库show databases;-- 查看某个数据库的定义信息 show create database db1; -- 修改数据库字符信息alter database db1 character set ut…

Istio Sidecar启动顺序 - 导致的应用容器网络不通

目录一、问题二、Istio 1.7及其之后版本的解决方案2.1 方式1:安装Istio时全局设置2.2 方式2:在应用Deployment通过annotation设置2.3 holdApplicationUntilProxyStarts启用效果三、Istio 1.7之前的解决方案一、问题 线上应用集成了Spring Cloud K8S Con…

HCIP实验1

实验要求 1 R6为isp, 接口IP地址均为公有地址;该设备只能配置IP地址,之后不能冉对其进行其他任何配置; 2 R1-R5为局域网,私有IP地址192.168.1.0/24, 请合理分配; 3 R1, R2, R4,各有两个环回地址; R5; R6各有一个环回地址;所有路由器上环回均…

2 GateWay工作流程+GateWay搭建

GateWay工作流程GateWay搭建 核心流程图如下: 核心概念: 客户端向 Spring Cloud Gateway 发出请求。如果Gateway Handler Mapping确定请求与路由匹配,则将其发送到Gateway Web Handler 处理程序。此处理程序通过特定于请求的Fliter链运行请求…

ARM uboot 的移植1-从三星官方 uboot 开始移植

一、移植初体验 1、直接编译三星移植版 uboot 尝试运行 (1) 复制到 linux 的源生目录下,然后解压开。 (2) 检查 Makefile 中的交叉编译工具链。 (3) 配置时使用:make smdkv210single_config,对应 include/configs/smdkv210single.h 头文件。…

力扣(LeetCode)430. 扁平化多级双向链表(2023.03.04)

你会得到一个双链表,其中包含的节点有一个下一个指针、一个前一个指针和一个额外的 子指针 。这个子指针可能指向一个单独的双向链表,也包含这些特殊的节点。这些子列表可以有一个或多个自己的子列表,以此类推,以生成如下面的示例…

javaWeb核心01-HTTPTomcatServlet

文章目录HTTP&Tomcat&Servlet1,Web概述1.1 Web和JavaWeb的概念1.2 JavaWeb技术栈1.2.1 B/S架构1.2.2 静态资源1.2.3 动态资源1.2.4 数据库1.2.5 HTTP协议1.2.6 Web服务器1.3 Web核心课程安排2, HTTP2.1 简介2.2 请求数据格式2.2.1 格式介绍2.2.2 实例演示2.…

区块链学习

hash函数 一种算法任意长度的二进制数据映射为固定长度的二进制数据 hash函数的特点 确定性------对同一个输入数据每次都能得到相同的结果单向性------对一个数据可以很容易计算出hash值,但是对于一个hash值非常难反推出数据隐秘性------没有可行的方法算出hash…

OpenCV入门(三)快速学会OpenCV2图像处理基础

OpenCV入门(三)快速学会OpenCV2图像处理基础 1.颜色变换cvtColor imgproc的模块名称是由image(图像)和process(处理)两个单词的缩写组合而成的,是重要的图像处理模块,主要包括图像…

VSCode问题记录

20230304 - 0. 引言 这几年的编程方式还真是各种变化,从一开始直接VIM,到后面使用jupyter进行机器学习相关,然后再过渡到vim的形式并加以tmux批量化,最后去年使用了vscode作为IDE。随着工具的变化,那么很多习惯也都随…

PyQGIS自定义应用程序打包

路径准备ps:打包时需要根据自己的安装路径进行相应修改QGIS3.22.16的安装路径:D:\QGIS3.22.16QGIS3.22.16中python-qgis.bat的路径:D:\QGIS3.22.16\bin\python-qgis-ltr.bat准备打包的工程所在目录:E:\Crater_DamageEstimation0303安装pyinst…

Python基础—文件操作

Python基础—文件操作 文件操作 文件是指为了重复使用或长期使用的目的,以文本或二进制形式存放于外部存储器(硬盘、U盘、光盘等)中的数据保存形式,文件是信息交换的重要途径,也是利用程序解决实际问题的重要媒介。 …

网络编程面试相关内容

1.什么是网络编程网络编程的本质是多台计算机之间的数据交换。数据传递本身没有多大的难度,不就是把一个设备中的数据发送给其他设备,然后接受另外一个设备反馈的数据。现在的网络编程基本上都是基于请求/响应方式的,也就是一个设备发送请求数…

RPC框架笔记

文章目录RPC概述一次RPC的完整过程RPC的优缺点分层设计编解码层——数据格式协议层——概念网络通信层——网络库RPC框架的关键指标稳定性易用性扩展性观测性高性能Kitex框架解读整体框架自研网络库——Netpoll扩展性设计性能优化——网络库优化性能优化——编解码优化合并部署…

【Flutter入门到进阶】Flutter基础篇---组件生命周期与状态

1 Android界面渲染流程UI树与FlutterUI树的设计思路对比 1.1 android渲染流程中的树的组织 1.1.1 XML加载与解析 1.1.2 ViewRootImpl组织树结构 1.1.3 编舞者掌控调用时机 1.1.4 View负责UI渲染 1.1.5 底层surfacefiling负责沟通硬件 1.2 flutter组件设计思路&#xff0c…