期末大作业——许愿墙
Posted 孙中明
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了期末大作业——许愿墙相关的知识,希望对你有一定的参考价值。
项目展示
首页访问地址 http://localhost/WISH/index.php
添加许愿
编辑许愿
密码默认是:szm
删除许愿
数据准备
代码
│ index.php
│ php_wish.sql
│ save.php
│
├─common
│ function.php
│ init.php
│
├─css
│ style.css
│
├─js
│ common.js
│ jquery-1.12.4.min.js
│
└─view
│ index.html
│
└─common
add.html
edit.html
password.html
<?php
require './common/init.php';
require './common/function.php';
// 获取当前页码
$page = max(input('get', 'page', 'd'), 1);
// 每页显示的条数
$size = 4;
$sql = 'SELECT count(*) FROM `wish`';
if (!$res = mysqli_query($link, $sql))
exit("SQL[$sql]执行失败:" . mysqli_error($link));
$total = (int) mysqli_fetch_row($res)[0];
// 查询所有愿望
$sql = 'SELECT `id`,`name`,`content`,`time`,`color` FROM `wish` ORDER BY `id` DESC LIMIT ' . page_sql($page, $size);
if (!$res = mysqli_query($link, $sql))
exit("SQL[$sql]执行失败:" . mysqli_error($link));
$data = mysqli_fetch_all($res, MYSQLI_ASSOC);
mysqli_free_result($res);
// 查询结果为空时,自动返回第1页
if (empty($data) && $page > 1)
header('Location: ./index.php?page=1');
exit;
// 编辑或删除愿望
$id = max(input('get', 'id', 'd'), 0);
$action = input('get', 'action', 's');
if ($id)
$password = input('post', 'password', 's');
$sql = 'SELECT `name`,`content`,`color`,`password` FROM `wish` WHERE `id`=' . $id;
if (!$res = mysqli_query($link, $sql))
exit("SQL[$sql]执行失败:" . mysqli_error($link) . $sql);
if (!$edit = mysqli_fetch_assoc($res))
exit('该愿望不存在!');
mysqli_free_result($res);
$checked = isset($_POST['password']) || empty($edit['password']);
if ($checked && $password !== $edit['password'])
$tips = '密码不正确!';
$checked = false;
// 删除愿望
if ($checked && $action == 'delete')
$sql = 'DELETE FROM `wish` WHERE `id`=' . $id;
if (!mysqli_query($link, $sql))
exit('SQL执行失败:' . mysqli_error($link));
header('Location: ./index.php');
exit;
mysqli_close($link);
require './view/index.html';
<?php
/**
* 接收输入的函数
* @param array $method 输入的数组(可用字符串get、post来表示)
* @param string $name 从数组中取出的变量名
* @param string $type 表示类型的字符串
* @param mixed $default 变量不存在时使用的默认值
* @return mixed 返回的结果
*/
function input($method, $name, $type = 's', $default = '')
switch ($method)
case 'get': $method = $_GET;
break;
case 'post': $method = $_POST;
break;
$data = isset($method[$name]) ? $method[$name] : $default;
switch ($type)
case 's': return is_string($data) ? $data : $default;
case 'd': return (int) $data;
default: trigger_error('不存在的过滤类型“' . $type . '”');
/**
* 格式化日期
* @param type $time 给定时间戳
* @return string 从给定时间到现在经过了多长时间(天/小时/分钟/秒)
*/
function format_date($time)
$diff = time() - $time;
$format = [86400 => '天', 3600 => '小时', 60 => '分钟', 1 => '秒'];
foreach ($format as $k => $v)
$result = floor($diff / $k);
if ($result)
return $result . $v;
return '0.5秒';
/**
* 生成分页导航HTML
* @param string $url 链接地址
* @param int $total 总记录数
* @param init $page 当前页码值
* @param int $size 每页显示的条数
* @return string 生成的HTML结果
*/
function page_html($url, $total, $page, $size)
// 计算总页数
$maxpage = max(ceil($total / $size), 1);
// 如果不足2页,则不显示分页导航
if ($maxpage <= 1)
return '';
if ($page == 1)
$first = '<span>首页</span>';
$prev = '<span>上一页</span>';
else
$first = "<a href=\\"$url1\\">首页</a>";
$prev = '<a href="' . $url . ($page - 1) . '">上一页</a>';
if ($page == $maxpage)
$next = '<span>下一页</span>';
$last = '<span>尾页</span>';
else
$next = '<a href="' . $url . ($page + 1) . '">下一页</a>';
$last = "<a href=\\"$url$maxpage\\">尾页</a>";
// 组合最终样式
return "<p>当前位于:$page/$maxpage</p>$first $prev $next $last";
/**
* 获取SQL中的分页部分
* @param int $page 当前页码值
* @param int $size 每页显示的条数
* @return string 拼接后的结果
*/
function page_sql($page, $size)
return ($page - 1) * $size . ',' . $size;
获取代码
https://github.com/hiszm/wallwish
如果GitHub 代码网络不稳定;
微信公众号@孙中明; 回复6005 获取代码和数据库文件
以上是关于期末大作业——许愿墙的主要内容,如果未能解决你的问题,请参考以下文章
HTML5期末大作业:餐饮美食网站设计——咖啡(10页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 咖啡网页设计 美食餐饮网页设计...(代码片段