
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.