教学服务系统设计之PHP后台设计
来源:互联网 发布:seo外包公司 编辑:程序博客网 时间:2024/04/28 00:30
项目简介
本项目是与@nameoverflow同学合作。该同学负责vue
前端的设计,我负责php
后台的接口实现。本文将主要记录php
后台。
本项目的Github地址:https://github.com/He11oLiu/Student_Information_management_system
本项目仅作为尝试用途,很多功能尚未实现。
使用PHP
连接MySQL
数据库
利用MySQLi
接口库来连接MySQL
数据库,连接测试如下:
<html><body><?php //phpinfo(); $con = mysqli_connect("127.0.0.1","root","","C_test"); if(!$con){ dir('Cannot connect "' . mysql_error()); } echo "Connect Sucess!"; echo "<br/>"; $result = mysqli_query($con,"Select * from student"); while($row = mysqli_fetch_array($result)){ echo $row['student_no']." ".$row['student_name']; echo "<br/>"; } mysqli_close($con); echo "Cannect Close!";?></body></html>
数据库设计
PHP RESTful接口
服务器端PHP
提供RESTful
接口的框架主要如下:
<?php session_start(); $func = $_GET['func']; switch($func){ case 'func1':func1();break; case 'func2':func2();break; default: echo 'wrong func code';break; } function func1(){ //func1 code } function func2(){ //func2 code }?>
服务器设计
.├── adminQuery.php #管理员功能├── loginFunc.php #登入登出控制├── studentQuery.php #学生功能├── teacherQuery.php #老师功能├── test.py #测试└── util.php
其中功能的设计大致框架如上RESTful
框架所述,接口定义见接口文件。
为了防止出现越权调用接口,每个功能利用Session
做了权限检测。
接口定义
学生
POST 登录
学生/loginFunc.php?func=stuLogin
老师/loginFunc.php?func=isTeacherLoggedIn
管理员/loginFunc.php?func=isTeacherLoggedIn
GET 登录信息
/loginFunc.php?func=isXXXLoggedIn 其中 XXX=Stu | Teacher | Admin
GET 成绩信息
如果用户为学生用户则只能查同班同学
为管理员则可以查任意学号
教师用户不允许使用
返回值:
/studentQuery.php?func=stuGrade&stuid='201408010115'&semid=2
GET 个人信息
返回登录用户的个人信息
返回值:
/studentQuery.php?func=stuInfo
GET 选课列表
用户当前可用的选课列表
如果当前不能选课,返回空[]
。
返回值(数组):
/studentQuery.php?func=stuSel
GET 可选课程
/studentQuery.php?func=courseList
返回值:
Course.idCourse,Course.Cno,Course.Cname,Course.Ccredit,Course.Cplace,Course.Cnum,Dept.Dname,Teacher.Tname
POST 选课
返回值:
/studentQuery.php?func=selCourse&cid=3
GET 课程安排
返回用户指定学期的课程安排列表
返回值(数组):
其中 Time 格式为
/studentQuery.php?func=courseTime
GET 学期列表
返回当前用户入学时间以后所有的学期列表
返回值(数组):
GET 同班同学
url:/student/studentQuery.php?func=classmate
返回值:Sno,Sname
老师
GET 课程的学生
url : /student/teacherQuery.php?func=stuGrade`
返回值: Sno,Sname,Class.Cno,Class.Cyear,Grade
GET 授课时间
url : /student/teacherQuery.php?func=courseTime
返回值:Course.Cno,Course.Cname,Time.ds,Time.Week,Time.day,Time.section,Building,Room
POST 添加学生成绩
url:/student/teacherQuery.php?func=updateGrade
POST数据内容
返回值
msg
字段管理员
POST Add student
url:/student/adminQuery.php?func=addStu
POST数据内容:
返回值
msg
字段GET 学期
url:/student/adminQuery.php?func=getSemester
返回值:idSemester,Semyear,Semseason
GET 班级
url:/student/adminQuery.php?func=getClass&iddept=1
iddept为获取的专业
返回值:idClass,Cno,Cyear,Dept_idDept
GET 学期
url:/student/adminQuery.php?func=getSemester
返回值:idSemester,Semyear,Semseason
测试
利用Python
写了接口测试脚本,类似如下:
import urllib2 import urllibimport cookielib ########################### student test ###########################print ('=========student test==========')data = {}data['sno'] = '201408010113'data['spd'] = '123'post_data = urllib.urlencode(data)cj = cookielib.CookieJar() opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) print('Check Login Status...')resp = opener.open("http://localhost/student/loginFunc.php?func=isStuLoggedIn")print (resp.read() )print ('\n')
详细见源代码。
- 教学服务系统设计之PHP后台设计
- waqs后台服务设计原则
- 网络教学系统之智能答疑系统的设计以及实现
- 后台系统设计:工作流设计剖析
- 牛腩新闻发布系统之系统分析、后台设计
- 秒杀后台系统设计
- 牛腩新闻系统后台设计
- 周报——网络资源教学平台设计之课程管理系统E-R图及数据表
- 周报——网络教学资源平台设计之课程管理系统序列图
- 设计php登录系统
- ITIL之服务设计
- Android后台推送服务的实现设计
- 互联网后台服务的协议设计
- Kubernetes对象之StatefulSets(有状态系统服务设计)
- 基于PHP的电子电工试验教学网站设计
- 系统设计之架构设计
- 系统设计之架构设计
- 项目设计之系统设计
- 今天搞清楚了一年半前的那次网络收包错误原因
- 最近的工作
- 一篇文章让你精通CSS选择器
- HTML5 直播协议之 WebSocket 和 MSE
- iOS之UIAlertController
- 教学服务系统设计之PHP后台设计
- MSSQL:VB删除数据
- YOLO with Core ML and MPSNNGraph
- 一文详解谷歌最新物联网操作系统 Android Things,话说还记得大明湖畔的Fuchsia吗?
- windows上的git key如何在mac上使用
- 学习STM32CubeMX与HAL库吐槽
- 进程线程池
- 三.自定义realm认证
- TensorFlow入门教程合集