十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
使用glob 读出所有的文件 然后使用 krsort 逆向排序 分页 读出你要留言
成都网站制作、网站建设服务团队是一支充满着热情的团队,执着、敏锐、追求更好,是创新互联的标准与要求,同时竭诚为客户提供服务是我们的理念。创新互联公司把每个网站当做一个产品来开发,精雕细琢,追求一名工匠心中的细致,我们更用心!
这是一个简单的留言本,目前还没有后台管理程序。如果哪位高手能补上,那就太好了。
演示在
留言保存在message.txt文件中,留言的格式为:date$ip$name$content
"$"为分隔符号
注意:源码文件和message.txt文件必须以gbk格式保存。如果你不知道如何保存文件为gbk格式,请咨询你的文本编辑器软件提供商。
/****************************************
* 本代码可以用作任何用途,但是与作者无关。
* 也就是,你使用本代码获取收益或者因此受
* 到损害,后果与作者无关。
****************************************/
file: index.php
代码:
html
head
meta http-equiv="Content-Type" content="text/html; charset=gbk"
title留言板/title
link rel="stylesheet" href="../msg.css" type="text/css"
/head
body
brBFONT COLOR="#0000FF" 图片留言板/FONT/B
center
table width="800" border="1" bordercolor="#88CCEE" cellspacing="0" cellpadding="4" style="border-collapse:collapse; word-break:break-all"
trtd style="border-right-style: none"
form method="post" action="savemsg.php" style="font-size: 13px"
姓名:brinput type="text" name="guest_name" maxlength=32 size=32br
留言:(字数:font color="#0000FF"span id=sNum0/span/font/256)br
textarea class="textForm" name="guest_msg" cols="64" rows="8" onkeyup="sNum.innerHTML=this.value.length"/textarea br
input class="button" type="submit" name="submit" value="发表留言"
input class="button" type="reset" value="重置" name="reset"
/form
/td/tr
/table
?php
include("showmsg.php");
if(!empty($_GET['p'])){
$num=$_GET['p'];
showpage($num);
}else showpage(1);
?
/center
/body
/html
file: showmsg.php
代码:
?php
function showpage($p)
{ ?
table width="800" border="0" bordercolor="#88CCEE" cellspacing="0" cellpadding="4" style="border-collapse:collapse; word-break:break-all;font-size:12px;"
trtd
p style="line-height: 100%; margin-top: 1; margin-bottom: 1" align="left"
?php
$perPage=7; //每页显示留言数目
$num=$p;
if($num1) $num=1;
$prev=$num-1;
$next=$num+1;
$page=$num-1; //当前页码
$fname="message.txt"; //存储留言的文件
$all_msg=file($fname); //将留言读入数组
$line_count=count($all_msg);
$page_count=ceil($line_count/$perPage);
if($prev0)
echo "a href=index.php?p=$prev上一页/a ";
else
echo "上一页 ";
if($line_count($next-1)*$perPage)
echo "a href=index.php?p=$next下一页/a ";
else
echo "下一页 ";
echo "当前第 ".$num." 页,共有".$page_count."页,".$line_count."条留言。";
?
/p/td/tr
/table
table width="800" border="1" bordercolor="#88CCEE" cellpadding="3" cellspacing="0" style="border-collapse:collapse; font-size:12px; word-break:normal; table-layout:fixed;"
tr height="18" bgcolor="#5FBEF8"td width="20%"
b留言时间/留言者/b/tdtd width="86%"b留言内容/b
/td/tr
?php
//显示留言
$bg1="#FBF9F9"; $bg2="#E9EFF4";$bg=$bg2;
for($n=$line_count-1-$page*$perPage;$line_count-1-$page*$perPage-$n$perPage;$n--){
$bg=($bg==$bg1)? $bg2:$bg1; //变换背景颜色
if(!empty($all_msg[$n])){
list($date,$ip,$name,$msg)=explode("$",$all_msg[$n],4); //获取留言内容
echo "tr bgcolor=$bg";
echo "td width=14%".$date."brb".$name."/b/td";
echo "td width=86%".$msg."/td";
echo "/tr";
}
}
?
/table
table width="800" border="0" bordercolor="#88CCEE" cellspacing="0" cellpadding="4" style="border-collapse:collapse; word-break:break-all;font-size:12px"
trtd
p style="line-height: 100%; margin-top: 2; margin-bottom: 2" align="left"
?php
if($prev0)
echo "a href=index.php?p=$prev上一页/a ";
else
echo "上一页 ";
if($line_count($next-1)*$perPage)
echo "a href=index.php?p=$next下一页/a ";
else
echo "下一页 ";
echo "当前第 ".$num." 页,共有".$page_count."页,".$line_count."条留言。";
?
/p/td/tr
/table
?php } ?
file: savemsg.php
代码:
?php
$MSG_MAX_LEN=512; //留言最大长度
if (getenv("HTTP_CLIENT_IP"))
$ip= getenv("HTTP_CLIENT_IP");
elseif (getenv("HTTP_X_FORWARDED_FOR"))
$ip= getenv("HTTP_X_FORWARDED_FOR");
else
$ip= getenv("REMOTE_ADDR");
//获取IP地址结束
$date=date("Y年m月d日 H:i:s",time());
if(empty($_POST['guest_name']))
die("请填你的名字。a href=index.phpRefresh/a");
if(empty($_POST['guest_msg']))
die("请填写留言内容再提交。a href=index.phpRefresh/a");
$guest_name=strip_tags($_POST['guest_name']);
$guest_msg=substr($_POST['guest_msg'],0,$MSG_MAX_LEN);
//write message to file
//make the message be a line when stored
$guest_msg = str_replace( "\r\n", "\n", $guest_msg);
$guest_msg = str_replace( "\r", "\n", $guest_msg);
$guest_msg = str_replace(" "," ",$guest_msg);
$guest_msg = str_replace("","",$guest_msg);
$guest_msg = str_replace("","",$guest_msg);
$guest_msg = str_replace("\'","'",$guest_msg);
$guest_msg = nl2br($guest_msg);
//保存留言,以追加的形式
$fname="message.txt";
$fp=fopen($fname,"a+");
fwrite($fp,$date."$".$ip."$".$guest_name."$".$guest_msg."\n");
fclose($fp);
echo "meta http-equiv='refresh' content='0;url=index.php'";
?
用于显示效果的样式表文件
file: msg.css
代码:
A:link {
color: #0033FF;
text-decoration: none;
}
A:visited {
color: #0033FF;
text-decoration: none;
}
A:hover {
color: #30A300;
text-decoration: underline;
}
A:active {
color: #0036A9;
text-decoration: none;
}
BODY{
font-family: Verdana,Arial,Helvetica,sans-serif;
font-size: 12px;
background: #FBF9F9;
}
TABLE{
font-family: Verdana,Arial,Helvetica,sans-serif;
font-size: 12px;
border-collapse: collapse;
table-layout: fixed;
margin: 0px;
}
input.htm
html
head
meta http-equiv="Content-Language" content="zh-cn"
meta http-equiv="Content-Type" content="text/html; charset=gb2312"
titleinput/title
/head
body
form method="POST" action="receive.php"
p您的姓名: input type="text" name="T1" size="20"/p
p您的性别:男input type="radio" value="0" name="R1"
女input type="radio" name="R1" value="1"/p
p您的EMAIL:input type="text" name="T2" size="35"/p
p您的留言内容:/p
p textarea rows="16" name="S1" cols="45"/textarea/p
p /p
p input type="submit" value="提交" name="B1"
input type="reset" value="重置" name="B2"/p
/form
/body
/html
receive.php
?php
$user='root';
$password='123';
$db='guestbook';
$table='gbook';
$ip=getenv(REMOTE_ADDR);
$sql = "INSERT INTO `guestbook`.`gbook` (`id`, `name`, `sex`, `email`, `info`, `ip`, `time_at`) VALUES (NULL, '$T1', '$R1', '$T2', '$S1', '$ip', NOW());";
$connect=mysql_connect('localhost',$user,$password);
mysql_select_db($db);
mysql_query($sql);
$result=mysql_query("select * from $table");
while ($arr=mysql_fetch_array($result))
{
if ($arr[2]==0)
$gender='先生';
else
$gender='女士';
?
html
head
meta http-equiv="Content-Language" content="zh-cn"
meta http-equiv="Content-Type" content="text/html; charset=gb2312"
titleReceive/title
/head
body style="background-attachment: fixed"
table border="1" width="100%" id="table1" bgcolor="#FFFFFF"
tr
td bordercolor="#FFFFFF" bgcolor="#C0C0C0"?=$arr[6]?(?=$arr[5]?)p?=$arr[1]? ?=$gender?a href="?=$arr[3]?"?=$arr[3]?/a
写到:/td
/tr
tr
td?=$arr[4]?p /p
pa href="del.php?id=?=$arr[0]?"[删除]/a
a href="modify.php?id=?=$arr[0]?"[修改]/a]/td
/tr
/table
/body
/html
?php
echo 'p';
echo 'p';
}
?
html
head
meta http-equiv="Content-Language" content="zh-cn"
meta http-equiv="Content-Type" content="text/html; charset=gb2312"
title新建网页 1/title
/head
body
pa href="input.htm"继续留言/a/p
/body
/html
del.php
?php
$user='root';
$password='123';
$db='guestbook';
$table='gbook';
$sql="DELETE FROM $table WHERE id=$id";
$connect=mysql_connect('localhost',$user,$password);
mysql_select_db($db);
$result=mysql_query($sql);
if ($result)
echo "删除成功";
else
echo "删除失败";
?
html
head
meta http-equiv="Content-Language" content="zh-cn"
meta http-equiv="Content-Type" content="text/html; charset=gb2312"
title新建网页 1/title
/head
body
pa href="receive.php"返回首页/a/p
/body
/html
modify.php
?php
$user='root';
$password='123';
$db='guestbook';
$table='gbook';
$ip=getenv(REMOTE_ADDR);
$connect=mysql_connect('localhost',$user,$password);
mysql_select_db($db);
$result=mysql_query("select * from $table where id=$id");
$arr=mysql_fetch_array($result);
?
html
head
meta http-equiv="Content-Language" content="zh-cn"
meta http-equiv="Content-Type" content="text/html; charset=gb2312"
titleinput/title
/head
body
form method="POST" action="modify_ok.php?id=?=$id?"
p您的姓名: input type="text" name="T1" size="20" value="?=$arr[1]?"/p
p您的性别:
?php
if ($arr[2]==0) echo '男input type="radio" value="0" name="R1" checked
女input type="radio" name="R1" value="1"/p';
else echo '男input type="radio" value="0" name="R1"
女input type="radio" name="R1" value="1" checked/p';
?
p您的EMAIL:input type="text" name="T2" size="35" value="?=$arr[3]?"/p
p您的留言内容:/p
p textarea rows="16" name="S1" cols="45" ?=$arr[4]?/textarea/p
p /p
p input type="submit" value="修改" name="B1"
input type="reset" value="重置" name="B2"/p
/form
/body
/html
modify_ok.php
?php
$user='root';
$password='123';
$db='guestbook';
$table='gbook';
$connect=mysql_connect('localhost',$user,$password);
mysql_select_db($db);;
$sql = "UPDATE `guestbook`.`gbook` SET `name` = '$T1', `sex` = '$R1', `email` = '$T2', `info` = '$S1' WHERE `gbook`.`id` = '$id' LIMIT 1;";
$result=mysql_query($sql);
if ($result)
echo "修改成功";
else
echo "修改失败";
?
html
head
meta http-equiv="Content-Language" content="zh-cn"
meta http-equiv="Content-Type" content="text/html; charset=gb2312"
title新建网页 1/title
/head
body
pa href="input.htm"继续留言/a/p
/body
/html
不要数据库,客户端A的内容提交到服务器哪里去呢?客户端B又从哪里去读A写的聊天内容呢。
php是脚本语言,没有数据库,可能还真没办法。
以前倒是有人用xml做过一个不用数据库的留言本,但那可不是实时聊天的哦。
数据库的创建
CREATE DATABASE GBOOK;
CREATE TABLE `gbook` (
`id` INT( 255 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`name` VARCHAR( 10 ) NOT NULL ,
`sex` TINYINT( 1 ) UNSIGNED NOT NULL ,
`email` VARCHAR( 255 ) NOT NULL ,
`info` TEXT NOT NULL ,
`ip` VARCHAR( 15 ) NOT NULL ,
`time_at` DATETIME NOT NULL
)
主要页面有:
input.html为初始页
insert.php为把输入内容送入数据库
show.php显示留言板内容
change.php修改留言板内容的界面
del.php删除留言板内容
change_ok.php修改留言板内容并送入数据库
input.html
html
head
meta http-equiv="content-type" content="text/html; charset=GB2312" /
title留言版/title
/head
body
form name="form1" method="post" action="insert.php"
p你的名字:input type="text" name="name" size="20" //p
p你的性别:input type="radio" value="1" name="sex" checked="checked" /男生 input type="radio" value="0" name="sex" /女生 /p
p你的E-mail:input type="text" name="email" size="20" //p
p你的留言内容:/p
ptextarea rows="9" name="info" cols="35"/textarea/p
pinput type="submit" value="提交" name="B1" /input type="reset" value="重设" name="B2" //p
/form
/body
/html
insert.php
?php
$mysql_server_name = "localhost";
$mysql_username = "root";
$mysql_password = "123456";
$mysql_database = "gbook";
$ip = getenv('REMOTE_ADDR');
$conn = mysql_connect("localhost","root","123456");
mysql_select_db("gbook");
$sql = "INSERT INTO `gbook` ( `id` , `name` , `sex` , `email` , `info` , `ip` , `time_at` )
VALUES (NULL , '$name', '$sex', '$email', '$info', '$ip', NOW( ))";
$result = mysql_query($sql,$conn);
$id = mysql_insert_id();
mysql_close($conn);
?
p留言成功/p
pa href="show.php"去留言页 /a/p
show.php
?
$mysql_server_name = "localhost";
$mysql_username = "root";
$mysql_password = "123456";
$mysql_database = "gbook";
$sql = "SELECT * FROM gbook ORDER BY 'id' DESC"; //排序 后留言的在前面显示
$conn = mysql_connect($mysql_server_name,$mysql_username,$mysql_password);
mysql_select_db($mysql_database,$conn);
$result = mysql_query($sql);
while($row = mysql_fetch_row($result))
{ // ----if语句判断男女------
if($row[2]==1)
{ $gender = '男';}
else
{ $gender = '女'; }
?
table width="752" border="1"
tr
td height="32"p?=$row[6]? ?=$row[5]? /p
p?=$row[1]?(?=$gender?) ?=$row[3]?/p/td
/tr
tr
td height="45"?=nl2br($row[4])?pa href="change.php?id=?=$row[0]?"[修改]/a a href="del.php?id=?=$row[0]?"[删除]/a/p/td
/tr
/table
hr /
?
}
mysql_free_result($result);
?
change.php
?
$mysql_server_name = "localhost";
$mysql_username = "root";
$mysql_password = "123456";
$mysql_database = "gbook";
$sql = "SELECT name, sex, email, info FROM gbook WHERE id = '$id' ";
$conn = mysql_connect($mysql_server_name,$mysql_username,$mysql_password);
mysql_select_db($mysql_database,$conn);
$result = mysql_query($sql);
$row = mysql_fetch_row($result);
?
html
head
meta http-equiv="content-type" content="text/html; charset=GB2312" /
title留言版/title
/head
body
form name="form1" method="post" action="change_ok.php?id?=$id?"
p你的名字:input type="text" name="name" size="20" value="?=$row[0]?"//p
?
// -----if语句判断男女 1为男 0为女-------
if($row[1]==1)
echo ' p你的性别:input type="radio" value="1" name="sex" checked="checked" /男 input type="radio" value="0" name="sex" /女 /p';
else
echo ' p你的性别:input type="radio" value="1" name="sex" /男 input type="radio" value="0" name="sex" checked="checked" /女 /p';
?
p你的E-mail:input type="text" name="email" size="20" value="?=$row[2]?"//p
p你的留言内容:/p
ptextarea rows="9" name="info" cols="35"?=$row[3]?/textarea/p
pinput type="submit" value="提交" /input type="reset" value="重设" //p
/form
/body
/html
del.php
?
$mysql_server_name = "localhost";
$mysql_username = "root";
$mysql_password = "123456";
$mysql_database = "gbook";
$sql = "DELETE FROM gbook WHERE id = '$id' ";
$conn = mysql_connect($mysql_server_name,$mysql_username,$mysql_password);
mysql_select_db($mysql_database,$conn);
$result = mysql_query($sql);
mysql_close($conn);
?
pa href="show.php"[返回]/a/p
change_ok.php
?
$mysql_server_name = "localhost";
$mysql_username = "root";
$mysql_password = "123456";
$mysql_database = "gbook";
$sql = "UPDATE `gbook` SET `name` = '$name',`sex` = '$sex',`email` = '$email',`info` = '$info' WHERE `id` ='$id' ";
$conn = mysql_connect($mysql_server_name,$mysql_username,$mysql_password);
mysql_select_db($mysql_database,$conn);
$result = mysql_query($sql);
mysql_close($conn);
?
pa href="show.php"[返回]/a/p
留言板也就需要两个页面
一个是前台用户填写留言用的 是几个文本框 姓名 联系方式 留言内容等 用户填好提交以后点提交 就把这些数据插入到数据库
另一个是后台管理员查看留言的页面
也就是把数据库里的留言读出来 展示到页面上
再设置几个操作按钮 比如删除留言