由于跟我索要源码的同学比较多,我有点发不过来,所以我把源码直接上传蓝奏云了,下面链接免费下载

源码-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.修改愿望

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

7.删除愿望

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

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

教程完毕

注:本人用于开发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许愿墙相关推荐

  1. php许愿墙参考文献,许愿墙论文,关于我家的许愿墙相关参考文献资料-免费论文范文...

    导读:本论文可用于许愿墙论文范文参考下载,许愿墙相关论文写作参考研究. 我家乔迁了新居,考虑到女儿喜欢涂画,我请做装修的师傅在家里做了一面涂鸦墙,有了涂鸦墙既能避免女儿将新家涂成大花脸,又能保留女儿爱 ...

  2. 【代码案例】网页版表白墙 待办事项 (包含完整源码)

    网页版表白墙 表白墙 1. 创建内容 2. 调整样式 3. 实现提交 最终样式 待办事项 1. 添加内容 2. 调整样式 实现功能 新增待办事项 已完成事项 删除任务 最后 嗨~~今天给大家分享分享两 ...

  3. 微信公众平台消息接口开发(34)微信墙之表白墙/婚礼墙/晚会墙/会议墙/晒单墙/照片墙/历史墙...

    微信公众平台开发模式 微信 公众平台 消息接口 开发模式 企业微信公众平台 微信墙 婚礼墙/晚会墙/会议墙/晒单墙/照片墙/历史墙 历史上的今天 作者:方倍工作室   原文: http://www.c ...

  4. html5 3d背景墙,3D背景墙的价格怎样?3D背景墙的介绍?

    3D背景墙可以随我们的喜好去更换我们房子的环境,能让我们身临其境,感受大自然的奥妙又或是漫步在外太空,也还可以让我们身处于一个古堡中,做我们的公主又或是王子的美梦.以下就是对3D背景墙的价格怎样,3D ...

  5. 笔记本高负荷时撞功耗墙、温度墙问题解决方案

    20210514 笔记本功耗墙.温度墙问题解决方案: 前言: 手头上的两款远古笔记本依然发光发热,但是老笔记本的散热不给力,WIN10在持续高负载下Intel无法睿频到最高频率,经常撞温度墙降频到一个 ...

  6. iOS积分墙和积分墙的区别在哪呢?

    IOS积分墙: iOS赚钱积分墙 ;是在一个百应用内展示各种积分任务(下载安装推荐的优质应用.注册.填表等),以供用户度完成任务获得积分的页面.用户在嵌入积分墙的应用问内完成任务,该应用的开发者答就能 ...

  7. 弧形背景html,弧形背景墙—弧形背景墙相关知识介绍

    现在的装修方式真的是很多的,背景墙就是现在一种新型的装修方式,而且就算是一个小小的背景墙,它也是有很多形状的,比如弧形.圆形等.今天小编要给大家介绍的是弧形背景墙的相关知识. 弧形背景墙 弧形背景墙- ...

  8. 微信公众平台消息接口开发(34)微信墙之表白墙/婚礼墙/晚会墙/会议墙/晒单墙/照片墙/历史墙

    微信公众平台开发模式 微信 公众平台 消息接口 开发模式 企业微信公众平台 微信墙 婚礼墙/晚会墙/会议墙/晒单墙/照片墙/历史墙 历史上的今天 作者:方倍工作室   原文: http://www.c ...

  9. WPF技术触屏上的应用系列(一): 3D 图片(照片)墙、柱面墙(凹面墙或者叫远景墙、凸面墙或者叫近景墙)实现

    去年某客户单位要做个大屏触屏应用,要对档案资源进行展示之用.客户端是Window7操作系统,54寸大屏电脑电视一体机.要求有很炫的展示效果,要有一定的视觉冲击力,可触控操作.当然满足客户的要求也可以有 ...

  10. 在Revit里如何将普通墙与曲面墙的内壁连接

    在Revit里如何将普通墙与曲面墙的内壁连接?创建异形建筑时,为了达到如图1所示的效果,该如何操作: 我们可以使用体量建模的方式来创建该类建筑,要点在于如将幕墙与曲面墙的内壁连接.具体方法如下: 一. ...

最新文章

  1. 认知智能再突破,阿里 18 篇论文入选 AI 顶会 KDD
  2. 干货丨贝叶斯机器学习前沿进展
  3. PHP solr服务器搭建,搜索方案 solr+php如何安装配置?
  4. GNU make manual 翻译(六十九)
  5. 加快windows上对大文件,以及很多很多小文件进行不同磁盘拷贝的速度——windows上的最快拷贝软件FastCopy
  6. Linux查看所有用户和组信息
  7. mysql查询各科前3_MySQL 查询各科前三的数据
  8. 《面向模式的软件体系结构1--模式系统》读书笔记(5)--- 管理
  9. TC的handle绿了……菜鸟表示泪流满面
  10. Spark机器学习库(MLlib)指南
  11. uvalive4838(凸包+重心)
  12. 济南女子学院计算机科学与技术,山东女子学院计算机科学与技术专业2016年在山东理科高考录取最低分数线...
  13. Dijkstra算法(求一点到任意一点的最短距离)
  14. 8块钱搞定一个顶级域名 (全过程) B篇
  15. 练习项目--cookie数据脱敏
  16. C# System.Timers.Timers的用法在工控设备上位中的用法
  17. Set和Map的区别 (@es6)
  18. 如何做一个自律的人?
  19. dejavu中如何添加html文件,【dejavu Chrome插件图文介绍】dejavu Chrome插件图片教程 - 开发者插件 - Chrome插件网...
  20. 【Android】自定义View和控件时出现Binary XML file line #报错行数: Binary XML file line #9: Error inflating class 类路径

热门文章

  1. Gdrive 使用教程
  2. YYC松鼠短视频系统完整版的文件结构目录介绍以及自定义目录详解
  3. JS - 解决鼠标单击、双击事件冲突问题(同时实现两种事件响应)
  4. Infer静态分析-内存泄漏分析
  5. OCLint + Infer + Jenkins + SonarQube 搭建iOS代码静态分析系统
  6. nginx配置域名指向ip
  7. python制作口算表
  8. php执行fastlane,Fastlane的使用及进阶
  9. windows命令 format的用法
  10. SpringMVC类型转换遇到的问题