第八章 PHP案例Word格式文档下载.docx
- 文档编号:16479349
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:19
- 大小:67.61KB
第八章 PHP案例Word格式文档下载.docx
《第八章 PHP案例Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《第八章 PHP案例Word格式文档下载.docx(19页珍藏版)》请在冰豆网上搜索。
这里给出SQL语句供读者参考。
创建数据库gbook
CREATEDATABASE‘gbook’;
创建表admin
CREATETABLE‘admin’(
‘usernmame’VARCHAR(20)NOTNULL
‘userpass’VARCHAR(20)NOTNULL
)
创建表message:
CREATETABLE‘message’(
‘id’INT(4)NOTNULLAUTO_INCREMENTPRIMARYKEY,
‘author’VARCHAR(20)NOTNULL,
‘addtime’DATETIMENOTNULL,
‘content’VARCHAR(1000)NOTNULL,
‘reply’VARCHAR(1000)NOTNULL
2、代码编写:
一共有6个页面。
分别是:
Index.php留言本首页
Login.php管理员登陆页面
Send.php用户填写留言页面
Manage.php管理员管理页面
Reply.php管理员进行回复的页面
Logout.php注销登陆的页面
理论上讲,这几个页面的编写顺序是无关紧要的,但是为了更好的说明本程序开发的流程,可以采用下面的步骤:
1)编写send.php,宫用户提交留言,只有提交了留言才能进行后面的留言显示,留言管理等。
2)编写index.php,本页面将显示10条最近的留言,并有分页功能。
3)编写login.php供管理员登陆。
4)编写manage.php和reply.php,用来进行留言管理;
5)编写logout.php,用来注销登陆。
3、代码如下:
Send.php文档
〈?
php
$name=$_POST["
name"
];
//看用户是否提交了新留言,如果提交了,则写入表message
if($name!
="
"
){
$content=$_POST["
content"
//以下代码获取当前日期时间
$addtime=date("
Y-m-dh:
i:
s"
);
$id=MySQL_connect("
localhost"
"
root"
1234"
MySQL_select_db("
gbook"
$id);
$query="
insertintomessage(author,addtime,content,reply)values('
$name'
'
$addtime'
$content'
'
)"
;
MySQL_query($query,$id);
MySQL_close($id);
echo"
〈scriptlanguage=javascript〉alert('
留言成功!
点击确定查看留言.'
location.href='
index.php'
〈/script〉"
exit;
}
?
〉
以上部分为PHP代码,作用是将用户输入的表单数据接收并存入数据库。
下面的部分为HTML代码:
〈HTML〉
〈HEAD〉
〈TITLE〉欢迎使用简约不简单-我的留言本〈/TITLE〉
〈/HEAD〉
〈BODY〉
〈tableborder=1cellspacing=0cellspadding=0style="
border-collapse:
collapse"
align=centerwidth=400bordercolor=black〉
〈tr〉〈tdheight=100bgcolor=#6C6C6C〉
〈fontstyle="
font-size:
30px"
color=#ffffffface="
黑体"
〉简约不简单-我的原创留言本〈/font〉
〈/td〉
〈tr〉〈tdheight=25〉
&
nbsp;
〈ahref=send.php〉[我要写留言]〈/a〉&
〈ahref=login.php〉[管理留言]〈/a〉
〈/td〉〈/tr〉
〈tr〉〈tdheight=200〉
〈formmethod="
POST"
action="
send.php"
〈tableborder="
1"
width="
95%"
id="
table1"
cellspacing="
0"
cellpadding="
bordercolor="
#808080"
style="
collapse"
height="
265"
〈tr〉
〈tdcolspan="
2"
29"
〈palign="
center"
〉欢迎您填写留言〈/td〉
〈/tr〉
〈tdwidth="
32%"
right"
〉您的名字〈/td〉
67%"
〉〈inputtype="
text"
name="
size="
20"
〉〈/td〉
〉留言内容〈/td〉
〉〈textarearows="
10"
cols="
31"
〉〈/textarea〉〈/td〉
99%"
colspan="
submit"
value="
提交"
B1"
〉〈/p〉
〈/table〉
〈/form〉
〈tr〉〈tdheight=80bgcolor=#6c6c6calign=center〉
〈fontcolor=#FFFFFF〉版权所有:
我的工作室〈br〉E-mail:
sadslk@
〈/body〉
〈/html〉
Index.php代码
〈styletype=text/css〉
TD{
12px;
line-height:
150%;
〈/style〉
align=centerwidth=400bordercolor=blackheight="
382"
〈tr〉〈tdheight=100bgcolor=#6C6C6Cstyle="
30px;
〉
〈fontcolor=#ffffffface="
〉简约不简单-我的留言本〈/font〉
〈/td〉〈tr〉
//连接到数据库,查询留言并进行分页计算
select*frommessage"
$result=MySQL_query($query,$id);
if(MySQL_num_rows($result)〈1){
目前数据表中还没有任何留言!
}else{//ELSE开始
$totalnum=MySQL_num_rows($result);
$pagesize=10;
$page=$_GET["
page"
if($page=="
$page=1;
$begin=($page-1)*$pagesize;
$totalpage=ceil($totalnum/$pagesize);
//输出分页信息
〈tableborder=0width=95%〉〈tr〉〈td〉"
$datanum=MySQL_num_rows($result);
共有留言"
.$totalnum."
条。
每页"
.$pagesize."
条,共"
.$totalpage."
页〈br〉"
//输出页码
for($j=1;
$j〈=$totalpage;
$j++){
〈ahref=index.php?
page="
.$j."
〉["
]&
〈/a〉"
〈br〉"
//从Message表中查询当前页所要现实的留言,并根据时间顺序
SELECT*FROMmessageorderbyaddtimedesclimit$begin,$pagesize"
//循环输出所有留言,如果管理员已经回复则同时输出回复
for($i=1;
$i〈=$datanum;
$i++){
$info=MySQL_fetch_array($result,MySQL_ASSOC);
-〉["
.$info['
author'
]."
]于"
addtime'
说:
content'
if($info['
reply'
]!
〈b〉管理员回复:
〈/b〉"
〈hr〉"
〈/table〉"
}//ELSE结束
〈tr〉〈tdheight=60bgcolor=#6c6c6calign=center〉
sdgf@
〈/html〉
第二节简易BBS系统的开发
简易BBS系统的开发】
8.2.1需求分析
首先对网站访问者进行分类
·
浏览者
注册用户
版主
管理员
并对各自的权限进行说明:
浏览者有浏览任何模块、任何帖子以及回复的权限,而且可以注册成为注册用户
注册用户有浏览任何模块、任何帖子以及回复的权限,而且还有发新帖子的权利并有机会被设为某子模块版主的机会。
版主有浏览任何模块、任何帖子以及回复的权限、而且有发新帖子、回复任何帖子的权限、版主还有删除任何模块的帖子和回复的删除权限。
管理员除了有版主所有的权限之外,还有添加父模块、管理父模块、添加子模块、管理子模块、查看所有用户、删除用户、检索用户、自己密码更改等权限。
8.2.2流程设计
8.2.3数据库设计
manage_user_info(管理用户信息数据表)
user_info(用户信息数据表)
father_module_info(父板块信息数据表)
son_module_info(子板块信息数据表)
note_info(发帖信息数据表)
一、manage_user_info(管理用户信息数据表)
编号
类型
字段意义
备注
1
id
int
2
user_name
char(16)
管理用户登录名
3
user_pw
4
二、user_info(用户信息数据表)
time1
datetime
注册时间
5
time2
最后登陆时间
三、father_module_info(父板块信息数据表)
module_name
char(66)
板块名称
show_order
显示序号
四、son_module_info(子板块信息数据表)
father_module_id
隶属的大板块的id
同father_module_info中id
子板块名称
module_cont
text
子板块简介
发帖用户名
同user_info中的user_name
五、note_info(发帖信息数据表)
module_id
隶属的自板块的id
同son_module_info中id
up_id
回复帖子的id
同本表中的id
title
char(88)
帖子标题
cont
帖子内容
6
time
发帖时间
7
8
times
浏览次数
8.2.4代码编写
MySQL.inc
classMySQL{
//连接服务器、数据库以及执行SQL语句的类库
public$database;
public$server_username;
public$server_userpassword;
functionMySQL()
{//构造函数初始化所要连接的数据库
$this-〉server_username="
$this-〉server_userpassword="
}//endMySQL()
functionlink($database)
{//连接服务器和数据库
//设置所有连接的数据库
if($database=="
$this-〉database="
bbs_data"
}else{
$this-〉database=$database;
//连接服务器和数据库
if(@$id=MySQL_connect('
localhost'
$this-〉server_username,$this-〉server_userpassword)){
if(!
MySQL_select_db($this-〉database,$id)){
数据库连接错误!
!
服务器正在维护中,请稍后重试!
}//endlink($database)
functionexcu($query)
{//执行SQL语句
if($result=MySQL_query($query)){
return$result;
sql语句执行错误!
请重试!
!
}//endexec($query)
}//endclassMySQL
Myfunction.inc
classmyfunction{
/////////////////字符转换:
向数据库中插入或更新时用//////////////////////////
functionstr_to($str)
{
$str=str_replace("
"
$str);
//把空格替换html的字符串空格
〈"
lt;
//把html的输出标志正常输出
〉"
gt;
$str=nl2br($str);
//把回车替换成html中的br
return$str;
/////////////////////由子板块的id返回该子板块的主题数///////////////////////
functionson_module_idtonote_num($son_module_id){
$aa=newMySQL;
$aa-〉link("
select*fromnote_infowheremodule_id='
$son_module_id'
andup_id='
0'
$rst=$aa-〉excu($query);
returnMySQL_num_rows($rst);
////////////////////////////////////////////////////////////////////////////
/////////////////////由子板块的id返回该子板块的帖子数///////////////////////
functionson_module_idtonote_num2($son_module_id){
//由子板块的id返回该子板块的主题数
$num=MySQL_num_rows($rst);
while($note=MySQL_fetch_array($rst,MySQL_ASSOC)){
select*fromnote_infowhereup_id='
$note[id]'
andmodule_id='
$num+=MySQL_num_rows($rst);
return$num;
/////////////////////由子板块的id输出该子板块的最新帖子/////////////////////
functionson_module_idtolast_note($son_module_id){
//由子板块的id输出该子板块的最新帖子
orderbytimedesclimit0,1"
$note=MySQL_fetch_array($rst,MySQL_ASSOC);
$query2="
select*fromnote_infowhereid='
$note[up_id]'
$rst2=$aa-〉excu($query);
$note2=MySQL_fetch_array($rst2,MySQL_ASSOC);
echo$note2[title];
echo$note[time]."
.$note[use
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第八章 PHP案例 第八 PHP 案例