php留言板设计
A. phpcms留言板怎么制作
phpcms
v9留言板的制作方法有两种
一种是直接应用phpcms官方自己制作的
v9的插件
直接拷入根目录
后台系统会自动默认
下载地址
以及制作方式
我空间有详细列出
另一种是利用
模板里的
表单向导功能
自己制作
B. 请问前辈们我想实现一个PHP留言板,页面不用刷新就能显示提交的内容!
前端页面中加jquery(javaScript)代码:
functionbtn_click(){
varurl='php_ajax_example.php';
varcomment='这是你的评论内容';//你自己看怎么获取它,
//例如你把评论放在<textareaid="comment"></textarea>中,
//varcomment=$.trim($("#comment").html());
varuserid=123;//评论者的id(如果要求已登录)
varusername='jack';//评论者名字
varemail='[email protected]';
$.post(url,
{comment:comment,id:userid,name:username,email:email},
function(back_data){
alert(back_data);
});
}
<buttononclick="btn_click();">提交评论</button>
新建一个文件:php_ajax_example.php,代码:
<?php
varcomment=$_POST['comment'];
varuserid=$_POST['id'];
//......补上你需要的数据
//把以上数据存入数据库
echo'评论保存成功!';
?>
C. php留言板项目的项目描述怎么写
本项目需要php+mysql来实现。
首先需要分析数据库:
需要建立用户表(user)
表中字段:编号(id int primary key auto_increment),昵称(nickname varchar(255)),性别(sex int(1) 男为1,女为0),邮箱(email varchar(255)),注册时间(reg_time varchar(255) 时间戳)
还需要建立留言表(leaveword)
表中字段:编号(id int primary key auto_increment),留言用户编号(user_id int),留言内容(content text),留言时间(leaveword_time varchar(255))
建完表并插入一些测试数据后,就开始设计页面了。
当用户登录后,需要把用户的id存入session中$_SESSION['user_id'],以便用来验证用户是否登录,是否有权限发表留言。
用户进入到留言页面中以后,需要分页展示其他(包括自己)的留言。这是本人写的分页函数给你作为参考:
function getPageNum($table,$pagesize=10,$where="1=1"){ //这个函数用来获得总记录数
global $db;
$html="";
$sql="select * from ".$table." where ".$where;
$re=$db->sql_query($sql);
$num=$db->sql_numrows($re);
$pageNum=ceil($num/$pagesize);
return $pageNum;
}
function paging($table,$pagesize=10,$nowpage=1,$where="1=1",$url=""){ //这个函数用来获得分页字符串
global $db;
$html="";
$sql="select * from ".$table." where ".$where;
$re=$db->sql_query($sql);
$num=$db->sql_numrows($re);
$pageNum=ceil($num/$pagesize);
if($nowpage-2<=2){
$start=1;
}else if($nowpage>=$pageNum-2){
$start=$pageNum-4;
}else{
$start=$nowpage-2;
}
$end=($start+4>=$pageNum)?$pageNum:$start+4;
$html.="<a href='?page=1'>首页</a>";
for($i=$start;$i<=$end;$i++){
if($url==""){
$html.="<a href='?page=".$i."'>".$i."</a>";
}else{
$html.="<a href='?page=".$i."&".$url."'>".$i."</a>";
}
}
$html.="<a href='?page=".$pageNum."'>尾页</a>";
return $html;
}
当用户提交留言时,应该就不用多说了。当用户点击提交(submit)后,以$_POST或以$_GET来接提交的值,然后写个插入语句
insert into leaveword values();这个不用我多说,你应该会吧。
说实在的留言确实没多少东西,惟一的难点就是,如何把用户的留言以分页的形式显示。
再难一点,就是在提交留言时,用ajax来做,达到页面无刷新的效果。
这是本人的一点心得,希望可以对你写项目描述有帮助。
D. php留言板的回复怎么做
首先得设计好数据库,留言一个表,回复一个表,然后把留言表中关键字ID关联到回复表中。
比如:
留言表:message
id
contents
user
time
回复表:reply
id
m_id 关联留言表中的id
contents
user
time
然后程序方面把对应的留言、回复保存到相应的表中,读取的时候先遍历留言表,然后通过留言表id再读取对应的回复数据。
E. phpcms留言板怎么制作
phpcms v9留言板的制作方法有两种 一种是直接应用phpcms官方自己制作的 v9的插件 直接拷入根目录 后台系统会自动默认 下载地址 以及制作方式 我空间有详细列出 另一种是利用 模板里的 表单向导功能 自己制作
F. php 留言板 留言和回复
看了你的问题.和数据库的2个表设计.
1.先确定数据表的设计.
留言表 message
字段:
msgid
uid
content
postdate
回复表replies
repliesid
uid
msgid
content
postdate
这样的设计表,我认为是最好的。符合数据库的范式,主要是简单明了,简单就意味着性能.
2.怎么把数据库合理的提取出来,只能说是从代码上着手.
第一种最直接的方法。
$sql = "select * FROM message order postdate desc";
得到$messages留言的数组
foreach ($message as $key => $value) {
$sql = "select * from replies where msgid = ".$value['msgid'];
得到留言对应的回复$replies
$message[$key]['replies'] = $replies;
}
最终得到数组$message;
前台显示:
foreach( $messsage as $key => $value ) {
echo $value[‘content']; //显示留言
foreach( $value['replies'] as $k => $val ) {
echo $val['content'];//显示该留言下的恢复
}
}
第二中方法,我比较喜欢,而且也一直在用
$sql = "select * FROM message order postdate desc";
得到$messages;
通过处理得到,数组$messages中的所有msgid,并存入一维数$msgids
$msgids = array();
$result = array(); //这个数组转化$messages用的.因为我们要把$messages的key值变成msgid
foreach( $message as $key => $value ) {
$msgids[] = $value['msgid'];
$result[$value['msgid']] = $value;
}
unset($messages); 这个数据就没有用了。因为已经有$result;
一次性查询出,这些留言需要的所有回复,$replies;
$sql = "select * from replies WHERE msgid in (".implode(',',$msgids).") order by postdate desc";
foreach( $replies as $key => $value ){
$result[$value['msgid']]['replies'][] = $value;
}
前台显示:
foreach( $resultas $key => $value ) {
echo $value[‘content']; //显示留言
foreach( $value['replies'] as $k => $val ) {
echo $val['content'];//显示该留言下的恢复
}
}
G. php怎么在mysql创建留言板步骤
工具:
Dreamweaver
php、mysql服务器
步骤/方法
首先是确定自己的留言板需求.例如:名字,邮件及留言内容.
一. 建立一个数据库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("服务器","数据库用户","数据库密码");
if(!$q)
{
die('Could not connect: ' . mysql_error());
}
mysql_query("set names utf8"); //以utf8读取数据
mysql_select_db("guestbook",$q); //数据库
?>
三. 新建index.php
< ?php
include("config.php"); //引入数据库连接文件
$sql = "select * from content"; //搜索数据表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>
< p>Email:< 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 "< script>alert('提交成功!返回首页。');location.href='index.php';< /script>";
?>
这样已经成功的写出一个留言板了。
第二部分
此次将在上面版本上加多管理,回复等功能。
首先在sql中字节。
ALTER TABLE `content` ADD `reply` VARCHAR( 200 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER `content`
一. 新建login.php
< html xmlns="http://www.w3.org/1999/xhtml">
< meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
< title>无标题文档< /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>帐号:
< 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 "< script>alert('登录完成,返回首页!');location.href='index.php';< /script>";
}else{
echo "< script>alert('错误!');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] . "'>回复< /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 "暂无回复。";?>
< ? }else {echo "管理员回复:". $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('您尚未登录后台,或登录已超时,请重新登录!');window.location.href='login.php';< /script>");
}
?>
< !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
< html xmlns="http://www.w3.org/1999/xhtml">
< head>
< meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
< title>无标题文档< /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>回复:
< ?
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="回复" />
< input type="reset" name="button2" id="button2" value="重置" />
< /p>
< /form>
< /td>
< /tr>
< /table>
< /body>
< /html>
五. reply.php 回复留言提交页面.
< ?
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 "< script>alert('回复成功!');location.href='index.php';< /script>";
?>
这样就可以建立出一个简单的管理.管理帐号都是admin 因为只是判别输入的是不是admin 是的话就把值输入进session中.
H. 求php语言编写的留言板源码!!!!!!!!!
这是一个简单的留言本,目前还没有后台管理程序。如果哪位高手能补上,那就太好了。
演示在http://www.ideawu.net/person/liuyan
留言保存在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>
<br><B><FONT COLOR="#0000FF">图片留言板</FONT></B>
<center>
<table width="800" border="1" bordercolor="#88CCEE" cellspacing="0" cellpadding="4" style="border-collapse:collapse; word-break:break-all">
<tr><td style="border-right-style: none">
<form method="post" action="savemsg.php" style="font-size: 13px">
姓名:<br><input type="text" name="guest_name" maxlength=32 size=32><br>
留言:(字数:<font color="#0000FF"><span id=sNum>0</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;">
<tr><td>
<p style="line-height: 100%; margin-top: 1; margin-bottom: 1" align="left">
<?php
$perPage=7; //每页显示留言数目
$num=$p;
if($num<1) $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($prev>0)
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></td><td 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."<br><b>".$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">
<tr><td>
<p style="line-height: 100%; margin-top: 2; margin-bottom: 2" align="left">
<?php
if($prev>0)
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.php>Refresh</a>");
if(empty($_POST['guest_msg']))
die("请填写留言内容再提交。<a href=index.php>Refresh</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;
}
I. 用php,mysql制作留言板
你的程序一开始就已经require deal.php了,不明白为什么form里面的action还是指向deal.php,把那个action='',自然就可以了。
J. php设计的留言板 ,如何把从数据库查询出来的结果集,按新旧时间排序
关键出现在sql语句上,你在sql语句后面加 ORDER BY 你的时间字段 DESC 这样就是按照最新的排序l .