美食是人类永恒的追求,现在有很多的美食爱好者,他们希望通过自己的各种方式来学习更多的美食制作方式,以及分享自己制作美食的一些过程,说让更多的人。享受到更加美味可口的饭菜。本系统也是基于这样的目的来进行开发的。
本系统是通过PHP:MySQL来进行开发,主要实现了美食资讯系统简介,在线留言,用户注册登录,美食信息,养生菜谱,养生概念等功能模块,前台用户可以查看这些功能模块,后台管理人员可以在后台对这些功能进行管理。通过这些功能基本满足美食网站的基本需求。
美食网站首页部分界面
美食列表界面
用户通过点击导航菜单可以看到美食的列表信息,在美食的列表信息界面中可以看到美食的编号,名称,类型和照片等信息,通过点击详细可以看到美食的详细信息
美食详细界面
用户在上一步中点击了美食的详情按钮之后可以看到美食的详细信息,在美食的详细页面中可以看到美食更加信息的介绍,同时可以对美食进行评论和收藏等操作
美食网站后台登录页面
美食信息添加界面
管理员添加美食信息是在点击添加按钮的前提下操作的,当页面跳转至meishixinxi_add.php,添加成功后,管理员在meishixinxi_list.php进行美食信息管理,meishixinxi_ list.php通过查询数据库的美食信息表列出所有美食信息,每条美食信息对应一个删除按钮和修改按钮,当管理员点击删除按钮,直接在数据库删除美食信息,并重定向当前页面,当管理员选择点击修改,则进入meishixinxi_update.php页面,进行美食信息的修改。
美食信息管理界面.
美食网站系统功能结构图
<?php
error_reporting(E_ALL ^ E_NOTICE);
$conn=@mysql_connect("localhost","root","root") or die("数据库链接失败".mysql_error());
mysql_select_db("daizu",$conn) or die("数据库链接失败".mysql_error());
mysql_query('set names utf8');
//设置时区
date_default_timezone_set('asia/shanghai');
define('SYS_ROOT', str_replace("\\", '/', dirname(__FILE__)));
define('File_ROOT', SYS_ROOT."/upload/");
define('IMG_ROOT', SYS_ROOT . "/upload/");
@extract($_POST);
@extract($_GET);
function getfirst($sql)
{
$res=mysql_query($sql);
$rows=mysql_fetch_array($res);
return $rows;
}
//
function getcount($sql){
$res=mysql_query($sql);
return mysql_num_rows($res);
}
function get_name($id,$table)
{
$sql="select * from $table where id='$id'";
$rows=getfirst($sql);
return $rows[name];
}
//遍历创建目录
function Remkdir($path) {
if (!file_exists($path)) {
Remkdir(dirname($path));
@mkdir($path, 0777);
}
}
//上传图片
function upload_image($inputname, $image=null, $type='upimages', $width=440) {
$n = time().rand(1000,9999).'.jpg';
$z = $_FILES[$inputname];
if ($z && strpos($z['type'], 'image')===0 && $z['error']==0) {
if (!$image) {
Remkdir( IMG_ROOT . '/' . "{$type}/" );
$image = "{$type}/{$n}";
$path = IMG_ROOT . '/' . $image;
} else {
Remkdir( dirname(IMG_ROOT .'/' .$image) );
$image = "{$type}/{$n}";
$path = IMG_ROOT . '/' .$image;
}
//echo $path ;
move_uploaded_file($z['tmp_name'], $path);
//echo $image;exit;
return $image;
}
return $image;
}
//获取文件后缀名
function get_extend($file_name)
{
$extend = pathinfo($file_name);
$extend = strtolower($extend["extension"]);
return $extend;
}
//文件上传实现
function upload_file($inputname, $file=null)
{
$year = date('Y'); $day = date('md');
$z = $_FILES[$inputname];
$file_ext=get_extend($z['name']);
$n = time().rand(1000,9999).".".$file_ext;
if ($z && $z['error']==0) {
if (!$file) {
Remkdir( File_ROOT . '/' . "{$day}" );
$file = "{$day}/{$n}";
$path = File_ROOT . '/' . $file;
} else {
Remkdir( File_ROOT . '/' . "{$day}" );
$file = "{$day}/{$n}";
$path = File_ROOT . '/' .$file;
}
//echo $path ;
move_uploaded_file($z['tmp_name'], $path);
//echo $file;exit;
return $file;
}
return $file;
}
//分页函数.
function get_pager($url, $param, $count, $page = 1, $size = 10)
{
$size = intval($size);
if($size < 1)$size = 10;
$page = intval($page);
if($page < 1)$page = 1;
$count = intval($count);
$page_count = $count > 0 ? intval(ceil($count / $size)) : 1;
if ($page > $page_count)$page = $page_count;
$page_prev = ($page > 1) ? $page - 1 : 1;
$page_next = ($page < $page_count) ? $page + 1 : $page_count;
$param_url = '?';
foreach ($param as $key => $value)$param_url .= $key . '=' . $value . '&';
$pager['url'] = $url;
$pager['start'] = ($page-1) * $size;
$pager['page'] = $page;
$pager['size'] = $size;
$pager['count'] = $count;
$pager['page_count'] = $page_count;
if($page_count <= '1')
{
$pager['first'] = $pager['prev'] = $pager['next'] = $pager['last'] = '';
}
else
{
if($page == $page_count)
{
$pager['first'] = $url . $param_url . 'page=1';
$pager['prev'] = $url . $param_url . 'page=' . $page_prev;
$pager['next'] = '';
$pager['last'] = '';
}
elseif($page_prev == '1' && $page == '1')
{
$pager['first'] = '';
$pager['prev'] = '';
$pager['next'] = $url . $param_url . 'page=' . $page_next;
$pager['last'] = $url . $param_url . 'page=' . $page_count;
}
else
{
$pager['first'] = $url . $param_url . 'page=1';
$pager['prev'] = $url . $param_url . 'page=' . $page_prev;
$pager['next'] = $url . $param_url . 'page=' . $page_next;
$pager['last'] = $url . $param_url . 'page=' . $page_count;
}
}
return $pager;
}
?>
第一章 绪论3
第一节 开发背景3
第二节 开发意义3
第三节 研究内容3
第二章 主要技术和工具介绍4
第一节 php脚本语言4
第二节MySQL数据库4
第三节 B/S模式5
第三章 系统分析5
第一节 可行性分析5
一、经济可行性5
二、技术可行性5
三、操作可行性5
第二节 需求分析6
第三节 业务流程分析6
第四节 数据流程分析7
第4章 系统设计10
第一节 系统结构设计10
第二节 功能模块设计10
第三节 数据库设计11
一、数据库设计概述11
二、概念设计11
三、表设计13
第五章 系统实现18
第一节 基本任务18
第二节 登录模块的实现18
第三节 前台模块的实现20
一、注册模块的实现20
二、留言模块的实现21
第四节 后台登录模块的实现23
一、养生菜谱管理模块的实现25
二、美食类别管理模块的实现26
三、美食信息管理模块的实现26
第六章 系统测试28
第一节 测试目的28
第二节 测试概述28
第三节 单元测试28
一、登录测试28
二、美食信息测试29
三、美食类别管理测试30
第四节 集成测试30
总结31
致 谢32
参考文献33