2019-05-06

留言板的开发总结


策划书

子主题 1

安装功能 install

连接数据库

conn = mysqli_connect("localhost","root","root"); if(conn ){
echo "数据库连接成功。";
}else{
echo "数据库连接失败。";
}

创建数据库guestbook

sql = "CREATE DATABASE guestbook";result = mysqli_query(conn,sql);
if( $result ){
echo "数据库guestbook创建成功。";
}else{
echo "数据库guestbook创建失败。";
}

选择数据库guestbook

mysqli_select_db($conn,"guestbook");

创建留言内容表content

sql = "CREATE TABLE content( id int auto_increment primary key, name char(10), qq char(10), content text, date_time date )";result = mysqli_query(conn,sql);
if( $result ){
echo "数据表content创建成功。";
}else{
echo "数据表content创建失败。";
}

创建配置信息表config

sql = "CREATE TABLE config( id int auto_increment primary key, username char(10), password char(10), site_name char(30), other text )";result = mysqli_query(conn,sql);
if( $result ){
echo "数据表config创建成功。";
}else{
echo "数据表config创建失败。";
}

初始化数据表

//初始化config表
sql = "INSERT INTO config( username, password, site_name, other ) VALUES ( 'admin', 'admin888', '夏日留言板', '开发者:' )";result = mysqli_query(conn,sql);
if( $result ){
echo "数据表config初始化成功。";
}else{
echo "数据表config初始化失败。";
}

//初始化content表
sql = "INSERT INTO content( name, qq, content, date_time ) VALUES ( '小狗狗', '356550896', '我是一楼,表跟我抢!', '2019-03-21 9:33:40' )";result = mysqli_query(conn,sql);
if( $result ){
echo "数据表content初始化成功。";
}else{
echo "数据表content初始化失败。";
}

提示安装状态并跳转

echo "<script>alert('恭喜您,留言本安装成功!点确定跳转到留言本首页');location.href='index.php';</script>";

发布留言liuyan.php/html

留言界面

一个表单,四个控件

<table class="liuyan">
<tr>
<td height="40" colspan="2" align="center" valign="middle"><a href="index.php">首页</a></td>
</tr>
<tr>
<td height="40" align="right" valign="middle">呢称:</td>
<td height="40" align="left" valign="middle"><label for="name"></label>
<input name="name" type="text" id="name" size="20" maxlength="20"></td>
</tr>
<tr>
<td height="40" align="right" valign="middle">QQ:</td>
<td height="40" align="left" valign="middle"><label for="qq"></label>
<input name="qq" type="text" id="qq" size="20" maxlength="15"></td>
</tr>
<tr>
<td height="40" align="right" valign="middle">留言:</td>
<td height="40" align="left" valign="middle"><label for="content"></label>
<script id="editor" type="text/plain" style="width:400px;height:150px;"></script>
<script>UE.getEditor('editor');</script>
</td>
</tr>
<tr>
<td height="40"> </td>
<td height="40" align="left" valign="middle"><input type="submit" name="button" id="button" value="留言"></td>
</tr>
</table>

留言功能

设置时区

date_default_timezone_set("PRC");

//获取当前计算机的日期和时间
$date_time = date('Y-m-d h:i:s');

接收留言内容

name =_POST["name"];
qq =_POST["qq"];
content =_POST["editorValue"];

把留言内容写入数据库

//连接数据库
include "conn.php";

//选择数据库guestbook
mysqli_select_db($conn,"guestbook");

提示并跳转

echo "<script>alert('恭喜您,留言成功!点确定跳转到留言本首页');location.href='index.php';</script>";

显示留言index

表格布局显示留言内容

二行4列

<table cellpadding="5" class="the_content">
<tbody>
<tr>
<td height="30" align="center" valign="middle">第<?php echo the_content["id"]; ?>楼</td> <td height="30" align="center" valign="middle">呢称:<?php echothe_content["name"]; ?></td>
<td height="30" align="center" valign="middle">QQ:<?php echo the_content["qq"]; ?></td> <td height="30" align="center" valign="middle">日期:<?php echothe_content["date_time"]; ?></td>
<td align="center" valign="middle"><a href="edit.php?id=<?php echo the_content["id"]; ?>">编辑</a> | <a href="delete.php?id=<?php echothe_content["id"]; ?>">删除</a></td>
</tr>
<tr>
<td colspan="5" align="left" valign="top"><?php echo $the_content["content"]; ?></td>
</tr>
</tbody>
</table>

查询数据库

sql = "select * from content order by id desc limitstart,page_size";result = mysqli_query(conn,sql);

拆数据包

while ( the_content = mysqli_fetch_array(result) ){

显示内容

<?php echo $the_content["content"]; ?>

分页admin

理解并求出5个参数

total_records:共多少条记录page_size:一个页面显示多少条记录
page_current:当前是第几个分页url:要分页的地址
$keyword:搜索关键词,如果不作搜索功能可为空

调用函数

include 'page.php';

sql = "select * from content";result = mysqli_query(conn,sql);
total_records = mysqli_num_rows(result);

url =_SERVER['PHP_SELF'];

$keyword = '';

富文本编辑器ueditor

百度的产品

分别在头部和显示编辑器的地方,放上相应的脚本代码即可

修改接收内容代码

$_POST["editorValue"];

登陆功能 do_login.php

登陆界面

一个表单,三个控件

<table width="500" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="100" height="35" align="right" valign="middle">用户名:</td>
<td><label for="username"></label>
<input name="username" type="text" id="username" size="20" maxlength="20" /></td>
</tr>
<tr>
<td width="100" height="35" align="right" valign="middle">密    码:</td>
<td><label for="password"></label>
<input name="password" type="password" id="password" size="20" maxlength="20" /></td>
</tr>
<tr>
<td width="100" height="35" align="right" valign="middle"> </td>
<td><input type="submit" name="button" id="button" value="登陆" /></td>
</tr>
</table>

接收用户数据

username =_POST["username"];
password =_POST["password"];

查询管理员账号

include "conn.php";
sql = "select username,password from config";result = mysqli_query(conn,sql);
admin = mysqli_fetch_array(result);
the_username =admin["username"];
the_password =admin["password"];

用户数据和管理员账号进行对比

一致则登陆成功

SESSION通行证

session_start();

提示并跳转到后台

if( (username ==the_username) and (password ==the_password) ){
echo "<script>alert('恭喜您,登陆成功!点确定跳转到留言本后台');location.href='admin.php';</script>";
$_SESSION["login"] = "y";

}

不一致则登陆失败

重新登陆

else{
echo "<script>alert('很遗憾,登陆失败!点确定跳转到登陆页面');location.href='login.html';</script>";
$_SESSION["login"] = "n";
}

注销功能logout

在后台设置注销链接

<a href="logout.php">注销</a>

设置一下SESSION通行证为非y值

$_SESSION["login"] = "";

提示并跳转到前台

echo "<script>alert('注销成功!点确定跳转到留言本首页');location.href='index.php';</script>";

内容管理

显示内容

增加删除,编辑链接入口

<a href="edit.php?id=<?php echo the_content["id"]; ?>">编辑</a> | <a href="delete.php?id=<?php echothe_content["id"]; ?>">删除</a>

加入门卫机制

if( $_SESSION["login"] <> "y" ){
echo "<script>alert('非法登陆!点确定跳转到留言本首页');location.href='index.php';</script>";
}

删除功能delete.php

接收传递过来的id

id =_GET["id"];

执行删除功能的sql语句

sql = "DELETE FROM content WHERE id=id";

提示并跳转

echo "<script>alert('删除成功,点确定跳到后台页面');location.href='admin.php';</script>";

编辑功能edit

编辑界面

接收id

id =_GET["id"];

使用表单控件显示原来内容

<table width="600" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="100" height="35" align="right" valign="middle">呢称:</td>
<td><label for="name"></label>
<input name="name" type="text" id="name" value="<?php echo the_content["name"]; ?>" size="20" maxlength="20" /></td> </tr> <tr> <td width="100" height="35" align="right" valign="middle">QQ:</td> <td><label for="qq"></label> <input name="qq" type="text" id="qq" value="<?php echothe_content["qq"]; ?>" size="20" maxlength="20" /></td>
</tr>
<tr>
<td width="100" height="35" align="right" valign="middle">留言:</td>
<td><label for="content"></label>
<textarea name="content" id="content" cols="30" rows="7"><?php echo $the_content["content"]; ?></textarea></td>
</tr>
<tr>
<td width="100" height="35" align="right" valign="middle"> </td>
<td><input type="submit" name="button" id="button" value="编辑" /></td>
</tr>
</table>

编辑功能

接收新内容

id =_POST["id"];
name =_POST["name"];
qq =_POST["qq"];
content =_POST["content"];

写入数据库

/连接数据库
include "conn.php";

//写SQL语句
sql = "update content set name='name',qq='qq',content='content' where id=id"; //执行sql语句 mysqli_query(conn,$sql);

提示并跳转

echo "<script>alert('编辑成功!点确定跳转到留言本后台');location.href='admin.php';</script>";

美化

HTML模板

套用模板

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,530评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,403评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,120评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,770评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,758评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,649评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,021评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,675评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,931评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,751评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,410评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,004评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,969评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,042评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,493评论 2 343