《PHP 网站设计项目教学》实训指导书
《PHP 网站设计项目教学》
实训指导书
上饶职业技术学院
信息工程系
《PHP 网站设计项目教学》实训指导书
目 录
实训 1:图书信息管理系统(PHP+MySQL 实现) .....................1
实训 2:梦幻网络日记(PHP+ MySQL 实现) ..........................37
实训 3:企业网站系统(PHP+MySQL 实现) ...........................42
实训 4:电子商务网站(PHP+MySQL 实现) ...........................58
《PHP 网站设计项目教学》实训指导书
1
实训 1:图书信息管理系统(PHP+MySQL
实现)
实训名称: 成绩:
实训日期: 年 月 日 实训报告日期: 年 月 日
一、实训目的
通过图书信息管理系统的实现,学生必须掌握:
1、项目设计思路
① 2、数据库设计
① 3、首页页面设计
① 4、注册模块设计
① 5、登录模块设计
① 6、图书信息添加模块设计
① 7、图书信息管理模块设计
① 8、图书搜索模块设计
二、实训内容
图书信息管理系统的设计与实现
三、实训环境
服务器端:
操作系统:Windows 2003 Server/Linux(推荐)/ Windows XP。
① 服务器:Apache/ (Win32)
① PHP 软件:PHP Version
① 数据库:MySQL 、SQL Server2000 数据库。
① MySQL 图形化管理软件:phpMyAdmin-
① 开发工具:Adobe Dreamweaver CS5。
① 浏览器:IE 及以上版本。
① 分辨率:最佳效果 1024×768 像素。
《PHP 网站设计项目教学》实训指导书
2
客 户 端:
① 浏览器:推荐 IE 及以上版本。
① 分辨率:最佳效果 1024×768 像素。
四、实训步骤、过程
项目设计思路
功能阐述
图书信息管理系统主要实现对图书信息进行分类、分语言管理,并对图书的
基本信息、程序、文稿和视频文件进行管理,以便用户可以快速找到需要的资源。
在本系统中,用户可以添加、修改和删除图书信息。
系统预览
图书信息管理系统由多个页面组成,下面列出几个典型页面,其他页面可参
见配套资源中的源程序。
图书信息管理系统主页面的运行效果如图 所示。
图 图书信息管理系统主页面
图书信息添加页面的运行效果如图 所示。
图书详细信息页面的运行效果如图 所示。
图 图书信息添加页面 图 图书详细信息页面
《PHP 网站设计项目教学》实训指导书
3
功能结构
图书信息管理系统的功能结构如图 所示。
图 图书信息管理系统的功能结构图
文件组织结构
图书信息管理系统中使用的根目录文件夹是 01,其中包括的文件架构如图
所示。
图 图书信息管理系统的文件架构图
数据库设计
数据库设计结构
图书信息管理系统中,采用的是 MySQL 数据库,主要用来存储图书信息。
这里将数据库命名为 db_book,其中包含的数据表如图 所示。
图书信息管理系统
添
加
图
书
信
息
登录 未登录
修
改
图
书
信
息
删
除
图
书
信
息
查
看
图
书
信
息
查
看
图
书
信
息
搜
索
图
书
信
息
搜
索
图
书
信
息
《PHP 网站设计项目教学》实训指导书
4
图 数据库结构
数据表设计结构
数据表设计是一个非常关键的环节,下面对系统中的数据表结构进行分析。
1.图书信息表(tb_book)
图书信息表主要用于存储图书信息,数据表字段设计如表 所示。
表 图书信息表(tb_book)设计
字 段 类 型 额 外 说 明
id int(10) auto_increment 信息id
sort varchar(100) 图书类别
talk varchar(100) 图书语言
books varchar(100) 书名
synopsis varchar(100) 简介
catalog varchar(100) 目录
bookpath varchar(100) 图书文稿路径
programpath varchar(100) 图书程序路径
videopath varchar(100) 视频文件路径
date date 录入日期
2.图书类别表(tb_sort)
图书类别表主要用于存储图书类别信息,数据表字段设计如表 所示。
表 图书类别表(tb_sort)设计
字 段 类 型 额 外 说 明
id int(10) auto_increment 类别 id
sort varchar(40) 类别名称
3.图书语言表(tb_program)
图书语言表主要用于存储图书语言,数据表字段设计如表 所示。
表 图书语言表(tb_program)设计
字 段 类 型 额 外 说 明
id int(10) auto_increment 语言 id
talk varchar(40) 语言名称
《PHP 网站设计项目教学》实训指导书
5
4.会员信息表(tb_login)
会员信息表主要用于存储会员的基本信息,数据表字段设计如表 所示。
表 会员信息表(tb_login)设计
字 段 类 型 额 外 说 明
id int(10) auto_increment 会员 id
user varchar(40) 会员用户名
pwd varchar(40) 会员密码
section varchar(40) 所在部门
name varchar(40) 真实姓名
连接数据库
由于系统大部分页面都需要使用数据库,如果每页都编写相同的数据库连接
代码,会显得十分烦琐,所以本系统将数据库连接代码单独存入一个 PHP 文件
中,在需要与数据库连接的页面中,使用包含函数包含该文件即可,代
码如下:
<?php
$conn=mysql_connect("localhost","root","111"); //连接数据库服务器
mysql_select_db("db_book",$conn); //连接数据库
mysql_query("set names utf8"); //对数据库中编码格式进行转换,避免出
现中文乱码的问题
?>
首页设计
首页页面概述
运行程序,进入图书信息管理系统首页,如图 所示。在首页中,对图书
信息按语言进行了分类显示,单击图书书名可查看图书的详细信息,还可以进行
搜索图书信息等操作。其中图书信息添加和图书信息管理需要登录后才可以操作。
《PHP 网站设计项目教学》实训指导书
6
图 图书信息管理系统首页运行结果
获取超链接传递的数据
本系统首页页面中,查看图书详细信息及更多图书信息分别使用了超链接传
值技术。查看图书详细信息时,主要通过超链接传递图书的 id 序号;查看更多
图书信息时,主要通过超链接传递图书的语言。关键代码如下:
(1)通过超链接传递图书的 id 序号:
<a href=" echo $array1['id'];?>"><?php echo
$array1['books'];?></a>
(2)通过超链接传递图书的语言:
<a target="_blank" href=" echo $talk1;?>"> 更 多
<<</a>
1.通过超链接传递值
定义超链接使用<a>标记,其语法格式如下:
<a href=URL name=name target=target>链接文字</a>
a 标记的属性如下:
① href 属性:指定所链接文件的 URL 路径。该路径可以是相对路径,也可
以是绝对路径。
① name 属性:指定页面的锚点名称,如果需要链接到对应的锚点位置,需
要在锚点名称前添加一个“#”字符。
① target 属性:指定要打开的链接所使用的浏览器窗口名称,可以使用自定
义的窗口名称,也可以使用下面 4 个内置的窗口名称,其中前两个比较常用。
《PHP 网站设计项目教学》实训指导书
7
_self:在当前窗口中打开链接文件,是默认值。
_blank:开启一个新的窗口打开链接文件。
_parent:在父级窗口中打开文件,常用于框架页面。
_top:在顶层窗口中打开文件,常用于框架页面。
2.通过$_GET[]方法获取超链接传递的数据
获取超链接传递的数据,需要使用$_GET[]方法。
(1)获取图书 id 序号的关键代码如下:
if(isset($_GET['id'])){ //判断图书 id 是否存在
$id=$_GET['id']; //为图书 id 定义变量名称
$select1=mysql_query("select * from tb_book where id='$id'",$conn);//查询图书信
息
$array1=mysql_fetch_array($select1); //获取查询结果
}
(2)获取图书语言的关键代码如下:
if(isset($_GET['talk1'])){ //判断图书语言信息是否存在
$talk=$_GET['talk1']; //为图书语言信息定义变量名称
$select1=mysql_query("select * from tb_book where talk='$talk'",$conn);//查询图
书信息
}
首页页面实现过程
首页页面的设计效果如图 所示。
《PHP 网站设计项目教学》实训指导书
8
图 首页页面设计效果
具体实现过程如下:
(1)首页页面主要包括程序导航菜单、搜索及最新图书信息列表等功能,
其中,导航菜单部分包括输出首页、图书信息添加和图书信息管理的超链接,关
键代码如下:
<td width="800" height="29" valign="bottom"
background="images/"><table width="800">
<tr>
<td width="47"><div align="center"><a href="">首页</a></div></td>
<td width="87"> <div align="center"><a href="">图书信息添加</a>
<a href=""></a></div></td>
<td width="84"><div align="center"><a href="">图书信息管理</a></div></td>
<?php
if(isset($_SESSION['user'])){ //判断 session 是否存在
?>
<td width="512"><div align="right"><a href="">
</a>欢迎您:<?php echo $_SESSION['user'];?></div></td>
<td width="46"><div align="right"><a href="">退出</a></div></td>
<?php
}
?>
</tr>
</table></td>
《PHP 网站设计项目教学》实训指导书
9
(2)在搜索部分创建 form 表单,提交查询的关键字,并且将关键字提交到
文件中进行处理。图书查询 form 表单创建的关键代码如下:
<td width="800" height="30" align="center" bgcolor="#ECC647">
<table width="758" height="23" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="206"><div align="right" class="STYLE2">图书搜索:</div></td>
<td width="159"><table>
<form id="list" name="list" method="post">
<tr>
<td width="125" align="left" valign="middle"><select name="select" onchange=
"javascript: ()">
<option value="" selected="selected">请选择</option>
<option value="Famous_Id">类别</option>
<option value="Famous_Ids">语言</option>
<option value="boo_name">书名</option>
<option value="jianjie">简介</option>
<option value="mulu">目录</option>
</select></td>
</tr>
</form>
</table>
</td>
<td width="295">
<table width="254" height="29" border="0" cellspacing="0"
cellpadding="0">
<form id="form1" name="form1" method="post" action=""
onKeyPress="press(3)" onKeyUp="up(3)">
<tr>
<td width="110"><select name="select2">
<option selected="selected">请选择</option>
<?php
if(isset($_POST['select'])){ //判断搜索条件是否存在
$select=$_POST['select']; //为搜索条件定义变量名
if($select=="Famous_Id"){ //判断搜索条件是否为“类别”
《PHP 网站设计项目教学》实训指导书
10
$sel=mysql_query("select * from tb_sort",$conn); //查询图书类别
while($arr=mysql_fetch_array($sel)){ //循环输出图书类别信息
?>
<option value="<?php echo $arr['sort'];?>"><?php echo
$arr['sort'];?></option>
<?php
}
}else if($select=="Famous_Ids") {//判断搜索条件是否为“语言”
$sel1=mysql_query("select * from tb_program",$conn); //查询图书语言
while($arr1=mysql_fetch_array($sel1)){ //循环输出图书语言信息
?>
<option value="<?php echo $arr1['talk'];?>" selected="selected"><?php
echo $arr1['talk'];?></option>
<?php
}
}else{
?>
<option value="<?php echo $arr1['talk'];?>"
selected="selected"><?php echo $arr1['talk'];?></option>
<?php
}
}
?>
</select>
</td>
<td width="144"><input type="image" name="imageField"
src="images/" onclick= "return fetch();" /></td>
</tr>
</form>
</table>
</td>
<td width="98"> </td>
</tr>
</table></td>
《PHP 网站设计项目教学》实训指导书
11
(3)最新图书信息显示,可以查询出每类图书中最新的两条数据,并且通
过 while 语句循环输出查询结果,其关键代码如下:
<?php
include("conn/");
//查询 PHP 类最新图书信息
$select1=mysql_query("select * from tb_book where talk='PHP' order by id DESC limit
2",$conn);//查询 C 类最新图书信息
$select2=mysql_query("select * from tb_book where talk='C' order by id DESC limit
2",$conn);//查询.net 类最新图书信息
$select3=mysql_query("select * from tb_book where talk='.net' order by id DESC limit
2",$conn); //查询 JAVA 类最新图书信息
$select4=mysql_query("select * from tb_book where talk='JAVA' order by id DESC
limit 2",$conn);//查询 VB 类最新图书信息
$select5=mysql_query("select * from tb_book where talk='VB' order by id DESC limit
2",$conn);//查询其他类最新图书信息
$select6=mysql_query("select * from tb_book where talk='其他' order by id DESC limit
2",$conn);
$select=mysql_query("select * from tb_book",$conn); //查询所有图书信息,供搜
索使用
$array=mysql_fetch_array($select); //获取所有图书信息
?>
<td height="100" align="center" valign="baseline">
<table width="281" height="44" border="0" cellpadding="0" cellspacing="0">
<tr>
<td height="19" colspan="2"><div align="center"
class="STYLE3">PHP </div></td>
</tr>
<?php
while($array1=mysql_fetch_array($select1)){ //循环输出图书信息
$talk1=$array1['talk']; //定义变量,获取图书语言
?>
<tr>
<td width="21" height="17"> </td>
《PHP 网站设计项目教学》实训指导书
12
<td width="248" align="left">
<a href=" echo $array1['id'];?>"><?php echo
$array1 ['books'];?></a></td>
</tr>
<?php
}
?>
</table>
<p align="right"><a target="_blank" href=" echo
$talk1;?>">更多<<</a></p></td>
//省略部分代码
注册模块设计
注册模块概述
注册功能主要用于为用户获取登录用户名和密码。在首页中单击“注册”超链
接,即可进入注册页面,在注册页面中填写用户名、密码、部门及真实姓名后,
单击“注册”按钮即可完成注册操作。注册模块的运行效果如图 所示。
图 注册模块运行效果
注册模块实现过程
注册模块的设计效果如图 所示。
《PHP 网站设计项目教学》实训指导书
13
图 注册模块设计效果
具体实现过程如下:
( 1 ) 用 户 注 册 模 块 主 要 由 表 单 页 面 ( ) 及 数 据 信 息 处 理 页
()组成。在表单页 中,创建 form 表单,提交用户注册信
息,并且将数据提交到 文件中,其关键代码如下:
<form id="form1" name="form1" method="post" action="">
<table width="1000" height="467" border="0" align="center" cellpadding="0"
cellspacing= "0" id="__01">
<tr>
<td colspan="7"><img src="images/" width="1000" height="174"
alt="" /></td>
</tr>
<tr>
<td rowspan="2"><img src="images/" width="145" height="213"
alt="" /></td>
<td background="images/">
<table width="371" height="147" border="0" cellpadding="0"
cellspacing="0">
<tr>
<td width="87">用户名:</td>
<td width="284"><input name="user" type="text" id="user"
/></td>
</tr>
<tr>
<td>密码:</td>
<td><input name="pwd" type="password" id="pwd" size="22"
/></td>
</tr>
<tr>
<td>部门:</td>
<td><input name="section" type="text" id="section" /></td>
</tr>
<tr>
<td>真实姓名:</td>
《PHP 网站设计项目教学》实训指导书
14
<td><input name="name" type="text" id="name" /></td>
</tr>
</table></td>
<td rowspan="2"><img src="images/" width="149" height="213" alt=""
/></td>
</tr>
<tr>
<td><img src="images/" width="257" height="27" alt=""
/></td>
<td width="75" height="27">
<input type="image" name="imageField"
src="images/" /></td>
<td><img src="images/" width="54" height="27" alt=""
/></td>
<td width="73" height="27">
<input type="image" src="images/" onclick="(); return
false;" /></td>
<td><img src="images/" width="247" height="27" alt=""
/></td>
</tr>
<tr>
<td colspan="7"><img src="images/" width="1000" height="80"
alt="" /></td>
</tr>
</table>
</form>
(2)用户单击“注册”按钮后,将数据提交到数据处理页 中,对
提交的数据进行验证,如果正确,则将数据添加到指定的数据表中,提示用户注
册成功;否则,返回用户注册页面。 的代码如下:
<?php
header("content-type:text/html;charset=utf-8"); //设置页面编码
include("conn/"); //包含数据库连接文件
//判断用户名、密码等信息是否存在
if(isset($_POST['user']) and isset($_POST['pwd']) and isset($_POST['section']) and
《PHP 网站设计项目教学》实训指导书
15
isset($_ POST['name'])){
//判断用户名、密码等信息是否不为空
if($_POST['user']!=null and $_POST['pwd']!=null and $_POST['section']!=null and
$_POST['name']!=null){
//查询数据库中是否存在该用户名
$select=mysql_query("select * from tb_login where
user='".$_POST['user']. "'",$conn);
if(mysql_num_rows($select)==0){ // 判断查询结果是否
为 0
//如果用户名不存在,则执行添加操作
$insert=mysql_query("insert into tb_login(user,pwd,section,name)
values('".$_POST['user']."','".$_POST['pwd']."','".$_POST['section']."','
".$_POST['name']."')", $conn);
if($insert){ //判断添加操作是否执
行成功
echo "<script>alert(' 恭 喜 您 ! 注 册 成 功 !
');=''</script>";
//输出注册成功提示
}else{
echo "<script>alert('注册失败!');=''</script>";
//否则输出注册失败提示
}
}else{
//输出用户名已存在提示
echo "<script>alert(' 用 户 名 已 存 在 , 请 重 新 输 入 !
');= ''</script>";
}
}else{
//输出请填写完整信息提示
echo "<script>alert(' 请 填 写 完 整 注 册 信 息 !
');='' </script>";
}
}
?>
《PHP 网站设计项目教学》实训指导书
16
登录模块设计
登录模块概述
注册成功后,用户即可使用注册的用户名和密码进行登录。单击首页页面中
的“登录”超链接,进入登录页面,输入正确的用户名和密码,单击“登录”按钮,
即可成功登录,用户登录成功后可以添加和管理图书信息。用户登录模块的运行
效果如图 所示。
图 用户登录模块运行效果
登录模块实现过程
登录模块的设计效果如图 所示。
图 登录模块的设计效果
具体实现过程如下:
(1)用户登录模块主要由表单设计页()及数据信息处理页
()两个页面组成。在 页中,创建 form 表单提交用户登录
的用户名和密码。其关键代码如下:
<form id="form1" name="form1" method="post" action="">
<input name="user" type="text" id="user" size="20" />
<input name="pwd" type="password" id="pwd" size="22" />
<input type="image" name="imageField" src="images/" />
<input type="image" name="imageField2" src="images/"
onclick="form. reset(); return false;" />
</form>
(2)当用户单击“登录”按钮后,将在数据信息处理页中对提交的数据进行验证,
如果正确,则提示用户登录成功;否则,返回用户登录页面。用户登录数据处理页
《PHP 网站设计项目教学》实训指导书
17
的代码如下:
<?php
session_start(); //调用 session_start()函数,声明 session
header("content-type:text/html;charset=utf-8"); //设置文件编码
include("conn/"); //包含数据库连接文件
if(isset($_POST['user']) and isset($_POST['pwd'])){ //判断用户名和密码是否存
在
if($_POST['user']!=null and $_POST['pwd']!=null){ //判断用户名和密码是
否为空
$select=mysql_query("select * from tb_login where
user='".$_POST['user']."' and
pwd='".$_POST['pwd']."'",$conn); //查询用户名和密码
if(mysql_num_rows($select)==1){ // 判断查询结果是否
为 1
echo "<script>alert(' 登 录 成 功 !
');='';</script>"; //登录成功提示
$_SESSION['user']=$_POST['user']; //定义 session 变量
}else{ //输出用户名和密码不正确提示
echo "<script>alert(' 用 户 名 和 密 码 不 正 确 !
');= '';</script>";
}
}else{ //输出请输入用户名和密码提示
echo "<script>alert(' 请 输 入 用 户 名 和 密 码 !
');=''; </script>";
}
}
?>
图书信息添加模块设计
图书信息添加模块概述
只有登录成功的用户,才可以进入图书信息添加模块。在首页导航菜单中,
单击“图书信息添加”超链接,即可进入到图书信息添加页面,运行效果如图
所示。填写完整的图书信息后,单击“提交”按钮,即可完成图书信息添加操作。
《PHP 网站设计项目教学》实训指导书
18
图 图书信息添加模块运行效果
在下拉菜单中显示数据表某列的字段值
图书信息添加模块中主要通过下拉菜单显示图书类别及语言信息。首先,创
建下拉列表框。然后,使用 select 语句查询数据表中的数据。最后,将查询到的
sort 字段的值作为下拉列表框的值,使用 while()语句循环输出,其关键代码如下:
<?php
$select1=mysql_query("select * from tb_sort",$conn); //查询图书类别
<td><div align="left">类别:</div></td>
<td><div align="left">
<select name="sort" id="sort">
<?php
while($array1=mysql_fetch_array($select1)){ //循环输出类别信息
?>
<option value="<?php echo $array1['sort'];?>"><?php echo
$array1 ['sort'];?></option>
<?php
}
?>
</select>
</div></td>
?>
说明:
上面代码实现的是显示图书类别,显示图书语言的实现方法同上,这里不再
赘述。
(1)select 查询语句
select 查询语句的语法如下:
$result=mysql_query("select * from tb_user where name='mr'",$conn);
《PHP 网站设计项目教学》实训指导书
19
其中,mysql_query()函数执行对数据库操作的 SQL 语句;$conn 为服务器的
连接标识。
(2)while()循环语句
while()循环语句的作用是反复执行某一项操作,是循环控制语句中最简单且
最常用的一个。while()循环语句对表达式的值进行判断,当表达式为非 0 值时,
执行 while()语句中的内嵌语句;当表达式的值为 0 时,则不执行 while()语句中
的内嵌语句。该语句的特点是:先判断表达式,后执行语句。while 循环控制语
句的操作流程如图 所示。
图 while()循环控制语句的操作流程
其语法如下:
while (expr){ /*
statement; 先判断条件,当条件满足时执行语句块,否则
不向下执行
} */
只要 while 表达式 expr 的值为 TRUE,就重复执行嵌套中的 statement 语句,
如果 while 表达式的值一开始就是 FALSE,则循环语句一次也不执行。
图书信息添加模块实现过程
图书信息添加模块的设计效果如图 所示。
图 图书信息添加模块设计效果
具体实现过程如下:
(1)图书信息添加模块主要由表单设计页( )和数据处理页
表达式
《PHP 网站设计项目教学》实训指导书
20
()组成,表单设计页的关键代码如下:
<form action="" method="post" enctype="multipart/form-data"
name="form2" id="form2">
<p> </p>
<table width="527" height="321" border="0" cellpadding="0"
cellspacing="0">
<tr>
<td width="112"><div align="left">书名:</div></td>
<td width="415"><div align="left">
<input name="books" type="text" id="books" size="50" />
</div></td>
</tr>
<tr>
<td><div align="left">类别:</div></td>
<td><div align="left">
<select name="sort" id="sort">
<?php
while($array1=mysql_fetch_array($select1)){ //循环输出类别信息
?>
<option value="<?php echo $array1['sort'];?>"><?php echo
$array1['sort'];?> </option>
<?php
}
?>
</select>
</div></td>
</tr>
<tr>
<td><div align="left">语言:</div></td>
<td><div align="left">
<select name="talk" id="talk">
<?php
while($array2=mysql_fetch_array($select2)){ //循环输出语言信息
?>
《PHP 网站设计项目教学》实训指导书
21
<option value="<?php echo $array2['talk'];?>"><?php echo
$array2['talk'];?> </option>
<?php
}
?>
</select>
</div></td>
</tr>
<tr>
<td><div align="left">简介:</div></td>
<td><div align="left">
<input name="synopsis" type="text" id="synopsis" size="50" />
</div></td>
</tr>
<!--省略部分代码-->
<tr>
<td colspan="2"><div align="center">
<input type="submit" name="Submit" value="提交" />
<input type="submit" name="Submit2" value="取消" />
</div></td>
</tr>
</table>
</form>
(2)当用户单击“提交”按钮后,在数据处理页获取表单提交数据,将其添
加到指定的数据表中,关键代码如下:
<?php
header("content-type:text/html;charset=utf-8"); //设置文件编码
include("conn/"); //包含数据库连接文件
if(isset($_POST['Submit']) and $_POST['Submit']=="提交"){ //判断“提交”按钮
是否存在
$sort=$_POST['sort']; //定义类别变量
$talk=$_POST['talk']; //定义语言变量
$books=$_POST['books']; //定义书名变量
《PHP 网站设计项目教学》实训指导书
22
$synopsis=$_POST['synopsis']; //定义简介变量
$catalog=$_POST['catalog']; //定义目录变量
$cata=str_replace(chr(13),"<br>",$catalog); //保留目录中的换行符
$bookpath=$_POST['bookpath']; //定义文稿路径变量
$programpath=$_POST['programpath']; //定义程序路径变量
$videopath=$_POST['videopath']; //定义录像路径变量
$date=date('Y-m-d'); //定义时间变量
//执行添加操作
$insert=mysql_query("insert into
tb_book(sort,talk,books,synopsis,catalog,bookpath, programpath, videopath,date)
values('$sort','$talk','$books','$synopsis','$cata','$bookpath','$programpath','
$videopath', '$date')",$conn);
if($insert){ //判断添加语句是否执行成功
echo "<script>alert('添加成功!');=''</script>";
//输出添加成功提示
}else{
echo "<script>alert('添加失败!');=''</script>";
//输出添加失败提示
}
}
?>
说明:
在图书信息添加模块中,对于图书的文稿、程序和录像存储的都是指定的路径,并没有
完成具体文件的上传操作。这些内容需要手动存储到服务器的对应文件夹下。
图书信息管理模块设计
图书信息管理模块概述
用户成功登录后,才可以进入图书信息管理模块。在导航菜单中单击“图书
信息管理”超链接,即可进入到图书信息管理页面中,运行效果如图 所示。
在图书信息管理页面中,可以查看图书的详细信息,修改及删除图书信息。
《PHP 网站设计项目教学》实训指导书
23
图 图书信息管理页面运行效果
分页技术
在图书信息管理模块中对图书信息进行了分页显示,每页显示 10 条记录,
当总记录数超过 10 条时自动分页,并显示“下一页”、“尾页”超链接,其关键代
码如下:
<?php
if (isset($_GET['page'])){ //判断分页变量是否存在
$page=$_GET['page']; //如果存在,将分页变量值赋给指定
的变量
}else{
$page=1; //如果不存在,则设置变量初始值为 1
}
?>
<?php
if($page){
$page_size=10; //每页显示 10 条记录
$query="select * from tb_book"; //定义查询语句
$result=mysql_query($query); //执行查询操作
$message_count=mysql_num_rows($result); //获取查询总数
$page_count=ceil($message_count/$page_size); //获取总的页数
$offset=($page-1)*$page_size; //计算每页的起始记录数
//定义 SQL 语句,查询当前页显示的记录
$query="select * from tb_book where id order by id desc limit $offset,
$page_size";
$result=mysql_query($query); //执行查询操作
}
?>
《PHP 网站设计项目教学》实训指导书
24
<div align="right"> 共 <?php echo $message_count;?> 条 记 录 共 <?php echo
$page_ count;?>页
当前第<?php echo $page;?>页
<?php
if($page!=1){ //判断,如果分页变量值不为 1,输出下面的超链接
echo "<a href=
echo "<a href=
}
if($page<$page_count){ //判断,如果分页变量小于总的记录数,
则输出下面的超链接
echo " <a href=
echo " <a href=
}
?>
上面代码中使用 mysql_num_rows()函数获取 select 查询语句查询到的总记录
数,并以 ceil()函数获取总页数。
图书信息管理模块实现过程
图书信息管理模块的设计效果如图 所示。
图 图书信息管理模块设计效果
图书信息管理模块实现图书信息的分页浏览、修改、删除和查看图书详细信
息操作,下面分别对各项功能的实现方法进行介绍。
1.图书信息分页浏览
有关图书信息分页浏览的内容请参考 节,这里不再赘述。
2.查看图书详细信息
在图书分页浏览页面中,当用户单击图书名称超链接时,将进入图书详细信
息页,根据超链接传递的 ID 值,在 文件中输出指定图书的所有信息,
文件的关键代码如下:
《PHP 网站设计项目教学》实训指导书
25
<?php
include("conn/"); //包含数据库连接文件
if(isset($_GET['id'])){ //判断 id 信息是否存在
$id=$_GET['id']; //获取指定图书的 ID 值
$select1=mysql_query("select * from tb_book where id='$id'",$conn);//执行
查询语句
$array1=mysql_fetch_array($select1); //获取查询结果
}
$select=mysql_query("select * from tb_book",$conn); //查询所有图书信息,供搜
索使用
$array=mysql_fetch_array($select); //获取所有图书信息
?>
<tr>
<td height="19" align="right"><div align="right">书名:</div></td>
<td align="left"> <?php echo $array1['books'];?></td>
</tr>
//省略部分代码
<tr>
<td height="19" align="right"><div align="right"> 文 稿 存 储 位 置 :
</div></td>
<td align="left"> <a target="_blank" href="<?php echo $array1
['bookpath']
;?>">
<?php echo $array1['bookpath'];?></a></td>
</tr>
//省略部分代码
<tr>
<td height="51" align="right"><div align="right">简介:</div></td>
<td align="center" valign="middle">
<textarea name="textarea2" cols="65" rows="3"><?php echo $array1
['synopsis'];?> </textarea></td>
</tr>
<tr>
<td height="100" align="right"><div align="right">目录:</div></td>
《PHP 网站设计项目教学》实训指导书
26
<td align="center" valign="middle">
<textarea name="textarea" cols="65" rows="6"><?php echo $array1
['catalog'];?> </textarea></td>
</tr>
3.修改图书信息
在图书分页浏览页面中,当用户单击“修改”超链接时,将进入图书信息修改
页面,运行效果如图 所示。
图 图书信息修改页面
具体实现过程如下:
(1)在图书信息修改页面创建 form 表单,将根据超链接传递的 ID 值,查
询出指定图书的信息,并且将查询结果作为表单中各个元素的初始值进行输出,
最后创建“提交”按钮,将数据提交到 文件中,完成对图书信息
的修改操作,关键代码如下:
<?php
if(isset($_GET['id']) and $_GET['id']!=null){ //判断 ID 值是否存在
$select3=mysql_query("select * from tb_book where
id='".$_GET['id']."'",$conn); //查询指
定的图书信息
$array3=mysql_fetch_array($select3); //获取查询结果
}
?>
<table width="527" height="321" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="112"><div align="left">书名:</div></td>
<td width="415"><div align="left">
<input name="books" type="text" value="<?php echo
《PHP 网站设计项目教学》实训指导书
27
$array3['books'];?>" size="50" />
</div></td>
</tr>
<tr>
<td><div align="left">类别:</div></td>
<td><div align="left">
<select name="sort" id="sort">
<?php
while($array1=mysql_fetch_array($select1)){ //循环输出类别
?>
<option value="<?php echo $array1['sort'];?>"><?php echo
$array1['sort'];?> </option>
<?php
}
?>
</select>
</div></td>
</tr>
<tr>
<td><div align="left">语言:</div></td>
<td><div align="left">
<select name="talk" id="talk">
<?php
while($array2=mysql_fetch_array($select2)){ //循环输出语言
?>
<option value="<?php echo $array2['talk'];?>"><?php echo
$array2['talk'];?> </option>
<?php
}
?>
</select>
</div></td>
</tr>
<tr>
《PHP 网站设计项目教学》实训指导书
28
<td><div align="left">简介:</div></td>
<td><div align="left">
<input name="synopsis" type="text" value="<?php echo
$array3['synopsis'];?>" size="50" />
</div></td>
</tr>
<tr>
<td><div align="left">目录:</div></td>
<td><div align="left">
<textarea name="catalog" cols="40" id="catalog"><?php echo $array3
['catalog'];?></textarea>
</div></td>
</tr>
<tr>
<td><div align="left">文稿路径:</div></td>
<td><div align="left">
<input name="bookpath" type="text" value="<?php echo $array3
['bookpath']
;?>" size="50" />
</div></td>
</tr>
<tr>
<td><div align="left">程序路径:</div></td>
<td><div align="left">
<input name="programpath" type="text" value="<?php echo $array3
['programpath'];?> " size="50" />
</div></td>
</tr>
<tr>
<td><div align="left">录像路径:</div></td>
<td><div align="left">
<input name="videopath" type="text" value="<?php echo $array3
['videopath'];?> " size="50" />
</div></td>
《PHP 网站设计项目教学》实训指导书
29
</tr>
<tr>
<td colspan="2"><div align="center">
<input type="submit" name="Submit" value="提交" />
<input type="submit" name="Submit2" value="取消" />
<input type="hidden" name="id" value="<?php echo $array3
['id'];?>"/><!--隐藏域-->
</div></td>
</tr>
</table>
(2)当用户修改完信息后,单击“提交”按钮,在数据处理页中将对数据库
中的数据进行修改,其关键代码如下:
<?php
header("Content-type:text/html;charset=utf-8"); //设置文件编码
include("conn/"); //包含数据库连接文件
if(isset($_POST['Submit']) and $_POST['Submit']=="提交"){ //判断“提交”按钮
是否存在
$update=mysql_query("update tb_book set sort='".$_POST['sort']."
',talk='".$_POST ['talk']."',
books='".$_POST['books']."',synopsis='".$_POST['synopsis']."',catalog='".$_POST
['catalog']."',
bookpath='".$_POST['bookpath']."',programpath='".$_POST['programpath']."',vide
opath= '".$_POST['videopath']."'
where id='".$_POST['id']."'",$conn); //执行修改语
句
if($update){
echo "<script>alert('修改成功!');=''</script>";
}else{
echo "<script>alert('修改失败!');=''</script>";
}
}
?>
4.删除图书信息
《PHP 网站设计项目教学》实训指导书
30
在图书分页浏览页面中,单击“删除”超链接后,将跳转到 文件中,
根据超链接传递的 ID 值,应用 delete 语句完成指定图书信息的删除操作。
文件的关键代码如下:
<?php
header("content-type:text/html;charset=utf-8"); //设置文件
编码
include("conn/"); //包含数据
库连接文件
if(isset($_GET['id'])){ //判断 id 是
否存在
$delete=mysql_query("delete from tb_book where
id='".$_GET['id']."'",$conn);
//执行删除语句
if($delete){
echo "<script>alert('删除成功!
');=''</script>";
}else{
echo "<script>alert('删除失败!
');=''</script>";
}
}
?>
图书搜索模块设计
图书搜索模块概述
在图书搜索条件下拉列表中选择查询条件,单击“搜索”按钮,即可显示搜索
结果。图书搜索模块的运行效果如图 所示。
图 图书搜索模块运行效果
通过 JavaScript 脚本创建级联下拉列表框
本模块通过 JavaScript 技术判断搜索条件是否为空及根据用户选择的数据更
改相应列表中的数据。当用户在第一个列表中选择搜索条件后,第二个列表中的
数据也将随之改变,并与第一个列表中的数据相对应,关键代码如下:
《PHP 网站设计项目教学》实训指导书
31
<script>
function fetch(){ //判断搜索关键字是否为空
if(==""){
alert("请输入搜索关键字!");
();
return false;
}
return true;
}
</script>
<script language="javascript">
function press(opt){ //定义 press()方法,控制下拉列表框 select2 显
示的值
//opt 表示现有可选项的数目
[opt]=new Option(ok=([opt])?
[opt].innerText+():
(),ok)
=opt;
}
</script>
<script language="javascript">
function up(opt){ //定义 up()方法控制 select2 的值
//opt 表示现有可选项的数目
if([opt]){
if(==8){
var str=[opt].innerText;
var len=;
[opt].innerText=(0,len-1);
if([opt].innerText==" ")(2);
}
if(==32){
[opt].innerText+=" ";
}
}
《PHP 网站设计项目教学》实训指导书
32
}
</script>
图书搜索模块实现过程
图书搜索模块的页面设计效果如图 所示。
图 图书搜索模块设计效果
具体实现过程如下:
(1)创建 form 表单,添加下拉列表框、“搜索”按钮,将查询的关键字提交
到本页,其关键代码如下:
<table width="758" height="23" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="206"><div align="right" class="STYLE2"> 图 书 搜 索 :
</div></td>
<td width="159"><table>
<form id="list" name="list" method="post">
<tr>
<td width="125" align="left" valign="middle">
<select name="select"
onchange="javascript:()">
<option value="" selected="selected">请选择</option>
<option value="Famous_Id">类别</option>
<option value="Famous_Ids">语言</option>
<option value="boo_name">书名</option>
<option value="jianjie">简介</option>
<option value="mulu">目录</option>
</select></td>
</tr>
</form>
</table></td>
<td width="295"><table width="254" height="29" border="0" cellspacing="0"
cellpadding="0">
<form id="form1" name="form1" method="post" action=""
onkeypress= "press(3)" onkeyup="up(3)">
《PHP 网站设计项目教学》实训指导书
33
<tr>
<td width="110"><select name="select2">
<option selected="selected">请选择</option>
<?php
if(isset($_POST['select'])){
$select=$_POST['select'];
if($select=="Famous_Id"){
$sel=mysql_query("select * from tb_sort",$conn);//查询图书类别
while($arr=mysql_fetch_array($sel)){
?>
<option value="<?php echo $arr['sort'];?>"><?php echo $arr['sort'];?>
</option>
<?php
}
}else if($select=="Famous_Ids"){
$sel1=mysql_query("select * from tb_program",$conn); //查询图
书语言
while($arr1=mysql_fetch_array($sel1)){
?>
<option value="<?php echo $arr1['talk'];?>" selected="selected">
<?php echo $arr1['talk'];?></option>
<?php
}
}else{
?>
<option value="<?php echo $arr1['talk'];?>" selected="selected">
<?php echo $arr1['talk'];?></option>
<?php
}
}
?>
</select>
</td>
<td width="144">
《PHP 网站设计项目教学》实训指导书
34
<input type="image" name="imageField" src="images/"
onclick= "return fetch();" /></td>
</tr>
</form>
</table></td>
</tr>
</table>
页面设计完成后,开始编写 JavaScript 脚本,判断搜索条件下拉列表的相关
代码(在 节中有详细介绍,此处不再赘述)。
(2)在本页中,根据 form 表单提交的关键字执行查询操作,分页循环输出
查询结果,关键代码如下:
<<table width="606" height="90" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="305" height="33"><div align="center">书名</div></td>
<td width="301"><div align="center">发布日期</div></td>
</tr>
<?php
if(isset($_POST['select2'])){
$key=$_POST['select2'];
$sel1=mysql_query("select * from tb_book where sort='".$_POST['select2']."'
or talk='".$_POST['select2']."' or catalog like '%$key%'
or synopsis like '%$key%' or books like '%$key%'",$conn); //执行模糊查询
语句
$count=mysql_num_rows($sel1); //获取查询结果
if($count>0){
while($arr=mysql_fetch_array($sel1)){ //循环输出查询结果
?> <tr>
<td height="27">
<a href=" echo $arr['id'];?>"><?php echo
$arr['books'];?> </a></td>
<td><?php echo $arr['date'];?></td>
</tr>
<?php
《PHP 网站设计项目教学》实训指导书
35
}
}else{
echo "<script>alert('对不起,没有您要查找的内容!');=
'';</script>";
}
}
?>
<?php
if (isset($_GET['page'])){ //判断分页变量是否为空
$page=$_GET['page']; //定义分页变量,并且赋值
}else{
< $page=1; //如果分页变量不存在,则为其赋空值
}
if($page){
$page_size=12; //每页显示记录数
$page_count=ceil($count/$page_size); //总页数
$offset=($page-1)*$page_size; //计算每页的起始行数
//定义 SQL 语句,查询当前页显示的记录
$query="select * from tb_books where id order by id desc limit $offset,
$page_size";
$result=mysql_query($query); //执行查询操作
}
?>
<tr>
<td height="30" colspan="2"><div align="right">
<div align="right">共<?php echo $count;?>条记录 共<?php echo $page_count;?>
页
当前第<?php echo $page;?>页
<?php
if($page!=1){
echo "<a href=
echo "<a href=
}
if($page<$page_count){
《PHP 网站设计项目教学》实训指导书
36
echo " <a href=
echo " <a href=
}
?>
</div></td>
</tr>
</table>
五、练习
六、源程序清单、测试数据、结果
七、实训出现的问题、实训结果分析(语法错英语提示,中文翻
译,原因,您的理解?)
《PHP 网站设计项目教学》实训指导书
37
实训 2:梦幻网络日记(PHP+ MySQL 实现)
实训名称: 成绩:
实训日期: 年 月 日 实训报告日期: 年 月 日
一、实训目的
通过梦幻网络日记系统的实现,学生必须掌握:
1、项目设计思路
① 2、数据库设计
① 3、首页页面设计
① 4、网页闹钟模块设计
① 5、理财助手模块设计
① 6、管理模块设计①
二、实训内容
梦幻网络日记系统的设计与实现
三、实训环境
服务器端:
操作系统:Windows 2003 Server/Linux(推荐)/ Windows XP。
① 服务器:Apache/ (Win32)
① PHP 软件:PHP Version
① 数据库:MySQL 、SQL Server2000 数据库。
① MySQL 图形化管理软件:phpMyAdmin-
① 开发工具:Adobe Dreamweaver CS5。
① 浏览器:IE 及以上版本。
① 分辨率:最佳效果 1024×768 像素。
客 户 端:
① 浏览器:推荐 IE 及以上版本。
① 分辨率:最佳效果 1024×768 像素。
四、实训步骤、过程
1、系统说明
梦幻网络日记主要为用户提供 4 个主要模块,包括:网页闹钟、理财助手、
《PHP 网站设计项目教学》实训指导书
38
我的日记以及管理日记本。
网页闹钟主要为用户提供事物主题的添加,事物主题的查询以及网页闹钟的
设置。
理财助手为网络日记的特有模块,包括收入和支出的添加、财务管理、财务查询
以及财务统计。
我的日记是网络日记的主要模块。包括日记的添加,日记的查看、日记的查
询以及日记删除。
管理日记本主要是对用户登录日记本密码的修改。
2、系统功能图与运行效果图
梦幻网络日记功能结构如图 所示。
图 梦幻网络日记功能结构图
用户注册页面如图 所示,该页面显示用户注册时需要填写的资料。
《PHP 网站设计项目教学》实训指导书
39
图 用户注册页面
网页闹钟设置页面如图 所示,该页面用于网页闹钟的设置,包括事物主
题的选择、提醒方式、提醒时间、提醒铃声的选择等等。
图 设置网页闹钟页面
添加日记页面如图 所示,该页面实现日记数据的添加,包括文章主题、
文章内容、心情等。
《PHP 网站设计项目教学》实训指导书
40
图 添加日记界面
财务管理页面如图 所示,通过时间和类别的查询输出相关的支出和收入,
并对其进行修改和删除。
图 财务管理页面
3、代码编写
(1)连接数据库代码
<?php
$conn=mysql_connect("localhost","root","111") or die ("connect mysql false"); //连接数据库服务
器
mysql_select_db("db_diary",$conn)or die ("connect database false"); //连接指定的数据库
mysql_query("set names gb2312");//对数据库中编码格式进行转换,避免出现中文乱码的问题
?>
(2)闹钟删除代码
<?php
header("content-type:text/html; charset=gb2312");
《PHP 网站设计项目教学》实训指导书
41
include_once("conn/");
$id=$_GET["del_id"];
if(mysql_query("delete from tb_clock where id='".$id."'",$conn)){
echo "<script>alert('该闹铃删除成功!');='
设置闹钟")."';</script>";
}else{
echo "<script>alert('该闹铃删除失败!');();</script>";
}
?>
五、练习
六、源程序清单、测试数据、结果
七、实训出现的问题、实训结果分析(语法错英语提示,中文翻
译,原因,您的理解?)
《PHP 网站设计项目教学》实训指导书
42
实训 3:企业网站系统(PHP+MySQL 实现)
实训名称: 成绩:
实训日期: 年 月 日 实训报告日期: 年 月 日
一、实训目的
通过企业网站系统的实现,学生必须掌握:
1、项目设计思路
① 2、数据库设计
① 3、首页页面设计
① 4、公司前台模块设计
① 5、公司后台登录模块设计
二、实训内容
企业网站系统的设计与实现
三、实训环境
服务器端:
操作系统:Windows 2003 Server/Linux(推荐)/ Windows XP。
① 服务器:Apache/ (Win32)
① PHP 软件:PHP Version
① 数据库:MySQL 、SQL Server2000 数据库。
① MySQL 图形化管理软件:phpMyAdmin-
① 开发工具:Adobe Dreamweaver CS5。
① 浏览器:IE 及以上版本。
① 分辨率:最佳效果 1024×768 像素。
客 户 端:
① 浏览器:推荐 IE 及以上版本。
① 分辨率:最佳效果 1024×768 像素。
四、实训步骤、过程
1、系统说明
企业网站系统主要为用户提供 2 个主要模块,包括:前台浏览和后台登录两
个模块。
《PHP 网站设计项目教学》实训指导书
43
前台浏览:网站首页、公司简介、公司产品、技术支持、客户反馈
后台登录:公司活动管理、新闻信息管理、软件产品类别管理、留言薄管理、
常见问题管理、说明书管理、友情链接管理、虚拟主机
2、系统功能图与运行效果图
梦幻网络日记功能结构如图 所示。
图 企业网站系统功能结构图
运行结果如图 所示:
图 前台页面
后台登录效果图如图 所示:
企业网站系统
前台浏览 后台登录
网
站
首
页
公
司
简
介
公
司
产
品
技
术
支
持
客
户
反
馈
公
司
活
动
管
理
新
闻
信
息
管
理
软
件
类
别
管
理
硬
件
产
品
管
理
留
言
薄
管
理
常
见
问
题
管
理
说
明
书
管
理
友
情
链
接
管
理
虚
拟
主
机
《PHP 网站设计项目教学》实训指导书
44
图 后台管理页面
3、代码编写
(1)连接数据库代码
<?php
$link=mysql_connect("localhost","root","111");
mysql_select_db("db_mingri",$link);
mysql_query("set names gb2312");
?>
(2)网站首页代码
<?php
session_start(); //初始化 SESSION 变量
include "Conn/"; //载入数据库连接文件
$tmp=(isset($_SESSION['times']))?$_SESSION['times']:"0"; //根据 SESSION 变量值设置变
量 tmp 的值
$number=("./"); //获取文本文件中存储的访问量
《PHP 网站设计项目教学》实训指导书
45
if(!isset($_SESSION['times']) && $tmp=='0'){ //屏蔽刷新页面对网站访问量的
影响
$number=$number+1; //将获取到的值加 1
("./",$number); //写入文件
$tmp=1; //重新为变量赋值
$_SESSION['times']='1'; //重新为 SESSION 变量赋
值
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link href="css/" rel="stylesheet">
<title>企业网站系统</title>
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_s() { //
var i,x,a=_sr; for(i=0;a&&i<&&(x=a[i])&&;i++) =;
}
function MM_preloadImages() { //
var d=document; if(){ if(!_p) _p=new Array();
var i,j=,a=; for(i=0; i<; i++)
if (a[i].indexOf("#")!=0){ _p[j]=new Image; _p[j++].src=a[i];}}
}
function MM_findObj(n, d) { //
var p,i,x; if(!d) d=document; if((p=("?"))>0&&) {
d=[(p+1)].document; n=(0,p);}
《PHP 网站设计项目教学》实训指导书
46
if(!(x=d[n])&&) x=[n]; for (i=0;!x&&i<;i++) x=[i][n];
for(i=0;!x&&&&i<;i++) x=MM_findObj(n,[i].document);
if(!x && ) x=(n); return x;
}
function MM_s() { //
var i,j=0,x,a=MM_s; _sr=new Array; for(i=0;i<(-2);i+=3)
if ((x=MM_findObj(a[i]))!=null){_sr[j++]=x; if(!) =;
=a[i+2];}
}
//-->
</script>
</head>
<body
onLoad="MM_preloadImages('images/','images/','images/','image
s/','images/','images/')">
<table width="778" border="0" align="center" cellpadding="0" cellspacing="0">
<tr valign="bottom">
<td height="19" colspan="2"><?php include "";?></td>
</tr>
<tr>
<td width="225" height="26" valign="top" background="images/images/"><table
width="225" border="0" cellpadding="0" cellspacing="0">
<tr>
<td height="277" align="right" valign="top" background="images/"><table
width="100%" height="25" border="0" cellpadding="0" cellspacing="0">
<tr>
<td align="center" background="images/" class="style_1 word_white">
本站导航</td>
</tr>
《PHP 网站设计项目教学》实训指导书
47
</table>
<table width="214" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="10"></td>
</tr>
<tr>
<td height="28"><a href="" onMouseOut="MM_s()"
onMouseOver="MM_s('Image1','','images/',1)"><img src="images/" alt="网站
首页" name="Image1" width="214" height="28" border="0" id="Image1" /></a></td>
</tr>
</table>
<table width="214" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="10"></td>
</tr>
<tr>
<td height="28"><a href="" onMouseOut="MM_s()"
onMouseOver="MM_s('Image2','','images/',1)"><img src="images/" alt="公司
简介" name="Image2" width="214" height="28" border="0" id="Image2" /></a><a href="#"
onMouseOut="MM_s()" onMouseOver="MM_s('Image11','','images/',1)"></a></td>
</tr>
</table>
<table width="214" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="10"></td>
</tr>
<tr>
<td height="28"><a href="" onMouseOut="MM_s()"
onMouseOver="MM_s('Image3','','images/',1)"><img src="images/" alt="公司
《PHP 网站设计项目教学》实训指导书
48
产品" name="Image3" width="214" height="28" border="0" id="Image3" /></a><a href="#"
onMouseOut="MM_s()" onMouseOver="MM_s('Image12','','images/',1)"></a></td>
</tr>
</table>
<table width="214" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="10"></td>
</tr>
</table>
<table width="214" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="28"><a href="" onMouseOut="MM_s()"
onMouseOver="MM_s('Image5','','images/',1)"><img src="images/" alt="技术
支 持 " name="Image5" width="214" height="28" border="0" id="Image5" /></a><a href="#"
onMouseOut="MM_s()" onMouseOver="MM_s('Image14','','images/',1)"></a></td>
</tr>
</table>
<table width="214" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="10"></td>
</tr>
<tr>
<td height="28"><a href="" onMouseOut="MM_s()"
onMouseOver="MM_s('Image6','','images/',1)"><img src="images/" alt="客户
反 馈 " name="Image6" width="214" height="28" border="0" id="Image6" /></a><a href="#"
onMouseOut="MM_s()" onMouseOver="MM_s('Image51','','images/',1)"></a><a
href="#" onMouseOut="MM_s()"
onMouseOver="MM_s('Image14','','images/',1)"></a></td>
《PHP 网站设计项目教学》实训指导书
49
</tr>
</table></td>
</tr>
<tr class="tableBorder_LRB_dashed">
<td height="63" background="images/images/"> </td>
</tr>
<tr class="tableBorder_LRB_dashed">
<td height="41" background="images/images/"> </td>
</tr>
<tr class="tableBorder_LRB_dashed">
<td height="6" background="images/images/"> </td>
</tr>
<tr class="tableBorder_LRB_dashed">
<td height="24" background="images/images/">
<marquee direction="up" height="100" onMouseOut="()" onMouseOver="()"
scrollamount=1 scrolldelay="10">
<table width="222" border="0" cellspacing="0" cellpadding="0">
<?php
$sql=mysql_query("select * from affiche order by aid desc"); //查询数据库中数据
$info=mysql_fetch_array($sql); //获取查询结果
if($info){ //判断查询结果是
否存在
do{ //循环输出查询结果
?>
<tr>
<td width="48" height="30" align="right"><span
class="word_white">·</span> </td>
<td width="133">
<a href=" echo $info['aid']; ?>" target="_blank">
《PHP 网站设计项目教学》实训指导书
50
<?php
echo chinesesubstr($info['title'],0,40); //截取输出活动标题
if(strlen($info['title'])>40){ //如果标题长度超过 40 个
字节
echo " ..."; //以省略号补齐
}
?>
</a></td>
<td width="41"> </td>
</tr>
<?php
}while($info=mysql_fetch_array($sql));
}
?>
</table>
</marquee>
</td>
</tr>
<tr class="tableBorder_LRB_dashed">
<td height="41" background="images/images/"> </td>
</tr>
<tr class="tableBorder_LRB_dashed">
<td height="6" background="images/images/"> </td>
</tr>
<tr class="tableBorder_LRB_dashed">
<td height="24" background="images/images/">
<marquee direction="up" height="100" onMouseOut="()"
onMouseOver="()" scrollamount=1 scrolldelay="10">
<table width="222" border="0" cellspacing="0" cellpadding="0">
《PHP 网站设计项目教学》实训指导书
51
<?php
$sql=mysql_query("select * from news order by ntime desc limit 10");
$info=mysql_fetch_array($sql);
if($info){
do{
?>
<tr>
<td width="48" height="32" align="right"><span
class="word_white">·</span> </td>
<td width="133"><a href=" echo $info['nid']; ?>"
target="_blank"><?php echo chinesesubstr($info['title'],0,40);if(strlen($info['title'])>40){
echo " ...";
}
?> </a></td>
<td width="41"> </td>
</tr>
<?php
}while($info=mysql_fetch_array($sql));
}
?>
</table>
</marquee>
</td>
</tr>
<tr class="tableBorder_LRB_dashed">
<td height="50" background="images/images/"> </td>
</tr>
<tr class="tableBorder_LRB_dashed">
<td height="10" background="images/images/">
《PHP 网站设计项目教学》实训指导书
52
<table width="222" border="0" cellspacing="0" cellpadding="0">
<?php
$sql=mysql_query("select * from link order by lid desc");
$info=mysql_fetch_array($sql);
if($info){
do{
?>
<tr>
<td width="48" height="26" align="right"><span
class="word_white">·</span> </td>
<td width="134">
<a href="<?php echo $info['url']; ?>" target="_parter" >
<?php
echo chinesesubstr($info['name'],0,40);
if(strlen($info['name'])>40){
echo " ...";
}
?>
</a></td>
<td width="40"> </td>
</tr>
<?php
}while($info=mysql_fetch_array($sql));
}
?>
</table>
</td>
</tr>
<tr class="tableBorder_LRB_dashed">
《PHP 网站设计项目教学》实训指导书
53
<td height="20" background="images/images/"> </td>
</tr>
<tr class="tableBorder_LRB_dashed">
<td valign="top" background="images/images/"> </td>
</tr>
</table></td>
<td valign="top"><table width="553" border="0" cellpadding="0" cellspacing="0">
<tr>
<td><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase=""
width="553" height="145">
<param name="movie" value="flash/" />
<param name="quality" value="high" />
<embed src="flash/" quality="high" pluginspage=""
type="application/x-shockwave-flash" width="553" height="145"></embed>
</object></td>
</tr>
</table>
<table width="553" border="0" cellpadding="0" cellspacing="0">
<tr>
<td><table width="553" height="100%" border="0" cellpadding="0"
cellspacing="0">
<tr>
<td width="553" height="40"><img src="images/" width="553"
height="40" border="0" usemap="#MapMap"></td>
</tr>
<tr>
<td height="549" align="center" valign="top"
background="images/">
<table width="548" border="0" cellspacing="0" cellpadding="0">
《PHP 网站设计项目教学》实训指导书
54
<tr>
<td width="548">
<?php
$sql=mysql_query("select * from soft order by uptime desc limit 5");
$info=mysql_fetch_array($sql);
if($info){
do{
?>
<table width="531" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="549">
<table width="543" border="0" cellspacing="0" cellpadding="0">
<tr align="left">
<td width="543" height="127" align="center">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="26%" rowspan="3" align="center" valign="middle">
<img src="<?php echo "./upload/".$info['']; ?>" width="110"
height="130" class="tableBorder">
</td>
<td height="33" colspan="2"><p> <font
color="#DD2606">【 <?php echo $info['name']; ?> 】</font></p></td>
</tr>
<tr>
<td height="95" colspan="2"
valign="top"> <font color="#666666"><?php echo
$info['introduce']; ?><br></font></td>
</tr>
<tr>
《PHP 网站设计项目教学》实训指导书
55
<td width="58%" height="13" valign="top"> </td>
<td width="16%" valign="top">
<a href=" echo urlencode($info['softhtml']);?>">
<img src="images/" width="43" height="16">
</a>
</td>
</tr>
</table>
</table>
<hr size="1"></td>
</tr>
<?php
}while($info=mysql_fetch_array($sql));
}else{
?>
<tr align="center"><td>暂无产品信息!</td></tr>
<?php
}
?>
</table>
</td>
</tr>
</table></td>
</tr>
<tr>
<td height="21" valign="center"
background="images/"> </td>
</tr>
</table>
《PHP 网站设计项目教学》实训指导书
56
<map name="MapMap">
<area shape="rect" coords="499,4,543,26" href="">
</map></td>
</tr>
</table></td>
</tr>
<tr align="center" valign="top">
<td height="18" colspan="2"><?php include "";?></td>
</tr>
</table>
<?php
function chinesesubstr($str,$start,$len){ //自定义函数截取中文字符串
$strlen=$start+$len; //获取字符串的长度
$tmpstr='';
for($i=0;$i<$strlen;$i++){ //对字节进行循环输出
if(ord(substr($str,$i,1))>0xa0){ //判断如果字节是中文字符串
$tmpstr.=substr($str,$i,2); //那麽每次截取两个字节
$i++;
}else{
$tmpstr.=substr($str,$i,1); //否则每次截取一个字节
}
}
return $tmpstr; //返回截取的字符串
}
?>
</body>
</html>
五、练习
六、源程序清单、测试数据、结果
《PHP 网站设计项目教学》实训指导书
57
七、实训出现的问题、实训结果分析(语法错英语提示,中文翻
译,原因,您的理解?)
实训 4:电子商务网站(PHP+MySQL 实现)
实训名称: 成绩:
实训日期: 年 月 日 实训报告日期: 年 月 日
一、实训目的
通过电子商务网站的实现,学生必须掌握:
1、项目设计思路
① 2、数据库设计
① 3、首页页面设计
① 4、公司前台模块设计
① 5、公司后台登录模块设计
二、实训内容
企业网站系统的设计与实现
三、实训环境
服务器端:
《PHP 网站设计项目教学》实训指导书
58
操作系统:Windows 2003 Server/Linux(推荐)/ Windows XP。
① 服务器:Apache/ (Win32)
① PHP 软件:PHP Version
① 数据库:MySQL 、SQL Server2000 数据库。
① MySQL 图形化管理软件:phpMyAdmin-
① 开发工具:Adobe Dreamweaver CS5。
① 浏览器:IE 及以上版本。
① 分辨率:最佳效果 1024×768 像素。
客 户 端:
① 浏览器:推荐 IE 及以上版本。
① 分辨率:最佳效果 1024×768 像素。
四、实训步骤、过程
1、系统说明
电子商务网站主要包括前台和后台两个模块,其中子模块主要包括最新商品、
购物车、推荐商品、用户中心、热门商品、特价商品、商品分类、购物流程、用
户注册、商品评价、销售排行、关于我们、订单管理等模块。
用户中心:修改信息、用户留言、修改密码、注销离开
2、系统功能图与运行效果图
电子商务网站功能结构如图 所示。
图 电子商务网站功能结构图
前台登录效果如图 所示。
《PHP 网站设计项目教学》实训指导书
59
图 前台首页
后台登录效果如图 所示。
图 后台首页
《PHP 网站设计项目教学》实训指导书
60
(1)利用商品查询功能可以快速地查找到自己想要的商品,从而很大程度
的提高用户选购商品的效率。用户查找商品的方法一方面应该简单明了,另一方
面也需要支持为了提高查找速度而使用的更复杂的查询限制条件,所以本购物系
统为用户提供了简单搜索和高级搜索两中搜索方式。商品高级搜索页面如图 4 所
示。
图 商品高级搜索
(2)网上购物系统首先应具备的功能就是能够定位不同的用户,笔者将采
用为不同用户分配不同昵称的方法来区别不同用户。用户未注册登录之前是不能
购物的,用户注册之后不仅可以购买商品而且还可以更改个人的注册信息。用户
购买完商品后可以通过注销的方式退出本站,从而使个人信息不会被他人更改。
用户注册页面如图 所示。
图 用户注册
(3)本购物系统为系统管理员提供了优秀的商品管理平台,系统管理员
不必打开后台数据库就可以对商品进行更新,从而大大提高了管理员更新商
品的效率。添加商品页面如图 所示。
《PHP 网站设计项目教学》实训指导书
61
图 添加商品
(4)在后台管理界页面直接将短信发送给用户,这样既可以及时联系用户
还可以在节日里为客户发送一些祝福语,从而能够很大程度的提升网站经营者在
客户心目中的形象,有利于吸引更多的客户到该购物系统中购买商品。短信发送
页面如图 所示。
图 发送短信
(5)本购物系统不仅在前台为用户提供了订单查看功能,而且在后台也为
管理员提供了订单查看及打印功能。后台订单查看页面如图 所示。
《PHP 网站设计项目教学》实训指导书
62
图 商品订单
(6)用户留言及意见反馈模块为商家及客户之间建立了一个信息交流的平
台,目的是了解客户的所需,从而能够及时增加一些热门商品和淘汰一些过时的
商品。
(7)本系统在前台为用户提供了不同的商品展示方式,从而便于消费者了
解市场行情,能够使消费者有目的选购一些商品。
3、代码编写
(1)连接数据库代码
<?php
$conn=mysql_connect("localhost","root","123456") or die("数据库服务器连接错误
".mysql_error());
mysql_select_db("db_commerce",$conn) or die("数据库访问错误".mysql_error());
mysql_query("set character set gb2312");
mysql_query("set names gb2312");
?>
(2)保存注册用户代码
<?php
session_start();
include("");
$name=$_POST[usernc];
《PHP 网站设计项目教学》实训指导书
63
$pwd1=$_POST[p1];
$pwd=md5($_POST[p1]);
$email=$_POST[email];
$truename=$_POST[truename];
$sfzh=$_POST[sfzh];
$tel=$_POST[tel];
$qq=$_POST[qq];
if($_POST[ts1]==1)
{
$tishi=$_POST[ts2];
}
else
{
$tishi=$_POST[ts1];
}
$huida=$_POST[tsda];
$dizhi=$_POST[dizhi];
$youbian=$_POST[yb];
$regtime=date("Y-m-j");
$lastlogintime=$regtime;
$logincishu=1;
$ip=getenv("REMOTE_ADDR");
$dongjie=0;
$sql=mysql_query("select * from user where name='".$name."'",$conn);
$info=mysql_fetch_array($sql);
if($info==true)
{
echo "<script>alert('该昵称已经存在!');();</script>";
exit;
《PHP 网站设计项目教学》实训指导书
64
}
else
{
mysql_query("insert into user
(name,pwd,dongjie,email,truename,sfzh,tel,qq,ip,tishi,huida,dizhi,youbian,regtime,lastlogintime,lo
gincishu,pwd1) values
('$name','$pwd','$dongjie','$email','$truename','$sfzh','$tel','$qq','$ip','$tishi','$huida','$dizhi','$youb
ian','$regtime','$lastlogintime','$logincishu','$pwd1')",$conn);
session_register("username");
$username=$name;
session_register("producelist");
$producelist="";
session_register("quatity");
$quatity="";
echo "<script>alert('恭喜,注册成功!');='';</script>";
}
?>
五、练习
六、源程序清单、测试数据、结果
七、实训出现的问题、实训结果分析(语法错英语提示,中文翻
译,原因,您的理解?)