获得本站免费赞助空间请点这里
返回列表 发帖

5分钟编写一个ASP论坛

学ASP朋友的。。给大家分享个好东西- n( z. @0 ~3 W2 e' R: B
真NB..佩服ing .....8 I# e4 Z! k4 p5 C9 l& x5 F
大家在网上看到各种各样的ASP论坛是不是觉的做论坛很难呢,其实我们用简单的ASP语句就完全可以完成一个属于自己的论坛。下面我教大家如何用ASP来打造一个属于自己的论坛,自己的东西毕竟用起来爽吗。& F- q% [% a+ @- R6 j

' d/ ?3 m( t6 P+ ?; ]/ l同时,再复杂的论坛的写成也离不开下面的基本步骤,大家仔细看了。
" y- d2 Z2 C5 u( f
; Z- d# l1 t5 e3 d8 B) a一、建立文件!
# g! Y3 t! T! j8 T( i最简单的论坛也要有几个必要的文件,就是:
8 a, Y4 S8 J6 {8 n  S2 ~- v- g0 N' {; J# T5 c
1、数据库,用来储存发表的帖子!-------命名为:bbs.mdb 8 M7 P3 m1 A+ ]+ B$ i$ j

9 [( f" I; ]. K) \, E- h2、有数据库就必须连接数据库,该文件用来连接数据库:----命名为:conn.asp
+ G5 w. ?% o: t) ~7 y0 h8 ]3 w! o+ k6 x
3、发表帖子的文件----命名为:say.asp
- E& B5 O+ m% j; n/ y
# r0 N" d$ R3 L- |6 ~2 B4、保存发表帖子内容的文件-----命名为:save.asp
- l& x( g4 s  u7 X, o  P1 d$ U3 Q
  ]1 s: [" r9 Z5 W5、显示帖子标题的文件------命名为:index.asp 6 ^5 `4 C0 Q  g2 I1 ]- H! a

; Y" u( F. e  M' q) k& m5 g6、显示帖子内容的文件,即点击标题后所进入的页面-----命名为:show.asp * \5 V, b* {# ^: ^. q
) u6 a" B1 i& t0 Z3 P' k
建立文件是可以先建立文本文档,他的格式为"文件名.txt",我们只需把它改为"文件名.asp"
6 n3 [) Y5 }8 p- J1 a' w. B8 T& V7 l- H
二、各文件的主要内容 : X6 r8 _) m' Q6 F7 A$ o
7 O# W' X% j/ b
1、bbs.mdb ' J4 ]# ?9 P' ~
  K; d6 v  g9 J/ f
打开这个数据库,建立一个表,命名为bbs : Z, y0 Y4 N! L( N2 K; K
" {8 T% f. t  n8 y
该表中有几个字段:
. M; ~  A$ k' }& u6 C4 |* Z- c" b' N) F
id(自动给帖子编号),他的数据类型设为“自动编号”
+ H) Y- `+ N" u% I$ G2 V
3 c' s9 e3 u% X: P4 Rname(用来储存发表的作者),数据类型为“文本”
( M5 v! `' l2 F, Z, A- e7 B  M) a1 D
title(用来储存帖子的主题),数据类型为“文本” . J3 V' i- z: T3 Z# B

) h, s+ d4 C6 K% @  Q2 q& Tbody(用来储存帖子的内容),数据类型为“备注” 8 Y* ~" L: l' [6 n4 {
4 l/ O5 r( W  S
2、conn.asp
, [. m/ o' [) x4 I6 h0 Y6 Q源代码为: & m3 `- ^1 E, z) b+ h
<% / ^& U- Z+ Z* r
Server.scriptTimeout="10" 3 Y$ p* U1 ^  b4 y# z3 I
c+server.mappath("═bbs═.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};" * B& K, M4 Q4 N. C% I2 D
set conn=Server.CreateObject("ADODB.connection") 9 S7 B( y6 ?! d$ Y
conn.open connstr
3 ?: w! W6 n; Q" p8 u%> * x* U2 n  j; F2 o0 f

! M  h, F1 G- p  B; K这个文件就是这样,代码内容大家就自己研究,这个我也不知道怎么说才好! ! R" s, M/ ?3 V  R/ j
0 o: O) d! ?  R  L) C
3、say.asp
* ?$ ~& Q# y! c  L
+ G* o3 R! a; D  @" _" ]源代码为:
- v. y1 t+ P6 Q( ?5 D/ c) S<form method="POST" action="save.asp"> % P( V# i5 V6 i9 c
<p>大名:<input type="text" name="name" size="20"></p>
' _. h; ?( x5 h0 m; k* C7 [<p>标题:<input type="text" name="title" size="91"></p> + Z' M- I5 h# b, e8 d: E! c
<p>内容:</p>
4 j! P( W  Q% ^. I  W+ ~& E9 c<p><textarea rows="11" name="body" cols="97"></textarea></p> 5 s8 r  I- k; F( ~
<p> </p> ) W) Y2 H  ~! D& J' I" S  h( I5 l
<p><input type="submit" value="提交" name="B1"><input type="reset" value="重置" name="B2"></p>
: I+ Q3 _2 ^2 c" y</form>
& B! E6 n7 S0 A3 l: E) Q, j大家应该看得懂的,这个根本就是html语法,对的,根本就是,这个只是发表的界面
- Z4 @6 S7 j) U  s4 ]9 V# Z不过要注意这一句<form method="POST" action="save.asp">,他把用户所填的内容发送至save.asp这个文件,下面就看save.asp这个文件吧!
) P8 L& @( L$ L, G3 ?5 `. x% m
$ `! s' A4 r; U# f! `6 e" C4、save.asp
7 ^; }7 N& A% r' [6 P9 v0 B- ~$ P; r, O4 _0 J& D+ }/ y, P) k
源代码:
: a/ y: Z* Z3 L: y: S" z6 b4 W<!--#include file="conn.asp"--> 5 v& R0 O7 a# [& |6 g
<%name=Replace(Request.Form("name"),"'","''")
* ?" A  P! {" Ttitle=Replace(Request.Form("title"),"'","''") & w' z( I' I2 a4 V
body=Replace(Request.Form("body"),"'","''")
: _: [+ F# p9 }, H1 x%>
/ f- I# J' c% w/ X5 l4 W& q7 ?8 C<%if name="" or title="" or body="" then%>
$ U5 Q5 q0 q! }* j/ B请<a href="****:history.go(-1)">后退</a>填写完整资料,你才能发表帖子!
% g& p2 n. u, A9 \<%else%>
- b" n  M- {+ P, _5 J<%set savebbs=conn.execute("insert into bbs(name,title,body)values('"&name&"','"&title&"','"&body&"')")%> 1 |5 o# {8 q1 b, ~
发表成功!<a href="index.asp">查看帖子</a>
% c& n: ^% |/ M, o6 l<%end if 9 d; O$ X- A3 D& I, h/ X
set savebbs=nothing ! v8 t0 q& B) A
%> , `* E. W& _* U! }1 v

; [! L7 y, A6 [) w4 k2 F  w; ]: T第一句:<!--#include file="conn.asp"-->,意思是插入conn.asp文件,即与数据库进行连接!
! h6 s- x$ @* g$ J6 Z; ?# Xasp语句必须用<% %>这个格式包含起来,而插入文件的语句就不用, 3 R5 \/ r1 _0 P! ]% X/ C, V9 M
接下来几句:
0 Y) L, k3 d1 P3 f  P  h& j/ J% Cname=Replace(Request.Form("name"),"'","''")   c+ f! l6 B, j
title=Replace(Request.Form("title"),"'","''")
; L' I7 v& B1 W2 r; M' abody=Replace(Request.Form("body"),"'","''") ) }. W" ]% e$ ~" x  U

  I6 j  S1 L3 f“Replace(Request.Form("name"),"'","''")”意思是接收表单中名为name的文本框发来的数据, ) v1 C. d! j" e
而“name=Replace(Request.Form("name"),"'","''")”则是把发来的数据储存在name变量中, - ~5 h* c# [. H. v
如果你这样:“abc123=Replace(Request.Form("name"),"'","''")”
# h& @  G. j( K3 O就是把表单中名为name的文本框发来的数据储存在abc123变量中
9 P9 [' k% }. z9 Q- c; Z) x& [! z8 w/ X% V7 ~( E
接着:if name="" or title="" or body="" then
, w* E6 w8 T6 V1 ^* m判断name、title和body变量中是否没有填写内容,即为"",如果这样,就执行这一语句:
- g4 J8 d2 f  }6 l( L, C“请<a href="****:history.go(-1)">后退</a>填写完整资料,你才能发表帖子!”
  r4 o4 Q# F: H, M2 T该语句属于html语法,大家都看得懂的!
' A" f7 H. Y2 I3 Y  ~. l4 L0 q; B9 q5 H! }; C
"<%else%>"就是说“当if……then不成立(即是说所有内容都已经填写)”,就执行语句:
6 \* `; e0 n% u/ k* X; \0 Y- |“<%set savebbs=conn.execute("insert into bbs(name,title,body) values('"&name&"','"&title&"','"&body&"')")%> # [9 D/ ]+ t7 A' [+ ^! z- C. l. ^
发表成功!<a href="index.asp">查看帖子</a>” , s* E! g6 s5 v: X6 }& C* q
3 u- K7 m& }% A1 [; w
"set save=conn.execute"属于固定的语句,不过savebbs可以自己修改,"="后面的就难解释了: ) B$ U, M7 w) D+ s- y4 [
insert into bbs(name,title,body)意思是向名为bbs的表(在建立数据库时已经建立的表)
4 T. }; j0 r. z5 X. B4 g中的name,title,body字段插入,插入什么呢?看接下的values('"&name&"','"&title&"','"&body&"')")
$ E5 j( T, n9 B3 `7 {values是“值”的意思 & }' G1 S: ~. o6 c/ W- D
就是插入向量name,title,body,向量用格式'"&name&"'表示 0 r; N. ^+ Q7 l
& N( S* H  `5 M& [) J/ H! s+ Q. C' b
最后:end if就是结束if……then 4 _" s) Y7 H' u0 y, Z' [" f
set savebbs=nothing可以说是关闭掉:
9 w0 R% r; F/ V+ I! S2 g* wset savebbs=conn.execute("insert into bbs(name,title,body) values('"&name&"','"&title&"','"&body&"')")   w2 J* m3 ?3 V
6 K5 s5 J" D8 y* S
% W  |. z' _- K5 K& S; P% j
5、index.asp & u( F/ u" z+ a6 i, i' [
源代码:
& z! r" m& x/ L<!--#include file="conn.asp"-->
* }5 `# \, M# ]9 j% W! e<b><a href="say.asp">发表帖子</a></b><br><br> 3 \5 j/ \/ N3 `2 p
<div align="center"> ; P: r. h# r, |+ ?9 t6 Z7 ]
<center> % g/ |- _, c' a& S% U
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse; " bordercolor="#000000" width="100%" height="26">
9 j/ _% u/ K2 h8 U8 Z<tr>
. v  ?! v* U. l' L' h% \<td width="17%"><b>作者</b></td>
/ D$ B1 Q2 o2 r1 W$ @5 J$ Q: W% ^<td width="83%"><b>主题</b></td> ) c; _+ d& i+ m2 q0 d0 L* w
</tr>
# C4 {1 H; w9 c0 B9 z</table>
2 ]2 L) s. p  x' u/ F</center> # a, i+ e8 @) x5 j  v$ w
</div><hr size="1">
7 L' ]4 c& F9 z0 l5 s+ R+ w6 K<%i=1
  d$ y; e* J1 ~% Q: t' J# Y' |set showbbs=conn.execute("select*from bbs order by id desc")
+ K  E2 e$ e9 X6 odo while not showbbs.eof
7 L+ \1 e. E+ o/ ]2 l+ X% D%> ' \9 ^8 ?& ^0 k' O; y8 b* i. i
<div align="center">
, A9 A4 S' i6 u, q$ t<center> " p: ^; t3 }- D2 ^4 U" }
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse; " bordercolor="#000000" width="100%" height="20"> % [1 _. f9 m/ s1 r0 E
<tr>
; F& R$ m& ?2 `: x- k* S<td width="17%"><%=showbbs("name")%> </td>
6 T" K4 U/ p, t  R4 ~+ O# ?- y8 L+ v3 J<td width="83%"> 5 L# w$ h) C" u, |& K% S1 U. X
<a href="show.asp?id=<%=showbbs("id")%>"><%=showbbs("title")%></a></td>
3 i- k& y5 u9 o( |</tr> ( U* K) ?* ]% t( N
</table> 5 p: n3 B8 c/ M! U7 D
</center>
. g# s8 Z) v7 K6 q: u( P</div><hr size="1"> ( X4 ~/ V* C" B
<%i=i+1 " h% A/ P' u8 v
if i>50 then exit do ) l9 U! G* V' p" M$ W
showbbs.movenext
( d1 I0 A- F4 U' i' D1 |$ r# v1 }Loop " N6 F: p* R: v* I% O0 N: L" l7 H
showbbs.Close 9 F8 u9 y9 ~( V- v6 e; ?$ W9 o
set showbbs=nothing
  c& {3 X0 e) s' |. R%>
( |$ g3 w3 c2 f& N% v
5 [8 I& Q) ~. g3 P& g) F这个文件就不一句一句的讲了
0 ~6 ?1 u9 C4 Z. r' o( |主要讲精华部分:
( ^3 U- }" Z9 j4 T/ xset showbbs=conn.execute("select*from bbs order by id desc") 5 o& I9 l- V! }& i$ B# C
意思是:向数据库中的bbs数据表查询数据,并以id排顺序,
. e4 z: c& f1 t! G/ h还有这么一句:<%=showbbs("name")%>
# d4 c7 K" r, ]$ @: l' q( K; i就是显示数据表中的name字段的数据,这里的showbbs就是set showbbs=……中的showbbs
% ]4 v  }5 s$ ^* P1 f代码中的i=1和i=i+1 : G' K- @' ]. h' w( c$ h+ |: q
if i>50 then exit do 8 b2 {( E) q4 w2 u# Y
showbbs.movenext ; o, v& U0 X' {, R) z. O
Loop 1 V" B7 t* M# m- ~8 x4 a
showbbs.Close
0 p+ c0 M0 V1 ^2 I! qset showbbs=nothing + K5 F' ?0 ^; L2 L2 z6 T' h

. [% s+ Y( C3 }' E" _# H' e% k4 t这几句属于循环语句,这里就不理他,理解了也不太好用,因为他只显示50张贴子!
5 @) u. b% W0 Eif i>50 then exit do中的50可以修改 % R; s; v; |: \3 q' ^, R5 d7 h/ m/ |
但我们做论坛必须把帖子分页,又因为分页这个语句太复杂,我想就不讲了,等这一个弄懂了才来弄 $ M, P) ^4 a$ R3 @) f" Y# s
还有一句很有用的: 8 G* M. Y7 T4 f/ F& l( R
<a href="show.asp?id=<%=showbbs("id")%>"><%=showbbs("title")%></a> 9 c9 [( ?1 Y- X2 r- J; `" g2 p2 \2 K
里面的超连接:show.asp?id=<%=showbbs("id")%>,注意:这里的超连接把帖子的id包含了, 7 e1 N7 l  |( I8 Q
等一下在show.asp文件中就有用了
/ I: z. s% I" n7 f' F; ], F
1 H; C4 |+ n& z/ C/ `" q+ _7 M5、show.asp ; i  d9 o* M+ O. T% [
源代码: ; O: l: U" g/ x0 N# o8 ]

( G8 j6 I# N- o6 m1 u) v3 p<!--#include file="conn.asp"-->
7 l' W) r; B( `! {5 Z+ [! N4 h<%id=request.querystring("id")%>
8 O0 _2 _5 U( c# r) `" i4 @, _2 f6 V<%set show=conn.execute("select*from bbs where id="&id&"")%>
; t# m# C  X/ W* d! o<a href="index.asp"> % R( X* K) }- A: `" \+ }9 z
<b>回到首页</b></a><br><b><a href="say.asp">发表帖子</a></b><br><hr size="1">   w: I! t5 C" T% k& p
<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" height="180">
! N1 |9 `& `3 g<tr>
; v& t0 N1 |- B<td width="21%" height="22"><b>作者:</b><%=show("name")%></td>
6 y! `# M' |2 Z& C, r: B/ j" k  V<td width="79%" height="22"><b>主题:</b><%=show("title")%></td> 7 l' I/ @' }& {7 h0 P0 x  C
</tr>
. g: H) H/ V& u$ h  E* m' Z<tr> 1 I( g- e- }9 G# z. |3 I- B0 G- d
<td width="100%" colspan="2" height="158" valign="top"><b><br>内容:</b><%=show("body")%></td>
4 Y0 y" V! F* U! I</tr>
2 h# x. ?! W4 E; m8 z</table><%set show=nothing%> 2 m" {- g- ~3 I1 g7 y9 N, b  f

/ y5 q" Y$ v( u6 O' Z. G0 n/ a' w. u劲语句---精华语句:
  V: F( f6 ?, H. D7 aid=request.querystring("id") ( b; n0 n! V  q) |9 {7 h
在讲解index.asp文件的后面已经说到:show.asp?id=<%=showbbs("id")这一句, 4 t9 f& Y/ Q" j
id=request.querystring("id")就是把地址栏中的id的值读取下来,
1 j1 ^  {- H' s- @' w* O因为index.asp文件中的超连接点击后,地址栏就为http://…………/show.asp?id=数字, " R: d7 X: |# F0 U/ U1 P+ S* `
所以show.asp使用id=request.querystring("id")语句把数字读取下来
' H% @7 N6 P" r: o于是接着使用:set show=conn.execute("select*from bbs where id="&id&"")
" F6 g( W. D: u+ u9 }- ~向数据表查询id为这时读取下来的数字的帖子,即where id="&id&"
- r' j9 `1 p. S最后<%set show=nothing%> 4 W" A7 Z& F/ H
& y  h( q7 l9 p1 K6 B1 T$ n( C
好了,一个简单的论坛就这样完成了,挂在我们自己的ASP空间上去试试

好厉害啊

TOP

返回列表
【捌玖网络】已经运行: