PHP案例 许愿墙

    xiaoxiao2022-07-05  211

     

    源码:https://download.csdn.net/download/qq_39476250/11244063

    目录

     

    一、案例展示

    1.首页

    2.发表愿望单 

    3.修改愿望单

    4.删除愿望单

    二、需求分析

    三、案例实现

    1.准备工作

    2.数据库设计 

     3.许愿墙展示

     4.分页查询

    5.发表愿望 

    6.修改愿望

    7.删除愿望 

    教程完毕 


    一、案例展示

    1.首页

    2.发表愿望单 

    3.修改愿望单

    4.删除愿望单

    二、需求分析

    在本案例中,对于许愿墙的具体需求如下。


    配置一个虚拟主机“www.wish.com”用于测试和运行项目 通过MySQL数据库保存用户的数据 提供展示愿望、发表愿望、修改愿望和删除愿望4个主要功能 提供绿色、蓝色、黄色、红色4种颜色的心愿贴纸 显示愿望的发表时间,以形如“10分钟前 16:21”的友好格式显示 在展示愿望时,为了避免单个页面的数据过多,以分页的方式进行展示 为了防止自己的愿望被其他人随意修改,在发表愿望时可以设置保护密码 当愿望设置了保护密码后,在对其修改、删除时,需要验证密码

     

    三、案例实现

    1.准备工作

    ① 准备项目运行的环境创建虚拟主机

    ② 合理的管理项目文件目录结构划分

    ③ 连接数据库              编写文件common\init.php完成数据库连接,为后续开发做准备

     ④  准备公共函数        封装常用的代码,以提高代码的可复用性、可维护性等,如外部变量的接收和过滤

     ⑤  引入公共文件        init.php、function.php

    类型

    文件名称

    作用

    目录

    common

    保存公共的PHP文件

    css

    保存项目的CSS文件

    js

    保存项目的JavaScript文件

    view

    保存项目的HTML文件

    common/init.php

    保存项目的初始化代码(设置时区、连接数据库)

    文件

    common/function.php

    保存项目的公共函数

    view/index.html

    展示愿望的HTML模板

    view/common/add.html

    添加愿望的HTML模板

    view/common/edit.html

    修改愿望的HTML模板

    view/common/password.html

    修改或删除愿望时,验证密码的HTML模板

    index.php

    提供展示愿望、验证密码、删除愿望功能

    save.php

    提供添加、修改愿望功能

    2.数据库设计 

    ①数据库设计在项目开发过程中起着至关重要的作用,如果设计的不合理、不完善,在项目开发和维护过程中可能出现很多问题。

    字段

    数据类型

    说明

    id

    INT UNSIGNED PRIMARY KEY AUTO_INCREMENT

    愿望id

    name

    VARCHAR(12) DEFAULT '' NOT NULL

    作者名字

    content

    VARCHAR(80) DEFAULT '' NOT NULL

    许愿内容

    time

    INT UNSIGNED DEFAULT 0 NOT NULL

    发表时间

    color

    VARCHAR(10) DEFAULT '' NOT NULL

    贴纸颜色

    password

    VARCHAR(6) DEFAULT '' NOT NULL

    保护密码

    ②插入测试数据

    INSERT INTO `wish` VALUES (1, '张三', '天天开心、心想事成、大吉大利、一帆风顺。', 1490240257, 'red', '111'), (2, 'PHP爱好者', '祝愿PHP越来越好!', 1490241675, 'yellow', ''), (3, '匿名', '争取毕业月薪过万!', 1490251234, 'blue', '000000'), (4, '小明', '考上清华大学', 1490252675, 'green', '123');

     3.许愿墙展示


    ①在index.php中编写SQL语句查询出所有记录

    ②格式化日期

    ③修改HTML展示模板

    ④为避免不同服务器环境因配置的时区不同,造成显示的时间有误,设置时区


     a.查询出数据库的记录

    Array( [0]=>Array([id]=>1 [name]=>张三 [content]=>天天开心、心想事成、大吉大利、一帆风顺。 [time]=>1490240257 [color]=>red) [1]=>Array([id]=>2 [name]=>PHP爱好者 [content]=>祝愿PHP越来越好! [time]=>1490240257 [color]=>yellow [2]=>Array([id]=>3 [name]=>匿名 [content]=> 争取毕业月薪过万 [time]=>1490251234 [color]=>blue [3]=>Array([id]=>4 [name]=>小名 [content]=> 考上清华大学 [time]=>1490240257 [color]=>green )

    b.编写样式 

     

     4.分页查询

    a.分页实现的原理是利用LIMIT限制SELECT语句查询出的数据

    ​SELECT `content` FROM `wish` LIMIT 0, 10; # 查询第1页的10条数据 SELECT `content` FROM `wish` LIMIT 10, 10; # 查询第2页的10条数据 SELECT `content` FROM `wish` LIMIT 20, 10; # 查询第3页的10条数据 SELECT `content` FROM `wish` LIMIT 30, 10; # 查询第4页的10条数据

     

    ①在common\function.php文件中编写page_sql()函数,获取LIMIT的参数

    ②在index.php中,根据用户传递的页码,利用LIMIT查询出对应的记录

    ③生成“首页”“上一页”“下一页”“尾页”链接导航显示到HTML页面中


     

    5.发表愿望 


    ①准备发表愿望的表单,在index.html中引入

    ②利用自定义的input()函数接收并过滤用户提交的数据

    ③按照要求对用户提交的数据进行判断。例如,贴纸的颜色只能是蓝、黄、绿、红中的一种。

    ④通过验证后,将用户提交的数据保存到数据库中


    a.发表愿望

    6.修改愿望

    为了防止愿望被作者以外的人修改在发表愿望时可以设置保护密码当愿望受到密码保护后在修改和删除愿望时就要先验证密码 在修改连接上添加,愿望id和页码在index.php中,获取待编辑的愿望id,显示密码验证表单验证不通过,显示对应的提示信息验证通过,显示修改愿望表单在save.php中,接收用户编辑的愿望数据,同时在修改前要验证保护密码是否正确

    7.删除愿望 

    a.删除愿望功能用于作者删除自己的愿望,为防止误删,删除时需验证保护密码。

    添加一个删除链接在index.php中验证保护密码是否正确不正确,不能删除正确,直接删除数据库中对应的愿望信息

    教程完毕 

    最新回复(0)