PHP案例 许愿墙 PHP许愿墙_许愿墙php代码展示-程序员宅基地

技术标签: MySQL  许愿墙  简单  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.修改愿望

  • 为了防止愿望被作者以外的人修改
  • 在发表愿望时可以设置保护密码
  • 当愿望受到密码保护后
  • 在修改和删除愿望时就要先验证密码
  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显示正常、其他版本未测试。

如需要技术指导请私聊我,在线时间不固定,有可能好几个星期也不看一次;

评论不回复

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_39476250/article/details/90448666

智能推荐

python集合基本操作_Python集合基本概念与相关操作实例分析-程序员宅基地

文章浏览阅读84次。本文实例讲述了Python集合基本概念与相关操作。分享给大家供大家参考,具体如下:集合的概念集合是无序可变,元素不能重复。实际上,集合底层是字典实现,集合的所有元素都是字典中的“键对象”,因此是不能重复的且唯一的。集合创建和删除使用{}创建集合对象,并使用 add()方法添加元素>>> a = {3,5,7}>>> a{3, 5, 7}>>> ..._python集合的运用abc篮球特长

贝斯曲线_你被频响曲线骗了吗?-程序员宅基地

文章浏览阅读300次。烧友们在选择耳机或者其他音频设备的时候,通常都会借鉴性的参考它们的参数。比如阻抗、灵敏度、解析力、频响范围等等,他们的表现都会影响到耳机或者其他音频设备的整体素质。那么今天说的频响曲线,跟耳机的整体素质又有什么关系呢?要了解频响曲线,首先我们要知道什么是频响。频响是频率响应的简称,英文名称是Frequency Response,一般是用来描述仪器对于不同频率信号处理能力的差异。“频”指“..._频响曲线 是贝塞斯曲线吗

苹果桌面的计算机,桌面电脑远没死:苹果又重新关注它了-程序员宅基地

文章浏览阅读105次。桌面电脑回来了?其实,从技术上来说桌面电脑从来没有离开。但是在过去十年中,我们越来越多地关注移动设备:平板电脑、智能手机甚至是笔记本电脑,而在这些设备当中,苹果又占据了很大一部分的销量。但是今年我们可以轻而易举地从苹果的 WWDC 主题演讲中获取一个信息,那就是依然有很多人喜欢台式电脑。或许在有的时候,桌面电脑是没有替代品的。完整的桌面计划苹果在 WWDC 上对关于 Mac 的话题其实并没有谈论太..._苹果桌上电脑

cs5460a c语言程序,cs5460a应用电路(含源程序)-程序员宅基地

文章浏览阅读714次。描述cs5460a应用电路CS5460A主要用于智能电度表的设计,也可用于瞬时电压电流,电压电流有效值及功率的测量。电路设计可以用单片机,也可以用自引导EPROM,运用灵活可以适应不同的需求。电压电流有效值读出的是3B 24位的无符号数,而瞬时值则是有符号24位数表示,最高位表示正负。CS5460A还提供了电能计量脉冲输出端口EOUT和功率方向端口EDIR,因而可以方便的与步进电机计数器连接构成简..._cs5460a

Java命令行解析类库技术选型分析_commons cli jcommander-程序员宅基地

文章浏览阅读4.8k次。虽然在Java领域中web程序应用广泛,但是基于Java开发命令行的工具也是非常使用的,本文将介绍一下在过去几天针对命令行工具Java类库的调研结果。JCommander项目地址: https://github.com/cbeust/jcommander Star: 1010 Fork: 227 文档地址: http://jcommander.org/使用示例:p_commons cli jcommander

Spring Boot的应用启动与关闭_禁用heapdump-程序员宅基地

文章浏览阅读9.3k次,点赞2次,收藏4次。1. Spring Boot应用打包spring Boot应用可以打成jar包,其中内嵌tomcat,因此可以直接启动使用。但是在Spring Boot应用启动之前,首先需要进行打包,本文讲述的是Maven工程的打包,打包需要的前提条件(pom.xml文件中的内容)是:...jar... org.springframework.boot spring-_禁用heapdump

随便推点

SAP WM模块常用T-code_display warehouse-程序员宅基地

文章浏览阅读457次。SAP WM模块常用T-code_display warehouse

Python Tkinter 哲学家问题可视化_哲学 可视化-程序员宅基地

文章浏览阅读681次,点赞3次,收藏17次。Python Tkinter 哲学家问题可视化学校的课设总算是告一段落,现在有时间分享一下代码和心得了。这次的文章是回应之前的雏形版代码的,这次的可是完全版哦。我们先来看一下效果吧!效果总归还行吧,代码也比较简短,只有170行。再此推荐你看我之前关于这个题目的文章,接下来我直接代码讲解了。# -*- coding:utf-8 -*-#print('资源加载中,稍等片刻……')from tkinter import *from PIL import Image,ImageTk from t_哲学 可视化

LINUX服务器安全加固方法整理_检查登录提示-是否更改telnet警告banner-程序员宅基地

文章浏览阅读6.8k次,点赞5次,收藏39次。1)–设置启用空闲激活、屏幕锁定、屏保和空闲激活时间# gconftool-2 --direct \--config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory \--type bool \--set /apps/gnome-screensaver/idle_activation_enabled true# gconftool-2 --direct \--config-source xml:readwrite:/etc/gconf/_检查登录提示-是否更改telnet警告banner

2. 搭建一个Spring Cloud项目_javacloud怎样集成unity-程序员宅基地

文章浏览阅读231次。搭建一个SpringCloud项目1.New Project2.聚合总父工程名字3.Maven选版本4.工程名字5.字符编码6.注解生效激活7.java编译版本选88.File Type过滤9.删除src文件夹10.修改pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://ww_javacloud怎样集成unity

强化学习—DQN训练计算机玩Flappy Bird游戏_paddlepaddle版flappy-bird—使用dqn算法实现游戏智能-程序员宅基地

文章浏览阅读1.1w次,点赞18次,收藏152次。文章目录Q-Learning简述Deep Q Network(DQN)为什么要用DQNDQN中的几个巧妙的地方DQN流程简述Q-Learning简述Deep Q Network(DQN)为什么要用DQNDQN中的几个巧妙的地方DQN流程简述Q Learning 就是创造一个Q表,来指导机器人的行动,Q表对应Action的数值越大,机器人就越大概率地采取这个Action.Q函数的更新方..._paddlepaddle版flappy-bird—使用dqn算法实现游戏智能

Katalon Studio简介_katalon studio的内置脚本语言是什么-程序员宅基地

文章浏览阅读1.8k次,点赞2次,收藏7次。下面是根据katalon 内置的Quick Guide截图的翻译出的基础指导:一、Katalon Studio界面功能区概观指导:二、测试用例操作手册视图指导:三、记录测试用例:四、执行与调试五、移动测试(Mobile Testing)..._katalon studio的内置脚本语言是什么