破釜沉舟论坛 » 网页制作初级班 » 留言版制作教程

2006-3-28 10:41 zhangsent
留言版制作教程

做一个留言板不是很难的,只要你有一点点的ASP语言基础就可以很容易的做出来了`!
第一不就是做一个数据库,设置如图:
数据库文件名改为:db.mdb
一个表:gb
各个自段:
id                        自动编号
touxiang              文本
content                备注
qq                        文本 (允许空字符串:是)
zz                         文本
email                    文本 (允许空字符串:是)
title                      文本
reply                    备注  (允许空字符串:是)
addtime              时间日期 (默认值:DATE())

2006-3-28 10:48 zhangsent
用dreamweaver排版如图

2006-3-28 10:50 zhangsent
创建一个CONN。ASP文件,用来装连接字符串:
[code]<%
set conn=server.CreateObject("adodb.connection")
conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.MapPath("db.mdb")
%>[/code]

2006-3-28 10:54 zhangsent
在排好版的index.asp页内插入conn.asp文件,和加入asp语句:
[code]<%
sql="select * from gb order by id desc"
set rs=server.CreateObject("adodb.recordset")
rs.open sql,conn,1,1
%>
[/code]记得“order by id desc”是按照ID号进行倒序排列,从而显示最新的留言

2006-3-28 10:55 zhangsent
现在再对首页进行修改,把要显示的记录一个一个的拿出来,如图:
要养成一个使用完记录就要关闭的习惯:
[code]<%
rs.close
set rs=nothing
conn.close
set conn=nothing
%>[/code]

2006-3-28 11:03 zhangsent
再做点条件修改

2006-3-28 11:04 zhangsent
首页已经制作完成了,现在就是要做发表留言的页面了。
排版还是一样的`!
form的action=add.asp

2006-3-28 11:09 zhangsent
add.asp里的代码:
[code]<!--#include file="conn.asp"-->
<!--#include file="style.asp"-->
<%
zz=request.Form("访客姓名")
qq=request.Form("QQ")
email=request.Form("E-mail")
title=request.Form("主题")
touxiang=request.Form("select")
content=htmlencode(request.Form("留言内容"))

sql="insert into gb(zz,qq,email,title,touxiang,content) values('"&zz&"','"&qq&"','"&email&"','"&title&"','"&touxiang&"','"&content&"')"
conn.execute sql
conn.close
set conn=nothing
response.Write"<div align=center><font size=2>留言成功,2秒钟后,自动返回首页...</font></div>"
response.write "<meta http-equiv='refresh' content='2; url=index.asp; target=_parent;  '>"
%>[/code]

2006-3-28 11:13 zhangsent
到此,留言板的显示留言和添加留言已经完成了,接着就是管理了,也是先要做一个数据库,用来存储我们管理员的信息,一个admin的表,两个字段:admin(管理员姓名),psw(密码),都为文本。
管理页面的制作,排版如图
form 的 action=admin.asp
admin.asp 页面的代码如下:
[quote]<!--#include file="conn.asp"-->
<%
admin=request.Form("管理员")
psw=request.Form("密码")

sql="select * from admin where admin='"&admin&"' and psw='"&psw&"'"
set rs=server.CreateObject("adodb.recordset")
rs.open sql,conn,1,1

if rs.eof and rs.bof then
response.Write"请输入正确的管理员和密码,2秒钟后返回..."
response.write "<meta http-equiv='refresh' content='2; url=admin.asp; target=_parent;  '>"
else
session("admin")=""&admin
response.Redirect"index.asp"

end if

rs.close
set rs=nothing
conn.close
set conn=nothing
%>[/quote]

2006-3-28 11:25 zhangsent
在首页中的如图位置加入如下语句:
[quote]<% If session("admin")<>"" Then %><div align="right" class="STYLE5"><a href="edit.asp?id=<%=rs("id")%>">修改/回复</a> <a href="del.asp?action=del&id=<%=rs("id")%>">删除</a></div>
     <% End If %>[/quote]
注意:a href="edit.asp?id=<%=rs("id")%>"这里用一个?来传递要修改/回复的ID号给我们的修改页面,a href="del.asp?action=del&id=<%=rs("id")%>"这里也一样,传递一个ID号和动作DEL给我们的删除页面。

2006-3-28 11:27 zhangsent
修改留言/回复页面的排版如图
代码:
[code]<!--#include file="conn.asp"-->
<!--#include file="style.asp"-->
<html>
<head>
<title>修改留言</title>
<style type="text/css">
<!--
.STYLE1 {    font-family: "黑体";
   font-size: 16px;
   font-weight: bold;
}
table {
   font-family: "宋体";
   font-size: 12px;
}
body {
   font-family: "宋体";
   font-size: 12px;
}
-->
</style>
<script type="text/JavaScript">
<!--
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
   d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_validateForm() { //v4.0
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
   if (val) { nm=val.name; if ((val=val.value)!="") {
     if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
       if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
     } else if (test!='R') { num = parseFloat(val);
       if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
       if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
         min=test.substring(8,p); max=test.substring(p+1);
         if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
   } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' 不能为空.\n'; }
  } if (errors) alert('错误提示:\n'+errors);
  document.MM_returnValue = (errors == '');
}
//-->
</script>
</head>

<body>
<div align="center">
  <p class="STYLE1">修 改 留 言</p>
  <%
  id=request("id")
  sql="select * from gb where id="&id
  set rs=server.CreateObject("adodb.recordset")
  rs.open sql,conn,3,3
  %>
  <form id="form1" name="form1" method="post" action="del.asp?action=edit&id=<%=rs("id")%>">
   <table width="50%" border="0" cellpadding="1" cellspacing="1" bgcolor="#0A246A">
     <tr>
       <td bgcolor="#FFFFFF"><div align="right">
           <div align="right">访客姓名:</div>
       </div></td>
       <td bgcolor="#FFFFFF"><div align="left">
         <label>
         <input name="访客姓名" type="text" id="访客姓名" value="<%=rs("zz")%>" size="15" readonly />
         </label>
       </div></td>
     </tr>
     <tr>
       <td bgcolor="#FFFFFF"><div align="right">
           <div align="right">主 题:</div>
       </div></td>
       <td bgcolor="#FFFFFF"><div align="left">
         <label>
         <input name="主题" type="text" id="主题" value="<%=rs("title")%>" size="15" />
         </label>
       </div></td>
     </tr>
     <tr>
       <td bgcolor="#FFFFFF"><div align="right">
           <div align="right">留言内容:</div>
       </div></td>
       <td bgcolor="#FFFFFF"><div align="left">
         <label>
         <textarea name="留言内容" cols="45" rows="6" id="留言内容"><%= htmlencode1(rs("content")) %></textarea>
         </label>
       </div></td>
     </tr>
     <tr>
       <td bgcolor="#FFFFFF"><div align="right">站长回复:</div></td>
       <td bgcolor="#FFFFFF"><textarea name="站长回复" cols="45" rows="6" id="站长回复"><%= htmlencode1(rs("reply")) %></textarea></td>
     </tr>
     <tr>
       <td colspan="2" bgcolor="#FFFFFF"><div align="center">
         <label>
         <input name="Submit" type="submit" onClick="MM_validateForm('访客姓名','','R','主题','','R','留言内容','','R');return document.MM_returnValue" value="提交" />
         </label>
         <input type="reset" name="Submit2" value="重置" />
       </div></td>
     </tr>
   </table>
  </form>
  <p><a href="index.asp">返回</a></p>
  <% rs.close
  set rs=nothing
  conn.close
  set conn=nothing %>
</div>
</body>
</html>
[/code]

2006-3-28 13:03 露比
加精,转版~ [s:2]

2006-3-28 13:20 zhangsent
不好意思~!刚才去吃饭,现在我们接着来`!
刚才我们的edit.asp页面里的form 的 del.asp?action=edit&id=<%=rs("id")%>传递动作action的值 edit 和 ID 到del.asp页面。

2006-3-28 14:52 zhangsent
接着就是退出管理了,只要把我们的session("admin")变为空就可以了:
代码:
[code]<%
session("admin")=""
response.Redirect"index.asp"
%>[/code]
很简单的。
到此,我们的留言本也完成了,至于如何美化自己的留言本就看看 路比 的PS画图了,呵呵`!
简单的教程,希望对新人有所帮助!~!
我在文件上加上注译以后在上传上来,大家可以回去慢慢参考~!

2006-3-28 15:09 zhangsent
源程序,如果有什么问题,请提出

2006-3-29 17:28 木舟
不错,   坛子里太缺少写教程的舟友了.

2006-3-30 17:33 xiaocao-x
很详细,相信对初学者很有帮助!

2006-4-4 12:57 露比
[s:8] 真的好贴啊

2006-4-4 13:37 czgboy
那什么`@
代表人民,感谢你!~ [s:2]

2006-4-12 23:29 ljh36
顶了,谢谢你啊

页: [1] 2 3 4
查看完整版本: 留言版制作教程


Powered by Discuz! Archiver 5.5.0  © 2001-2006 Comsenz Inc.