PHP案例 许愿墙 PHP许愿墙
由于跟我索要源码的同学比较多,我有点发不过来,所以我把源码直接上传蓝奏云了,下面链接免费下载
源码-CSDN免费下载:CSDN下载PHP许愿墙
版权说明:禁止抄袭,转载请附上本文链接,禁止用于商业目的,禁止在转载时附上源码,本源码仅供交流参考,如发现雷同并未附上本文链接请联系我。
目录
一、案例展示
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中验证保护密码是否正确
- 不正确,不能删除
- 正确,直接删除数据库中对应的愿望信息
教程完毕
注:本人用于开发PHP版本为5.6.9,经过测试PHP5.2.17、5.4.45、7.3.9_p打开版本会报错,PHP5.4.1、7.1.9、7.3.9显示正常、其他版本未测试。
如需要技术指导请私聊我,在线时间不固定,有可能好几个星期也不看一次;
评论不回复
PHP案例 许愿墙 PHP许愿墙相关推荐
- php许愿墙参考文献,许愿墙论文,关于我家的许愿墙相关参考文献资料-免费论文范文...
导读:本论文可用于许愿墙论文范文参考下载,许愿墙相关论文写作参考研究. 我家乔迁了新居,考虑到女儿喜欢涂画,我请做装修的师傅在家里做了一面涂鸦墙,有了涂鸦墙既能避免女儿将新家涂成大花脸,又能保留女儿爱 ...
- 【代码案例】网页版表白墙 待办事项 (包含完整源码)
网页版表白墙 表白墙 1. 创建内容 2. 调整样式 3. 实现提交 最终样式 待办事项 1. 添加内容 2. 调整样式 实现功能 新增待办事项 已完成事项 删除任务 最后 嗨~~今天给大家分享分享两 ...
- 微信公众平台消息接口开发(34)微信墙之表白墙/婚礼墙/晚会墙/会议墙/晒单墙/照片墙/历史墙...
微信公众平台开发模式 微信 公众平台 消息接口 开发模式 企业微信公众平台 微信墙 婚礼墙/晚会墙/会议墙/晒单墙/照片墙/历史墙 历史上的今天 作者:方倍工作室 原文: http://www.c ...
- html5 3d背景墙,3D背景墙的价格怎样?3D背景墙的介绍?
3D背景墙可以随我们的喜好去更换我们房子的环境,能让我们身临其境,感受大自然的奥妙又或是漫步在外太空,也还可以让我们身处于一个古堡中,做我们的公主又或是王子的美梦.以下就是对3D背景墙的价格怎样,3D ...
- 笔记本高负荷时撞功耗墙、温度墙问题解决方案
20210514 笔记本功耗墙.温度墙问题解决方案: 前言: 手头上的两款远古笔记本依然发光发热,但是老笔记本的散热不给力,WIN10在持续高负载下Intel无法睿频到最高频率,经常撞温度墙降频到一个 ...
- iOS积分墙和积分墙的区别在哪呢?
IOS积分墙: iOS赚钱积分墙 ;是在一个百应用内展示各种积分任务(下载安装推荐的优质应用.注册.填表等),以供用户度完成任务获得积分的页面.用户在嵌入积分墙的应用问内完成任务,该应用的开发者答就能 ...
- 弧形背景html,弧形背景墙—弧形背景墙相关知识介绍
现在的装修方式真的是很多的,背景墙就是现在一种新型的装修方式,而且就算是一个小小的背景墙,它也是有很多形状的,比如弧形.圆形等.今天小编要给大家介绍的是弧形背景墙的相关知识. 弧形背景墙 弧形背景墙- ...
- 微信公众平台消息接口开发(34)微信墙之表白墙/婚礼墙/晚会墙/会议墙/晒单墙/照片墙/历史墙
微信公众平台开发模式 微信 公众平台 消息接口 开发模式 企业微信公众平台 微信墙 婚礼墙/晚会墙/会议墙/晒单墙/照片墙/历史墙 历史上的今天 作者:方倍工作室 原文: http://www.c ...
- WPF技术触屏上的应用系列(一): 3D 图片(照片)墙、柱面墙(凹面墙或者叫远景墙、凸面墙或者叫近景墙)实现
去年某客户单位要做个大屏触屏应用,要对档案资源进行展示之用.客户端是Window7操作系统,54寸大屏电脑电视一体机.要求有很炫的展示效果,要有一定的视觉冲击力,可触控操作.当然满足客户的要求也可以有 ...
- 在Revit里如何将普通墙与曲面墙的内壁连接
在Revit里如何将普通墙与曲面墙的内壁连接?创建异形建筑时,为了达到如图1所示的效果,该如何操作: 我们可以使用体量建模的方式来创建该类建筑,要点在于如将幕墙与曲面墙的内壁连接.具体方法如下: 一. ...
最新文章
- 认知智能再突破,阿里 18 篇论文入选 AI 顶会 KDD
- 干货丨贝叶斯机器学习前沿进展
- PHP solr服务器搭建,搜索方案 solr+php如何安装配置?
- GNU make manual 翻译(六十九)
- 加快windows上对大文件,以及很多很多小文件进行不同磁盘拷贝的速度——windows上的最快拷贝软件FastCopy
- Linux查看所有用户和组信息
- mysql查询各科前3_MySQL 查询各科前三的数据
- 《面向模式的软件体系结构1--模式系统》读书笔记(5)--- 管理
- TC的handle绿了……菜鸟表示泪流满面
- Spark机器学习库(MLlib)指南
- uvalive4838(凸包+重心)
- 济南女子学院计算机科学与技术,山东女子学院计算机科学与技术专业2016年在山东理科高考录取最低分数线...
- Dijkstra算法(求一点到任意一点的最短距离)
- 8块钱搞定一个顶级域名 (全过程) B篇
- 练习项目--cookie数据脱敏
- C# System.Timers.Timers的用法在工控设备上位中的用法
- Set和Map的区别 (@es6)
- 如何做一个自律的人?
- dejavu中如何添加html文件,【dejavu Chrome插件图文介绍】dejavu Chrome插件图片教程 - 开发者插件 - Chrome插件网...
- 【Android】自定义View和控件时出现Binary XML file line #报错行数: Binary XML file line #9: Error inflating class 类路径