应用ASP技术编写一个简单论坛(下)

.4 discuss_main.asp
<HTML>
<HEAD><TITLE> 讨论组发送区</TITLE>
<script language=javascript>    ‘ 表单输入检查脚本
 function checksubmit(form)
 { 
    if (form.subject.value=="")
    {
      alert(" 请输入您的标题");
      form.subject.focus();
     return false;
     }
    if (form.name.value=="")
    {
      alert(" 请输入您的姓名");
      form.name.focus();
      return false;
     }
     if (form.comments.value=="")
     {
         alert (" 请输入讨论内容");
         form.comments.focus();
         return false;
     }
     return true;
 }
</script>
</HEAD>
<BODY>
<FORM METHOD=POST ACTION="disc_post.asp" name=form1
οnsubmit="return checksubmit(form1)">  
发送表单信息到disc_post.asp中处理
<FONT color=#8000ff><STRONG> 请逐项填写下表,用TAB键跳到下一项。</STRONG> </FONT><p>
<STRONG> 您的标题:</STRONG><br><input type=text name="subject" tabindex=1 maxlength=100 size=20><br>
<STRONG> 您的姓名:</STRONG><br><input type=text name="name" tabindex=1 maxlength=50 size=20><br>
<STRONG> 您的信箱:</STRONG><br><input type=text name="email" tabindex=1 maxlength=50 size=20><br>
<STRONG> 选择:</STRONG><br>
<select name="selectno" tabindex=2>     ‘ 论坛主题作为下拉列表框的项
<%
   set rs=server.createobject("ADODB.recordset")
   rs.open "select * from forum_content","DSN=forum;UID=user;PWD=",3,1
   if not rs.eof then%>
     <option value="<%=rs("contentname")%>" selected><%=rs("contentname")%>
<%   rs.movenext
     for i=2 to rs.recordcount%>
     <option value="<%=rs("contentname")%>"><%=rs("contentname")%>
<%   rs.movenext
     next
   else%>
     <option value="nocontent"> 没有内容
<% end if
  rs.close
   set rs=nothing
%>
</select>
<br>
<STRONG> 讨论内容:</STRONG><br><textarea rows=5 cols=45 name="comments" tabindex=3></textarea><p>
<center><input type=submit value=" 发送内容">&nbsp;&nbsp;<input type=reset value="重填内容"></center>
</form>
</BODY>
</HTML>
 
5.5 discuss_left.asp
<html>
<head>
<title> 讨论区目录页</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body bgcolor="#FFFFFF">
<center><a name="#toc"></a>
<font color="#333333" size="2"> 讨论区内容目录</font></center><br>
见程序段1
   'display toc
见程序段2
<%   if err<>0 then
     response.write "<center> 对不起,讨论区失败!</center>"
   end if
%>
</body>
</html>
 
5.6 disc_post.asp
<HTML>
<HEAD><TITLE> 讨论组发送区</TITLE>
</HEAD>
<BODY>
见程序段4
<!--#INCLUDE VIRTUAL="forum/disc_showre.inc"-->
                                    ‘ 消息处理结果显示包含文件
</BODY>
</HTML>
 
5.7 contentdisplay.asp
<HTML>
<HEAD><TITLE> 讨论组内容显示区</TITLE>
</HEAD>
<BODY>
<%
    'display discuss content
     contentdis=trim(request.querystring("contentdis"))
     discussarea=trim(request.querystring("discussarea"))
                        ‘ 获取从左框架消息列表中发送过来的查询字符串
    if contentdis="" or discussarea="" then ‘ 查询字符串为空表示出错
      response.write " 对不起,本讨论内容信息含错,不能浏览."
      response.end
   else                 ‘ 查询字符串不为空则进行处理
     on error resume next
     set rs=server.createobject("ADODB.recordset")
     rs.open "select * from "&discussarea,"DSN=forum;UID=user;PWD=",3,1
     findid=false
     if not rs.eof then             ‘ 主题消息表不为空继续
       countrs=1
    do until findid or (countrs>rs.recordcount) ‘ 查找要显示的消息记录
          if cstr(rs("index"))=contentdis then
            findid=true
          else
            countrs=countrs+1
            rs.movenext
          end if
       loop
      end if
     if findid then                 ‘ 找到该记录,则进行显示
       mydate=formatdatetime(trim(rs("submitdate")),1)     mytime=formatdatetime(trim(rs("submitdate")),3)
%>
     <h2><strong> 讨论区</strong></h2><hr><center>
     <form method=post action="disc_reply.asp"> ‘ 发送隐藏表单信息给disc_reply.asp
     <input type=submit name=submit value=" 答复">
     <input type=hidden name="subject1" value=<%=rs("subject")%>>
     <input type=hidden name="discussarea" value=<%=discussarea%>>
     <input type=hidden name="theindex" value=<%=rs("index")%>>
     </form>
     </center><p><h4><strong><%=rs("subject")%></strong></h4>
     <table>                        ‘ 显示找到的消息信息
     <tr align=right><td><font color="#000000"> 探讨主题:</font></td>
     <td><font color="#ee3333"><%=discussarea%></font></td></tr>
     <tr align=right><td><font color="#000000"> 提交作者:</font></td>
     <td><font color="#ee3333"><%=rs("name")%></font></td></tr>
     <tr align=right><td><font color="#000000"> 提交人邮箱:</font></td>
     <td><font color="#0000ff"><a href="mailto:<%=rs("email")%>">
     <%=rs("email")%></font></td></tr>
     <tr align=right><td><font color="#000000"> 提交日期:</font></td>
     <td><font color="#ee3333"><%=mydate%></font></td></tr>
     <tr align=right><td><font color="#000000"> 提交时间:</font></td>
     <td><font color="#ee3333"><%=mytime%></font></td></tr>
     </table>
     <font color="#000000"> 提交内容:</font><br>
     <font color="#ee3333"> <%=rs("content")%></font>
<%  
   else                 ‘ 没有找到该消息记录
     response.write " 对不起,该提交内容已被删除."
     rs.close
     set rs=nothing
     response.end
   end if
 end if
%>
</BODY>
</HTML>
 
5.8 disc_reply.asp
<HTML>
<HEAD><TITLE> 答复</TITLE>
<script language=javascript>        ‘ 表单输入检查脚本
 function checksubmit(form)
 { 
    if (form.subject.value=="")
    {
      alert(" 请输入答复标题");
      form.subject.focus();
      return false;
     }
    if (form.name.value=="")
    {
      alert(" 请输入您的姓名");
      form.name.focus();
      return false;
   }
    if (form.comments.value=="")
   {
      alert (" 请输入答复内容");
      form.comments.focus();
      return false;
   }
   return true;
 }
</script>    
</HEAD>
<BODY>
<%  
     dim findid
     subject1=request.form("subject1")     
获取从contentdisplay.asp传来的表单信息
     discussarea=request.form("discussarea")
     theindex=request.form("theindex")
     set rs=server.createobject("ADODB.recordset")
     rs.open "select * from "&discussarea,"DSN=forum;UID=user;PWD=",3,1
     if not rs.eof then             ‘ 该主题消息表不为空继续
       findid=false
       do until ((findid=true) or rs.eof)      
按索引查找要答复的消息记录
         comp=strcomp(trim(rs("index")),trim(theindex),1)
         if comp=0 then
           findid=true
         else
           if not rs.eof then
             rs.movenext
           end if
         end if
       loop
       if findid=true then         
找到记录,则存储该记录的level和index信息
         getlevel=rs("level")
         getindex=rs("index")
       else                 ‘ 没有找到记录,则结束页面请求
         response.write " 没有相关信息!"
         rs.close
         set rs=nothing
         response.end
       end if
     else                   ‘ 该主题消息表为空,结束页面请求
       response.write " 没有相关信息."
       rs.close
       set rs=nothing
       response.end
     end if
     rs.close
     set rs=nothing
%>
<FORM METHOD=POST ACTION="disc_response.asp" name=form1 οnsubmit="
return checksubmit(form1)">         ‘ 发送表单信息给disc_response.asp
<FONT color=#8000ff>
<STRONG> 请逐项填写下表,用TAB键跳到下一项。</STRONG></FONT><p>
<STRONG>答复标题:</STRONG><br>
<input type=text name="subject" value="RE:"&subject1 tabindex=1 maxlength=100 size=20><br>
<STRONG> 您的姓名:</STRONG><br>
<input type=text name="name" tabindex=1 maxlength=50 size=20><br>
<STRONG> 您的信箱:</STRONG><br>
<input type=text name="email" tabindex=1 maxlength=50 size=20><br>
<input type=hidden name="levelreply" value=<%=getlevel%>>
<input type=hidden name="indexreply" value=<%=getindex%>>
<input type=hidden name="discussarea" value=<%=discussarea%>>
<br>
<STRONG> 讨论内容:</STRONG><br>
<textarea rows=5 cols=45 name="comments" tabindex=3></textarea><p>
<center><input type=submit value=" 发送内容">&nbsp;&nbsp;
<input type=reset value=" 重填内容"></center>
</form>
</BODY>
</HTML>
 
5.9 disc_response.asp
<HTML>
<HEAD><TITLE> 讨论组答复发送区</TITLE>
</HEAD>
<BODY>
见程序段7
<!--#INCLUDE VIRTUAL="forum/disc_showre.inc"-->
                                    ‘ 消息处理结果显示包含文件
</BODY>
</HTML>
 
5.10 disc_showre.inc
<%call showresult
sub showresult()
%>
<html><head><title> 内容提交成功</title></head>
<body>
<center><strong> 您的讨论内容已经提交成功</strong></center><hr>
<p><font color="#1111ff" size="2"> 注意:您必须刷新内容才能看到提交的内容!</font><p>
<p><font color="#000000"> 请您点击<a href="discuss.asp" target="_parent">[返回讨论组]</a>,可以看到您的内容已经加入.</font>
</body>
</html>
        <%end sub%>
 
5.11 message_show.inc
        见程序段3
 
5.12 opendb33.inc
见程序段5
 
5.13 closedb33.inc
见程序段6
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
论坛演示地址: http://netfocus.b13.cnwg.cn 论坛功能设计  论坛前台: 1. 用户注册、登陆、注销; 2. 版块导航:显示所有的版块分组和版块; 3. 帖子列表:显示当前版块下所有的帖子,可以区分置顶帖子、精华帖子、推荐帖子; 4. 帖子内容:显示帖子内容; 5. 帖子回复:显示帖子的回复列表; 6. 添加帖子:用户添加新帖; 7. 添加回复:用户添加回复; 8. 精华帖子列表:显示所有的精华帖子; 9. 推荐帖子列表:显示所有的推荐帖子; 10. 帖子管理:具有帖子管理权限的人对帖子进行管理; 11. 回复管理:具有帖子回复管理权限的人对帖子回复进行管理;  论坛后台: 1. 版块组管理:添加、删除、修改; 2. 版块管理:添加、删除、修改,添加或修改时通过下拉框选择版块组; 3. 版主管理:可以管理论坛中每个版块的版主,如添加、删除版主; 4. 用户管理:查看用户资料、删除用户、封锁用户、解锁用户、重置密码; 5. 角色管理:添加、删除、修改; 默认定义如下角色: 系统管理员、用户管理员、角色管理员、版块管理员、版主管理员、版主、所有者、注册用户、所有人;其中所有者指发帖人,回复人;另外系统管理员、注册用户、所有者、所有人是内置角色,不能修改或删除;下面分别对每种角色的含义进行说明: 1) 系统管理员:拥有论坛所有权限; 2) 用户管理员:拥有用户管理权限; 3) 角色管理员:拥有角色管理权限; 4) 版块管理员:拥有版块管理权限; 5) 版主管理员:拥有版主管理权限; 6) 版主:拥有所有论坛事务管理权限; 7) 所有者:拥有对自己发表的帖子或回复的内容进行修改的权限;(此角色可以考虑禁用,出于数据真实性考虑,因为任何人都要对他或她所说的言行负责,不允许随便修改); 8) 注册用户:拥有一部分论坛事务,如看帖,发帖,回帖,管理和自己相关的一些帖子; 9) 所有人:这个角色只是一个映射角色,任何登陆网站的人都自动拥有此角色;此角色可以表示匿名用户;仅拥有此角色的人一般只能看帖,不能做其他任何事情。当然如果愿意,我们也可以给它分配更多的权限,如发帖,回帖。如果这样,那就意味着运行匿名用户发帖或回帖了。 6. 用户角色管理:对任意一个用户的所属角色进行管理(包括添加和删除用户所属角色); 7. 角色权限管理:分为两类进行管理; 系统管理权限:用户管理、角色管理、版块管理、版主管理; 论坛事务管理权限:浏览帖子、发表帖子、编辑帖子、置顶帖子、设为推荐帖子、设为精华帖子、删除帖子、修改回复、删除回复; 因为权限分为两种,所以角色权限管理也可以采用两个界面实现。这两个界面的行就是所有角色,列就是当前权限类型下的所有权限点。 8. 头像设置:设置用户的头像; 9. 密码修改; 10. 我的帖子管理:有我发布的帖子,我回复的帖子; 另外,一个论坛可能还常常有星级评定,积分设置,界面管理,等等其他辅助功能。这些东西可以在日后慢慢补充。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值