asp论坛制作教程_BBS_ASP源码

 时间:2015-12-16 02:57:40 贡献者:no3_2012

导读:一、建立文件1、数据库,用来储存发表的帖子!-------命名为:bbs.mdb forum.asp 2、 有数据库就必须连接数据库, 该文件用来连接数据库: ----命名为: conn.asp connect.asp 3、发表帖子的文件----命

asp.net简洁论坛源代码 - 源码下载 - a5源码
asp.net简洁论坛源代码 - 源码下载 - a5源码

一、建立文件1、数据库,用来储存发表的帖子!-------命名为:bbs.mdb forum.asp 2、 有数据库就必须连接数据库, 该文件用来连接数据库: ----命名为: conn.asp connect.asp 3、发表帖子的文件----命名为:say.asp publish.asp 4、保存发表帖子内容的文件-----命名为:save.asp save.asp 5、显示帖子标题的文件------命名为:index.asp index.asp 6、显示帖子内容的文件,即点击标题后所进入的页面-----命名为:show.asp topic.asp 7、删除帖子内容的文件-----命名为:del.asp delete.asp 8、修改帖子内容的文件-----命名为:modify.asp modify.asp 9、修改后保存帖子内容的文件-----命名为:modifysave.asp save.asp 10、保存回复内容------wback.asp reply.asp 11、CSS 样式表文件------main.css 12、页面上部----header.htm 13、页面下部------footer.htm二、各文件的主要内容1、bbs.mdb 打开这个数据库,就是 Access 建立三个表 bbs: id(自动给帖子编号),他的数据类型设为“自动编号” name(用来储存发表的作者),数据类型为“文本” title(用来储存帖子的主题),数据类型为“文本” body(用来储存帖子的内容),数据类型为“备注” wtime(撰写时间) 时间 countwb(回复计数) 整数 bbbs:回复数据保存 hostid(楼主 ID) 文本 btime(回复时间) 时间 bname(回复人名字)文本 bid(回复文章 ID)数字 bcontent(回复内容)备注 btitle(回复主题) 文本 author: name(名字)文本 code(密码)文本 sex(性别)文本 birth(出生)文本 com(联系方式)文本 2、conn.asp 源代码为: <%Server.scriptTimeout="10" connstr="DBQ="+server.mappath("bbs.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"

set conn=Server.CreateObject("ADODB.connection") conn.open connstr%> 建立连接,"bbs.mdb"是刚建立的数据库文件。

3、say.asp <%sub saysth() name=request.QueryString("name")%>

发表文章:
大名:> 密码: 点此注册
标题:
内容:

<% end sub '用过程和函数调用的方式,能容易理解。

'这里只是一个表单提交(到 save.asp) %> 发表

  <%headtext()%>  
  <%saysth()%>  
     
4、save.asp <%sub save() name=Replace(Request.Form("name"),"'","''") title=Replace(Request.Form("title"),"'","''") body=Replace(Request.Form("body"),"'","''") code=Replace(Request.Form("code"),"'","''") set savebbs=conn.execute("select * from author where name='" &name& "' " & "and code='" &code& "'" ) if name="" or title="" or body="" or code="" or savebbs.eof then%>
后退填写完整资料/填写正确用户名和密码,你才能发表 帖子!

点此注册 <%else sql="insert into bbs(name,title,body,wtime,countwb)values('"& name & "','"&title&"','"&body& "','" & now() & "', 0)" set savebbs=conn.execute(sql) set savebbs=nothing set savebbs=conn.execute("select * from bbs where name='" & name & "' order by wtime desc") '打开数据表,插入数据。

%>
发表成功!查看帖子" title="">查看帖子" target="_blank">">查看帖子 |返回论坛 <%end if set savebbs=nothing

end sub %> 保存

<%headtext()%>
<%save()%>
5、index.asp 源代码: <%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%> <%sub maintalk()%> <% set showbbs = server.CreateObject("ADODB.recordset") showbbsStr="select*from bbs order by wtime desc" showbbs.open showbbsStr,conn,3,2 if showbbs.EOF and showbbs.BOF then%>
暂时还没有文章,现在发表
<%else showbbs.PageSize=10'分页 PageN=10 '显示 10 个页数.

PageCount=showbbs.PageCount Page=int(request("Page")) CurrentPageN=int(request("CurrentPageN")) if Page<=0 or request("Page")="" or request("Page")="0" then Page=1 if CurrentPageN<=0 or request("CurrentPageN")="" then CurrentPageN=1 showbbs.AbsolutePage=Page %>
<%for i=1 to showbbs.PageSize%>

作者:<%=showbbs("name")% >" title=""><%=showbbs("name")% >" target="_blank">"><%=showbbs("name")% >  <%if showbbs("countwb")=0 then%> 回复<<%=showbbs("countwb")%>> <%else%> 回复<<%=showbbs("countwb")%>> " title=""> 回复<<%=showbbs("countwb")%>> " target="_blank">"> 回复<<%=showbbs("countwb")%>> <%end if%>  <%wt=showbbs("wtime")'如果为撰写当天的时间,红色显示。

if year(now())=year(wt) and month(now())=month(wt) and day(now())=day(wt) then%> 撰写/修改时间:<%=wt%>  <%else%> 撰写/修改时间:<%=wt%>  <%end if%> 修改" title="">修改" target="_blank">">修改 删除" title="">删除" target="_blank">">删除


align="left" style=" border:dashed #999999 ">


<%'以下为页码显示。

if Page<>1 then%> (首页) <%else%> (当前为首页) <%end if%> <%if PageCount>PageN and CurrentPageN>=2 then%> (上<%=PageN%>页)" title="&CurrentPageN=<%=Curre ntPageN-1%>">(上<%=PageN%>页)" target="_blank">&CurrentPageN=<%=Curre ntPageN-1%>">(上<%=PageN%>页) <%end if%> <%for i=(CurrentPageN-1)*PageN+1 to (CurrentPageN-1)*PageN+PageN%> <%if i = Page then%> -<%=i%>- <%elseif i  <%=i %> " title="&CurrentPageN=<%=CurrentPageN%>"> <%=i %> " target="_blank">&CurrentPageN=<%=CurrentPageN%>"> <%=i %>  <%end if%> <%Next%> <%if PageCount>PageN and CurrentPageN (下<%=PageN%>页)" title="&CurrentPageN=<%=CurrentP ageN+1%>">(下<%=PageN%>页)" target="_blank">&CurrentPageN=<%=CurrentP ageN+1%>">(下<%=PageN%>页) <%end if%> <%if PageCount>PageN and Page<>PageCount then%> (最后一页)" title="&CurrentPageN=<%=int(PageCount/PageN) +1%>">(最后一页)" target="_blank">&CurrentPageN=<%=int(PageCount/PageN) +1%>">(最后一页) <%end if%> <%if PageCount=Page then%>(当前为最后页)<%end if%> (共<%=PageCount%>页)

<%showbbs.Close set showbbs=nothing end if end sub%> <%sub saysth() '下方的快捷发表表单 name=request.QueryString("name")%>

发表文章:
大名:> 密码: 点此注册
标题:
内容:

<%end sub%> 讨论区首页

<%headtext()%>
<%maintalk()%><%saysth()%>
6、show.asp 源代码: <%id=request.querystring("id") set show=conn.execute("select*from bbs where id="&id&"")'全局%> <%sub maintalk '主文章%>
<%=show("title")%>

内容:<%=show("body")%>


<%end sub%> <%sub wbtalk() '回复文章%> <%sql="select*from bbbs where hostid='" & id & "' order by btime asc" set showwback=conn.execute(sql) floori=0 do while not showwback.eof '没有像主页那样分页,原理相同。

floori=floori+1%>

<%=floori%>楼:<%=showwback("btitle")%>

回复内容:<%=showwback("bcontent")%>

<%showwback.movenext Loop set showwback=nothing end sub%> <%sub wbform() '回复表单 提交到第 10 个文件 wback.asp 中%>

回 复 人: 密码: 点此注册
/> 回复标题:">
回复内容:


<%end sub%> 查看帖子

  <%headtext()%>  
 <%maintalk()%><%wbtalk()%><%wbform()%>  
     
7.del.asp 源代码: <%sub del() name=request.querystring("hostname") code=request.Form("code")'要求密码确认。

id=request.querystring("id") if code="" and id<>"" then%>

<%set rsname=conn.execute("select * from bbs where id=" & id)%>
将要删除 <%=rsname("name")%> 的大作:  <%=rsname("title")%>

连同文章的回复都将被删除!

作者密码:
<%elseif id="" then%> 还没有选择帖子,返回首页选择一个帖子删除 <%else set rsname=conn.execute("select * from bbs where id=" & id) set rs=conn.execute("select * from author where name='" &rsname("name")& "' and code= '" &code& "'") if not rs.eof then conn.execute("Delete from bbs where id="&id&" ") conn.execute("delete from bbbs where hostid='"&id&"'")%>
删除成功!查看帖子
<%else%>

用户名或密码错误!返回" title="">返回" target="_blank">">返回继续操作.
返回首页 <%end if set rs=nothing set rsname=nothing end if end sub%> 删除

  <%headtext()%>  
  <%del()%>  
     
8.modify.asp 修改: <%sub modify() id=request.querystring("id") set show=conn.execute("select*from bbs where id="&id&"")%>

size="20"> size="20">

大名:<%=show("name")%> 密码:
标题: size="76">
内容:

<%set show=nothing end sub%> 修改
  <%headtext()%>  
  <%modify()%>  
     
9.modifysave.asp modify.asp 链接到的文件:

源代码: <%sub modifysave() id=Replace(Request.Form("id"),"'","''") name=Replace(Request.Form("name"),"'","''") code=Replace(Request.Form("code"),"'","''") title=Replace(Request.Form("title"),"'","''") body=Replace(Request.Form("body"),"'","''") set savebbs=conn.execute("select * from author where name='" &name& "' and code= '" &code& "'") if name="" or title="" or body="" or savebbs.eof then%>
修改帖子失败!

后退填写完整资料/填写正确用户名和密码,你才能发表 帖子!

点此注册 <%else conn.execute("update bbs set title='" &title& "' where id=" &id) conn.execute("update bbs set body='" &body& "' where id=" &id) conn.execute("update bbs set wtime='" &now()& "' where id=" &id)%>
修改成功!查看帖子" title="">查看帖子" target="_blank">">查看帖子 回到首页 <%end if set savebbs=nothing end sub%> 保存修改

  <%headtext()%>  
  <%modifysave()%>  
     
10、wback.asp 源代码: <% idh=Replace(Request.Form("id_h"),"'","''") nameb=Replace(Request.Form("name_b"),"'","''") titleb=Replace(Request.Form("title_b"),"'","''") bodyb=Replace(Request.Form("body_b"),"'","''") codeb=Replace(Request.Form("code_b"),"'","''") set rs=conn.execute("select * from author where name='" &nameb& "' and code='" &codeb& "'") sql="select * from author where name='" &nameb& "' and code='" &codeb& "'" if nameb="" or titleb="" or bodyb="" or idh="" or rs.eof then%>回复保存 有数据为空/错误的用户名或密码!查看帖子" title="">查看帖子" target="_blank">">查看帖子,点 此注册 <%else sql="update bbs set countwb=countwb+1 where id=" &idh conn.execute(sql) sql="insert into bbbs(hostid,btime,bname,bcontent,btitle) " & _ "values('"& idh & "','" & now() &"','"& nameb &"','"& bodyb &"','"& titleb &"')" conn.execute(sql)%> 发表成功!回到首页
查看帖子" title="">查看帖子" target="_blank">">查看帖子 <%response.Redirect("show.asp?id="&idh)'这里用了直接跳转。

可在这儿停下, 给出提示。

end if %> 11、main.css 美化页面:CSS 样式表文件: BODY {FONT-SIZE: 14px; MARGIN: 30px} TD {FONT-SIZE: 14px} A:link {COLOR: #000088; TEXT-DECORATION: none} A:visited {COLOR: #000088; TEXT-DECORATION: none} A:hover {COLOR: #ff0000; TEXT-DECORATION: underline} A:active {COLOR: #000000; TEXT-DECORATION: none} #tbul{ background:url(images/ball.gif) center left no-repeat;

width:24px; border-left:1px #83B4F2 solid; border-top:1px #83B4F2 solid; border-bottom:1px #83B4F2 solid; } #tbum{ width:728px; border-top:1px #83B4F2 solid; border-bottom:1px #83B4F2 solid; } #tbur{ width:19px; border-right:1px #83B4F2 solid; border-top:1px #83B4F2 solid; border-bottom:1px #83B4F2 solid; } #tbml{ border-left:1px #83B4F2 solid; } #tbmm{ } #tbmr{ width:19px; border-right:solid #83B4F2 1px; } #tbll{ border-bottom:1px #83B4F2 solid; border-left:1px #83B4F2 solid; width:19px; } #tblm{ border-bottom:1px #83B4F2 solid; } #tblr {background:url(images/coner.gif) bottom right no-repeat; border-top:1px #83B4F2 solid; border-left:1px #83B4F2 solid; width:19px; height:19px; } #authorn{ font-size:12px; padding-bottom:4px; }

#head{ color:#0033FF; line-height:24px; vertical-align:middle; padding-top:2px; padding-left:3px; } #arttitle{ color:#0000FF; font-size:14px; font-weight:bold; background:url(images/mainar.gif) top left no-repeat; padding-left:23px; padding-top:4px; padding-bottom:0px; } #content{ padding: 9px 5px 5px 5px; font-size:15px; } #content_table { border:dotted 1px #83B4F2; border-left:solid 2px #83B4F2; width:670px; } 12、header.htm 页面上部: <% function headtext()%>

<%end function%> 13、footer.htm 页面下部:


保留版权 2006-2007

14、图片(超链接到了我的相册中): ball.gif coner.gif mainar.gif上一篇>> [转]操作必须使用一个可更新的查... 类别:■-asp | 网友评论 下一篇>> Visual C++ MFC 中常用宏的含义| 添加到搜藏 | 分享到 i 贴吧 | 浏览(5342) | 评论 (13)回复 1ljfblog2007-05-28 18:20 15、补遗 register.asp: asp 论坛制作教程 BBS ASP 源码 (对增进版的再改进)补遗 http://hi.baidu.com/ljfblog/blog/item/0ddfed1f02ca510b314e1568.html 真对不住大家:)回复 2 匿名网友 2007-05-30 00:57 .modify.asp 修改: 少了一句回复 3ljfblog2007-05-30 07:10 对。

少了一句。

可是也加不上了。

文章长度受限。

回复 41232007-06-05 12:37 不错!回复 5looklook2007-06-08 20:00 do while not showwback.eof '没有像主页那样分页,原理相同。

-------------------------------------- 这样的话在 show。

asp 页面里分页,楼主的话会一直固定在 上面 可以考虑在发表主题时,分别插入到 bbs 和 bbbs 的 body 和 bcontent 字段内 在 show.asp 页面里直接打开 bbbs 表,只根据 bbbs 里的 bid 字段区分。

回复 6ljfblog2007-06-09 06:59 10 楼说的很对. show 的时候没有分页.不过主页上的分页我可是用了很大功夫的:) 数据库结 构也不是很有效率. 不过我这一阵子在忙风力发电的硕士论文开题. 如果 10 楼还能来看看, 很希望你能把你改进后的程序拿来研究研究.回复 7kojee2007-08-23 17:27 conn.asp 中的数据库的链接有问题;index.asp 中的 40 行中,if 语句有语法错误!回复 8ljfblog2007-08-24 09:02 参看-操作必须使用一个可更新的查询: http://hi.baidu.com/ljfblog/blog/item/581351345d67704f251f141f.html 这个程序我已经在 本机和网站上测试成功了.回复 9gggg2007-12-26 17:43 感谢

回复 10 迷茫 2008-05-07 09:12 我按照你说的做了,可是 index.asp 设计里什么都没啊,无法预览.....能说明下吗?谢谢了回复 11 匿名网友 2009-01-04 16:42 XIEXIE回复 12 匿名网友 2009-02-25 11:25 呵呵 功能还是有点简单 不过挂在一般的网站上足够了回复 13 吉他之缘 182011-08-11 14:36 好。

支持一下 http://blueskyxinyu.y5y5.info/

 
 

微信扫一扫 送福利