1. 先設(shè)計(jì)數(shù)據(jù)表,一般留言板需要兩個(gè)表:留言內(nèi)容表、回復(fù)表
創(chuàng)新互聯(lián)公司于2013年創(chuàng)立,先為金塔等服務(wù)建站,金塔等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為金塔企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
留言內(nèi)容表:messages
字段如下:
id 自動(dòng)增加
contents 留言內(nèi)容
messages_time 留言時(shí)間
回復(fù)表:reply
字段如下:
id 自動(dòng)增加
messages_id 關(guān)聯(lián)messages表的id
contents 回復(fù)的內(nèi)容
reply_time 回復(fù)時(shí)間
2. 設(shè)計(jì)留言板頁面及保存留言數(shù)據(jù)
大概代碼如下:
form name="form1" method="post" action="index.php?action=ok"
texarea cols="30" rows="10" name="contents"
/textarea
input type="submit" value="提交"
/form
?php
if($_GET['action'] == 'ok'){
$contents = $_POST['contents'];
mysql_query("insert into messages values(NULL,'".$contents."',now())");
}
?
3. 顯示留言內(nèi)容,遍歷數(shù)據(jù)表
?php
//包含數(shù)據(jù)連接代碼
require('data.php');
$query = mysql_query("select * messages");
while($array = mysql_fetch_array($query)){
echo $array['contents']."br";
}
?
4. 回復(fù)的設(shè)計(jì)可以參照留言的設(shè)計(jì)
工具:
Dreamweaver
php、mysql服務(wù)器
步驟/方法
首先是確定自己的留言板需求.例如:名字,郵件及留言內(nèi)容.
一. 建立一個(gè)數(shù)據(jù)庫guestbook。
CREATE TABLE IF NOT EXISTS `content` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(20) NOT NULL,
`email` varchar(50) NOT NULL,
`content` varchar(200) NOT NULL,
PRIMARY KEY (`id`))
ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=3;
二. 新建config.php
? php
$q = mysql_connect("服務(wù)器","數(shù)據(jù)庫用戶","數(shù)據(jù)庫密碼");
if(!$q)
{
die('Could not connect: ' . mysql_error());
}
mysql_query("set names utf8"); //以u(píng)tf8讀取數(shù)據(jù)
mysql_select_db("guestbook",$q); //數(shù)據(jù)庫
?
三. 新建index.php
?php
include("config.php"); //引入數(shù)據(jù)庫連接文件
$sql = "select * from content"; //搜索數(shù)據(jù)表content
$resule = mysql_query($sql,$q);
?
html
meta http-equiv="Content-Type" content="text/html; charset=utf-8" /
body
table width="678" align="center"
tr
td colspan="2" h1留言本 /h1 /td
/tr
tr
td width="586" a href="index.php"首頁 /a | a href="liuyan.php"留言 /a /td
/tr
/table
p
?
while($row=mysql_fetch_array($resule))
{
?
/p
table width="678" border="1" align="center" cellpadding="1" cellspacing="1"
tr
td width="178"Name: ? echo $row[1] ? /td
td width="223"Email: ? echo $row[2] ? /td
/tr
tr
td colspan="4" ? echo $row[3] ? /td
/tr
tr
/table
?
}
?
/body
/html
四. 新建liuyan.php
html
body
meta http-equiv="Content-Type" content="text/html; charset=utf-8" /
table width="678" align="center"
tr
td colspan="2" h1留言本 /h1 /td
/tr
tr
td width="586" a href="index.php"首頁 /a | a href="liuyan.php"留言 /a /td
/tr
/table
table align="center" width="678"
tr
td
form name="form1" method="post" action="post.php"
p
Name:
input name="name" type="text" id="name"
/p
pEmail: input type="test" name="email" id="email" /p
p
留言:
/p
p
textarea name="content" id="content" cols="45" rows="5" /textarea
/p
p
input type="submit" name="button" id="button" value="提交"
input type="reset" name="button2" id="button2" value="重置"
/p
/form
/td
/tr
/table
/body
/html
五. 新建post.php
?php
header("content-Type: text/html; charset=utf-8");
include("config.php");
$name= $_POST['name'];
$email= $_POST['email'];
$patch = $_POST['content'];
$content = str_replace("
"," br /",$patch);
$sql = "insert into content (name,email,content) values ('$name','$email','$content')";
mysql_query($sql);
echo " scriptalert('提交成功!返回首頁。');location.href='index.php'; /script";
?
這樣已經(jīng)成功的寫出一個(gè)留言板了。
第二部分
此次將在上面版本上加多管理,回復(fù)等功能。
首先在sql中字節(jié)。
ALTER TABLE `content` ADD `reply` VARCHAR( 200 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER `content`
一. 新建login.php
html xmlns=""
meta http-equiv="Content-Type" content="text/html; charset=utf-8" /
title無標(biāo)題文檔 /title
/head
body table width="678" align="center"
tr
td colspan="2" h1留言本 /h1 /td
/tr
tr
td width="586" a href="index.php"首頁 /a | a href="liuyan.php"留言 /a /td
/tr
/table
table align="center" width="678"
tr
td align="center"
form name="form1" method="post" action="login2.php"
label for="textfield" /label
p /p
p帳號(hào):
input type="text" name="name" id="name"
/p
p密碼:
input type="password" name="pw" id="pw"
/p
p
input type="submit" name="button" id="button" value="提交"
input type="reset" name="button2" id="button2" value="重置"
/p
/form /td
/tr
/table
/body
/html
二.login2.php
?
session_start();
header("content-Type: text/html; charset=utf-8");
$name = $_POST['name'];
$pw = $_POST['pw'];
if($name == "admin" $pw == "admin"){
$_SESSION["adminname"] = $name;
echo " scriptalert('登錄完成,返回首頁!');location.href='index.php'; /script";
}else{
echo " scriptalert('錯(cuò)誤!');location.href='login.php'; /script";
}
?
三. 在原有的index.php上添加
?php
session_start();
include("config.php");
$sql = "select * from content";
$resule = mysql_query($sql,$q);
?
html
meta http-equiv="Content-Type" content="text/html; charset=utf-8" /
body
table width="678" align="center"
tr
td colspan="2" h1留言本 /h1 /td
/tr
tr
td width="586" a href="index.php"首頁 /a | a href="liuyan.php"留言 /a /td
td width="80"
// 新增管理員登錄
?php
if (isset($_SESSION['adminname']) $_SESSION["adminname"] == "admin"){
echo " a href='logout.php'登出 /a";
}else{
echo " a href='login.php'管理員登錄 /a";
}
?
/td
/tr
/table
p
?
while($row=mysql_fetch_array($resule))
{
?
/p
table width="678" border="1" align="center" cellpadding="1" cellspacing="1"
tr
td width="178"Name: ? echo $row[1] ? /td
td width="223"Email: ? echo $row[2] ? /td
td width="100"
?php
if(isset($_SESSION['adminname']) $_SESSION["adminname"] == "admin"){
echo " a href='huifu.php?id=" . $row[0] . "'回復(fù) /a";
echo " | " . " a href='delete.php?id=" . $row[0] . "'刪除 /a";
} else {
echo "";
}
?
/td
/tr
tr
td colspan="4" ? echo $row[3] ? /td
/tr
tr
td colspan="4" ?
if($row[4] == ""){
?
? echo "暫無回復(fù)。";?
? }else {echo "管理員回復(fù):". $row[4]; } ? /td
/tr
/table
?
}
?
/body
/html
四. 新建huifu.php
?php
include("config.php");
$sql = "select * from content where id=".$_GET["id"];
$resule = mysql_query($sql,$q);
SetCookie("id",$_GET["id"]);
session_start();
header("content-Type: text/html; charset=utf-8");
if(empty($_SESSION["adminname"])){
exit(" script language='javascript'alert('您尚未登錄后臺(tái),或登錄已超時(shí),請(qǐng)重新登錄!');window.location.href='login.php'; /script");
}
?
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ""
html xmlns=""
head
meta http-equiv="Content-Type" content="text/html; charset=utf-8" /
title無標(biāo)題文檔 /title
/head
body
table width="678" align="center"
tr
td colspan="2" h1留言本 /h1 /td
/tr
tr
td width="586" a href="index.php"首頁 /a | a href="liuyan.php"留言 /a /td
/tr
/table
table align="center" width="678"
tr
td
form name="reply" method="post" action="reply.php"
p回復(fù):
?
while($row=mysql_fetch_array($resule))
{
echo $row[3];
}
?
/p
p
textarea name="reply" id="reply" cols="45" rows="5" /textarea
/p
p
input type="submit" name="button" id="button" value="回復(fù)" /
input type="reset" name="button2" id="button2" value="重置" /
/p
/form
/td
/tr
/table
/body
/html
五. reply.php 回復(fù)留言提交頁面.
?
include("config.php");
$id = $_COOKIE["id"];
$sql = "select * from content";
header("content-Type: text/html; charset=utf-8");
$patch = $_POST["reply"];
$reply = str_replace("
"," br /",$patch);
$resule = mysql_query("UPDATE `2`.`content` SET `reply` = '$reply' WHERE `content`.`id` ="."$id");
echo " scriptalert('回復(fù)成功!');location.href='index.php'; /script";
?
這樣就可以建立出一個(gè)簡(jiǎn)單的管理.管理帳號(hào)都是admin 因?yàn)橹皇桥袆e輸入的是不是admin 是的話就把值輸入進(jìn)session中.
一個(gè)html表單,包含留言信息,提交給一個(gè)php文件,然后php把數(shù)據(jù)存入相應(yīng)數(shù)據(jù)庫。
查看留言則是php從數(shù)據(jù)庫讀出相應(yīng)數(shù)據(jù),然后顯示給用戶。
//數(shù)據(jù)庫連接
@mysql_connect("localhost","root","password")?or?die("連接數(shù)據(jù)庫失?。?.mysql_error());
mysql_select_db("test");
mysql_query("set?character?set?'utf-8'");
//每頁顯示的留言數(shù)
$pagesize?=?10;
//確定頁數(shù)?p?參數(shù)
$p?=?$_GET['p']?$_GET['p']:1;
//數(shù)據(jù)指針
$offset?=?($p-1)*$pagesize;
//查詢本頁顯示的數(shù)據(jù)
$query_sql?=?"SELECT?*?FROM?guestbook?ORDER?BY?id?DESC?LIMIT??$offset?,?$pagesize";
//echo?$query_sql;
$result?=?mysql_query($query_sql);
//循環(huán)輸出
while($gblist?=?mysql_fetch_array($result)){
echo?'a?href="',$gblist['nickname'],'"',$gblist['nickname'],'/a';
echo?'發(fā)表于:',date("Y-m-d?H:i",?$gblist[createtime]),'br?/';
echo?'內(nèi)容:',$gblist['content'],'br?/hr?/';
}
//分頁代碼
//計(jì)算留言總數(shù)
$count_result?=?mysql_query("SELECT?count(*)?as?count?FROM?guestbook");
$count_array?=?mysql_fetch_array($count_result);
//計(jì)算總的頁數(shù)
$pagenum=ceil($count_array['count']/$pagesize);
echo?'共?',$count_array['count'],'?條留言';
//循環(huán)輸出各頁數(shù)目及連接
if?($pagenum??1)?{
for($i=1;$i=$pagenum;$i++)?{
if($i==$p)?{
echo?'?[',$i,']';
}?else?{
echo?'?a?href="index.php?p=',$i,'"',$i,'/a';
}
}
}
我沒有太明白你的問題是什么,是不清楚數(shù)據(jù)庫怎么設(shè)計(jì)?
如果是這樣的話,留言板主要的功能就是用戶管理,留言管理,或者還有其他的功能都是類似的。
需要建立一個(gè)用戶表:字段主要為id、用戶名、密碼,還可以有其他的需要記錄的內(nèi)容,比如電子郵件,密碼提示回答,登錄ip等等。
還需要建立一個(gè)留言表來記錄留言信息:主要字段有id、留言標(biāo)題、留言內(nèi)容、發(fā)送人、接收人,還可以有其他需要記錄的內(nèi)容,比如發(fā)送時(shí)間等等。
如果我要是理解錯(cuò)誤你的問題了,那就當(dāng)我沒有回答好了.....勿噴...
首先得設(shè)計(jì)好數(shù)據(jù)庫,留言一個(gè)表,回復(fù)一個(gè)表,然后把留言表中關(guān)鍵字ID關(guān)聯(lián)到回復(fù)表中。
比如:
留言表:message
id
contents
user
time
回復(fù)表:reply
id
m_id 關(guān)聯(lián)留言表中的id
contents
user
time
然后程序方面把對(duì)應(yīng)的留言、回復(fù)保存到相應(yīng)的表中,讀取的時(shí)候先遍歷留言表,然后通過留言表id再讀取對(duì)應(yīng)的回復(fù)數(shù)據(jù)。