
3步从零搭建:从环境到能用,小白也能看懂的操作指南
很多新手一听到“开发系统”就头大,觉得得配置一堆复杂环境,其实现在有现成的工具能省不少事。去年张老师一开始自己摸索,又是装PHP又是配MySQL,搞了两天环境还没搭好,后来我给他推荐了集成环境,10分钟就搞定了。下面这3步,你跟着做,保证不踩坑。
第一步:10分钟搞定环境配置,新手首选集成工具
开发PHP系统得有运行环境,简单说就是需要PHP解释器、MySQL数据库和Web服务器(比如Apache)。单独装这三个东西对新手来说太麻烦,容易出错。我自己试过好几个集成环境,XAMPP是最适合新手的,Windows、Mac、Linux都能用,一键安装,自带Apache+PHP+MySQL,还带个phpMyAdmin管理数据库,特别方便。
具体操作很简单:去XAMPP官网下载对应系统的安装包,一路点“下一步”就行。安装完成后打开XAMPP控制面板,点击Apache和MySQL后面的“Start”,看到两个服务都变绿色就说明环境启动成功了。这时候你打开浏览器输入localhost
,能看到XAMPP的欢迎页,就证明环境没问题了。
这里插个小经验:去年帮张老师装的时候,他电脑上之前装过其他服务器软件,导致端口冲突,Apache启动不了。如果你也遇到这种情况,在XAMPP控制面板点击“Config”→“Service and Port Settings”,把Apache的端口从80改成8080(比如),MySQL端口保持3306不变,就能解决冲突了。
第二步:源码部署3分钟搞定,比装软件还简单
环境搭好后,就该放代码了。我准备的这套源码是MVC结构(不用管这是啥,你就理解成“代码分类放,以后好维护”就行),包含了用户登录、学生信息增删改查、成绩管理、数据导出Excel这几个核心功能,前端用了Bootstrap,界面还算清爽,不用自己调样式。
具体步骤:先把源码包解压,得到一个叫“student-system”的文件夹,把它复制到XAMPP安装目录下的“htdocs”文件夹里(比如C:xampphtdocs
)。然后打开浏览器输入localhost/phpmyadmin
,进入数据库管理页面,点击左侧“新建”,数据库名填“student_db”,排序规则选“utf8_general_ci”,点“创建”。接着点击上方“导入”,选择源码包里的“student_db.sql”文件,点“执行”,数据库表就建好了。
最后一步是改配置文件:打开“student-system”文件夹里的“config.php”,找到$dbhost
、$dbuser
、$dbpass
、$dbname
这几行,默认值基本不用改(XAMPP的MySQL默认用户名是root,密码为空),确认$dbname
是“student_db”就行。到这里,代码就部署完了,是不是比装个微信还简单?
第三步:功能测试5分钟过一遍,遇到问题这样解决
部署完必须测试,不然用的时候出bug就麻烦了。打开浏览器输入localhost/student-system
,会看到登录页面,默认管理员账号是admin,密码是123456(记得登录后先去“系统设置”改密码,安全第一)。
测试的时候重点看这几个功能:
如果遇到“数据库连接失败”,大概率是config.php里的数据库信息填错了,回去核对一下;如果页面显示乱码,检查数据库排序规则是不是utf8_general_ci,源码文件编码是不是UTF-8。去年张老师就遇到过乱码问题,后来发现是他解压源码时用了默认编码,重新用UTF-8编码保存文件就好了。
核心功能代码解析:不只能用,还要知道为什么这么做
光会搭系统还不够,知道代码怎么跑的,以后想改功能才不用求人。我挑几个核心功能的代码讲讲,不用怕,都是最基础的PHP语法,初中生都能看懂。
用户登录:为什么密码不能明文存?看这行代码就懂
登录功能是系统的大门,安全最重要。你肯定见过有些网站密码丢了能“查看原密码”,这种就是把密码明文存在数据库里,特别危险!正规系统都会加密存储,我们这套源码用的是PHP自带的password_hash()
函数加密,比如注册时密码处理代码:
$password = password_hash($_POST['password'], PASSWORD_DEFAULT);
// 把加密后的$password存进数据库,而不是原密码
登录时再用password_verify()
验证:
if(password_verify($input_password, $db_password)){
// 密码正确,创建session登录
}
这里插个权威说法:OWASP(开放Web应用安全项目)明确 用户密码必须使用强哈希算法加密存储,禁止明文或弱加密(比如MD5现在已经不安全了)。password_hash()
会自动生成随机盐值,比自己写加密算法安全多了,新手直接用这个函数就行。
学生信息CRUD:增删改查原来就这4句SQL
学生信息管理最核心的就是“增删改查”(CRUD),说白了就是往数据库里存数据、删数据、改数据、查数据。这四个操作对应4句基础SQL语句,PHP代码只是把用户输入的内容传到SQL里执行而已。
比如“添加学生”功能,用户在表单填了姓名、学号、班级等信息,PHP接收后拼成SQL:
$sql = "INSERT INTO students (student_id, name, class, gender, birthday) VALUES ('$student_id', '$name', '$class', '$gender', '$birthday')";
执行这句SQL,数据就存进数据库了。
为了让你更清楚系统有哪些功能模块,我整理了一个表格,对应源码里的文件和作用,以后想改哪个功能,直接找对应的文件就行:
功能模块 | 核心文件 | 主要作用 | 关键技术 |
---|---|---|---|
用户登录 | login.php、check_login.php | 验证账号密码,创建登录状态 | Session、password_hash() |
学生管理 | student_list.php、add_student.php | 增删改查学生基本信息 | MySQL INSERT/UPDATE/DELETE/SELECT |
成绩管理 | score_list.php、add_score.php | 录入和统计学生成绩 | 关联查询(JOIN)、数据统计 |
Excel导出 | export_excel.php | 将数据导出为Excel表格 | PHPExcel类库、文件流输出 |
数据导出:为什么学校都喜欢Excel?PHP实现只要10行代码
老师用系统最频繁的操作之一就是导出数据做报表,比如期末统计成绩、开学统计学生信息。我们这套系统用了PHPExcel类库(现在叫PhpSpreadsheet,不过核心用法差不多),几行代码就能把数据库里的数据导出成Excel文件。
核心代码其实很简单,就是从数据库查数据,然后循环写到Excel表格里:
// 创建Excel对象
$objPHPExcel = new PHPExcel();
// 查数据
$sql = "SELECT * FROM students";
$result = mysqli_query($conn, $sql);
// 循环写入Excel
$row = 2; // 从第二行开始写数据(第一行是表头)
while($data = mysqli_fetch_assoc($result)){
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A'.$row, $data['student_id']);
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('B'.$row, $data['name']);
// 其他列...
$row++;
}
// 输出文件
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="学生信息表.xls"');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
去年帮张老师搭好系统后,他最满意的就是这个功能,之前手动填Excel表格要花一整天,现在点一下导出按钮,2分钟就搞定了,还没错误。
按照这个方法搭好系统后,你可以试试自己加个“班级管理”功能,不难的,就是在数据库里加个class表,然后仿照学生管理的代码写增删改查就行。如果遇到问题,或者想要更多功能的源码(比如批量导入学生信息),欢迎在评论区告诉我,我看到都会回~
要是你不小心把管理员密码忘了,别着急,直接改数据库就行,不用重装系统那么麻烦。先打开浏览器,输localhost/phpmyadmin,这个地址记得吧?就是咱们平时管理数据库的那个页面,跟前面导入数据库脚本时用的是同一个地方。进去之后,左边那一列会显示所有数据库,找到叫student_db的那个,点一下展开它。然后在展开的表列表里找users表,一般系统的用户信息都存在这种名字带“user”的表里,点进去之后就能看到所有用户账号了,管理员账号通常用户名是admin,找到它那一行,点右边的“编辑”按钮,就是那个像小铅笔的图标,点一下就能改信息了。
这时候会弹出一个表单,里面有很多字段,咱们主要看password那一行,注意这里可不能直接填你想设的新密码,得填加密后的字符串,不然系统不认。不会生成加密字符串?没关系,我教你个笨办法,特别简单。你在电脑上新建一个文本文档,把后缀名改成.php,比如叫mima.php,然后用记事本打开这个文件,写一行代码:echo password_hash(‘你想设的新密码’, PASSWORD_DEFAULT); 记得把单引号里的“你想设的新密码”换成你自己要设的密码,比如abc123。保存之后,把这个mima.php文件放到XAMPP的htdocs文件夹里,就跟咱们放系统源码的位置一样。然后在浏览器里输localhost/mima.php,页面上会显示一长串看起来像乱码的字符串,那就是加密后的密码了,把它复制下来。回到phpMyAdmin的编辑页面,把这串字符粘贴到password字段对应的输入框里,拉到最下面点“执行”按钮,等它提示“影响了1行”就说明改好了。这时候再去登录页面,用你刚设的新密码就能进去了,记得下次把密码记在小本本上,省得又忘了。
除了XAMPP,还有其他适合新手的PHP集成环境吗?
有的。除了文中推荐的XAMPP,新手还可以试试WAMP(仅Windows系统)、MAMP(Mac系统)或phpStudy(国产集成环境,界面更友好)。这些工具都集成了Apache、PHP和MySQL,安装步骤类似,一键部署后即可使用,选择时根据自己的操作系统和使用习惯即可。
下载的源码包解压后,文件夹应该放在哪里才能访问?
源码文件夹需要放在Web服务器的根目录下。以XAMPP为例,默认根目录是安装目录下的“htdocs”文件夹(比如Windows系统通常是“C:xampphtdocs”,Mac系统是“/Applications/XAMPP/htdocs/”)。将解压后的源码文件夹(如“student-system”)复制到这里,然后在浏览器输入“localhost/文件夹名”(如“localhost/student-system”)即可访问系统。
忘记管理员密码,如何重置?
可以直接修改数据库重置密码。打开phpMyAdmin(浏览器输入“localhost/phpmyadmin”),选择“student_db”数据库,找到“users”表,点击管理员账号对应的“编辑”按钮,在“password”字段中输入新密码的加密值(推荐用PHP的password_hash()函数生成,比如在本地创建一个简单的PHP文件运行“echo password_hash(‘新密码’, PASSWORD_DEFAULT);”获取加密字符串),保存后即可用新密码登录。
系统支持同时管理多个班级的学生信息吗?
支持。文中的系统已包含“班级”字段,添加学生时可选择对应班级,在“学生管理”页面也能通过“班级”筛选功能查看不同班级的学生。如果需要更细化的班级管理(如添加/删除班级、按班级统计成绩),可以在数据库中新增“classes”表存储班级信息,再仿照学生管理模块的代码开发班级管理功能,难度不大。
这套系统在PHP 8.0以上版本能正常运行吗?
大部分功能可以正常运行,但 使用PHP 7.3-7.4版本。PHP 8.0以上对部分旧语法(如“@”错误抑制符的使用场景)有调整,可能导致个别功能(如Excel导出)出现警告。如果使用PHP 8.0+,可以打开源码中的“config.php”文件,将错误报告级别调低(如添加“error_reporting(E_ALL & ~E_DEPRECATED & ~E_STRICT);”),或检查Excel导出模块的类库是否更新到支持PHP 8.0的版本(如PhpSpreadsheet的最新版)。