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

5分钟编写一个ASP论坛

学ASP朋友的。。给大家分享个好东西! F' e! U, H5 g
真NB..佩服ing ....., Y. K) t; N, U% Z- U2 w
大家在网上看到各种各样的ASP论坛是不是觉的做论坛很难呢,其实我们用简单的ASP语句就完全可以完成一个属于自己的论坛。下面我教大家如何用ASP来打造一个属于自己的论坛,自己的东西毕竟用起来爽吗。; R1 c  C* y5 ^$ L  M- o
' K, ~0 E, w( p* _' D* K( w7 ^0 ]
同时,再复杂的论坛的写成也离不开下面的基本步骤,大家仔细看了。 ! |/ i: O% ]0 S, I' W
+ T# v, ~9 W4 ~$ ?+ v3 `! W) u
一、建立文件!
9 i/ T: C! u  u# W, `0 C! X9 j最简单的论坛也要有几个必要的文件,就是:
) I9 j/ K" T3 T8 h# M$ q" z) L# t5 ]! m% H% z! W0 C
1、数据库,用来储存发表的帖子!-------命名为:bbs.mdb ) B+ J3 R; h9 Y, M3 h# Q  U
7 v6 X* P" F9 h- t1 [9 r3 C/ y2 ?
2、有数据库就必须连接数据库,该文件用来连接数据库:----命名为:conn.asp
8 I( |4 N. y5 M. N
, \& w2 d5 z8 [7 S4 A6 B3、发表帖子的文件----命名为:say.asp 6 V' `( t' J/ A, A

4 t( i3 ^4 {& z8 C4、保存发表帖子内容的文件-----命名为:save.asp
+ t' Y) y+ g& k6 M5 R2 C6 x- {  U* b5 X# H4 n8 Z; }
5、显示帖子标题的文件------命名为:index.asp
% r: k) P+ W" I0 A  u; H/ P6 k7 [% t: B6 X
6、显示帖子内容的文件,即点击标题后所进入的页面-----命名为:show.asp 2 C$ G& a. F8 R6 _# f9 h6 [

* l0 Z. j0 J# _8 w8 C5 Y+ f! j3 h建立文件是可以先建立文本文档,他的格式为"文件名.txt",我们只需把它改为"文件名.asp"
# x& n2 f1 x. j; W" Z, b
& e0 @1 q* o7 C3 t& V( p二、各文件的主要内容 / Q  w# v( j; m; B) J+ D: f% s

( C) x, ]9 e% |1、bbs.mdb 1 \; i# E6 ^/ m: _4 n+ t
# [/ H4 U% i0 d9 h$ a6 V. _
打开这个数据库,建立一个表,命名为bbs 2 ~7 _7 M( N# y2 q2 v, \$ N2 I
# p/ j& h0 W& K$ {/ o: d. i4 H+ j
该表中有几个字段: ; i# ^5 E# ?* J

( G. t8 V" I  `4 L2 Eid(自动给帖子编号),他的数据类型设为“自动编号”
8 {  r# w) A# ?' a  u0 ^% x, A2 T% n% a) `2 j9 f
name(用来储存发表的作者),数据类型为“文本” 4 V$ e/ d( @6 m$ r
2 u4 y0 G8 r2 e
title(用来储存帖子的主题),数据类型为“文本” 8 e, w: S" r2 W/ g- j, r* L

1 v& _2 x7 a5 i) @  }body(用来储存帖子的内容),数据类型为“备注”
9 g) R: W, g) b
6 W9 U( Z  F+ p" c2、conn.asp
0 X5 N3 N" x% ]5 m5 w8 n' w源代码为: ( D. A" c# q# D. _; d' n4 f! b
<%
6 Y0 Q( n- b/ `# M! K7 MServer.scriptTimeout="10"
" J  J4 S/ U: D- P9 Pc+server.mappath("═bbs═.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
" x5 W; ~3 j9 u5 D5 Nset conn=Server.CreateObject("ADODB.connection") 7 T( `1 Q/ {( n! a, l5 k9 R0 P) f- ^
conn.open connstr . `: u) J; l+ Z- ^
%>
( c) v% D6 x# g& o9 d2 o) A0 K. ]* b6 C2 X' I
这个文件就是这样,代码内容大家就自己研究,这个我也不知道怎么说才好!
1 _0 x, A, f6 P% h
# N. x! A, u% z2 m/ l3、say.asp : A3 k( S: c, I2 N

& e) i+ E. S3 `7 U源代码为:
0 d% B# l1 b$ Z" s6 w6 _& `<form method="POST" action="save.asp"> 6 J$ }  o3 f9 ~  Q
<p>大名:<input type="text" name="name" size="20"></p> & S1 O" G$ Q0 A5 Q9 ]
<p>标题:<input type="text" name="title" size="91"></p> ! q2 N/ ]7 O7 ~& [; W- r* R
<p>内容:</p> - X+ @, K3 x! o. f' f
<p><textarea rows="11" name="body" cols="97"></textarea></p>
* n, C: G  z& \! z8 F% e8 H! y& m<p> </p>
( f7 J  P0 {1 ^: G) F/ l<p><input type="submit" value="提交" name="B1"><input type="reset" value="重置" name="B2"></p>
, G5 l3 M4 R1 A/ {</form> ) l% D( ?+ K* i
大家应该看得懂的,这个根本就是html语法,对的,根本就是,这个只是发表的界面
$ R# _7 E+ W  e不过要注意这一句<form method="POST" action="save.asp">,他把用户所填的内容发送至save.asp这个文件,下面就看save.asp这个文件吧! 6 J- x0 m+ W3 w6 ~: B* m

; L0 i4 u" R3 ?( @; z4、save.asp
  F0 U4 a) `4 \" n# Z& C6 o2 z
, o( @5 G' ~% @; n/ P2 v源代码: , s0 ?, w: n5 a6 i+ P- m+ q
<!--#include file="conn.asp"--> 2 |3 K( E  B; k1 H" c( R' R, U+ P
<%name=Replace(Request.Form("name"),"'","''")
1 J: I! B, c! v0 N* }+ {title=Replace(Request.Form("title"),"'","''")
6 P# ?( n" ?8 o3 b9 z2 ?6 V, M! pbody=Replace(Request.Form("body"),"'","''")
' A/ i0 G8 b8 b& ]* `%>
5 h; W7 l. Y& E<%if name="" or title="" or body="" then%> 8 |5 a) Y* J, g# u" p4 m: R8 w" {
请<a href="****:history.go(-1)">后退</a>填写完整资料,你才能发表帖子!
  Z7 R1 f- H1 X" M- D' M; Z<%else%> , t1 e  y/ P4 ?3 K! _- n
<%set savebbs=conn.execute("insert into bbs(name,title,body)values('"&name&"','"&title&"','"&body&"')")%> " l; }9 N& }9 q+ E! B4 X! g2 A5 _- b
发表成功!<a href="index.asp">查看帖子</a>
8 t5 \  ^# G! L0 V6 y. g<%end if
" ?* @: m+ R- r6 t, Hset savebbs=nothing
0 q4 J: J' _+ c1 T. R% T%> 7 O( ~: I4 n8 b, t( V5 o
+ q2 S6 @0 n, V) }$ O! E
第一句:<!--#include file="conn.asp"-->,意思是插入conn.asp文件,即与数据库进行连接! ) J# |2 [  D7 c! \3 |- u4 y
asp语句必须用<% %>这个格式包含起来,而插入文件的语句就不用, , T% t0 X4 z  L# T' q5 i( Q1 ^
接下来几句: 8 U! \3 O* r0 @) w1 H
name=Replace(Request.Form("name"),"'","''") * `6 Q% A, c4 y8 @
title=Replace(Request.Form("title"),"'","''")
. y3 `/ \; J" t4 dbody=Replace(Request.Form("body"),"'","''") 1 q7 Z9 R: g* }6 p0 v+ q; z  @6 k
  t( l6 O! W6 q
“Replace(Request.Form("name"),"'","''")”意思是接收表单中名为name的文本框发来的数据, 1 C9 _% x8 P; `& K8 x
而“name=Replace(Request.Form("name"),"'","''")”则是把发来的数据储存在name变量中, 4 C% _- W% L7 E" u
如果你这样:“abc123=Replace(Request.Form("name"),"'","''")” , q/ ^! _* T% s' {; f$ E
就是把表单中名为name的文本框发来的数据储存在abc123变量中 8 n1 v" B0 D+ N3 n* r" J0 |( l  Q/ j
0 Z. P# F7 Q4 E0 L6 ?8 X
接着:if name="" or title="" or body="" then : F; ]- {" b) k6 s
判断name、title和body变量中是否没有填写内容,即为"",如果这样,就执行这一语句:
& A# _: x+ _& ~2 ^' I" O+ Y2 x“请<a href="****:history.go(-1)">后退</a>填写完整资料,你才能发表帖子!” 6 U( s! a; L$ E' q$ o
该语句属于html语法,大家都看得懂的! 0 ^! ~( L4 @# O% U

, U# N  G  L. P"<%else%>"就是说“当if……then不成立(即是说所有内容都已经填写)”,就执行语句: + i8 ~0 |' X! T! B
“<%set savebbs=conn.execute("insert into bbs(name,title,body) values('"&name&"','"&title&"','"&body&"')")%> 3 T* h+ @; r. p
发表成功!<a href="index.asp">查看帖子</a>”
" {9 y  H) z* h4 n. g* V
7 \" l3 u& S3 q"set save=conn.execute"属于固定的语句,不过savebbs可以自己修改,"="后面的就难解释了: ! S5 g1 X- V2 _- N$ z% W' ~
insert into bbs(name,title,body)意思是向名为bbs的表(在建立数据库时已经建立的表) 1 v  ~: k# u% b# I# v/ D
中的name,title,body字段插入,插入什么呢?看接下的values('"&name&"','"&title&"','"&body&"')")
  M" n1 P8 H9 f  w% U% gvalues是“值”的意思 ! Q' Y5 [- l* [+ v
就是插入向量name,title,body,向量用格式'"&name&"'表示 2 s- r+ _3 E% I  F

" x  W" N% I$ u5 i  T4 b最后:end if就是结束if……then
! z/ I, o/ i( dset savebbs=nothing可以说是关闭掉: + d% D6 M, V" h) h4 \
set savebbs=conn.execute("insert into bbs(name,title,body) values('"&name&"','"&title&"','"&body&"')")
! \( n, @' E9 \" d2 Y! Q0 }" l# @% Y; V4 Y+ q* G
: J8 o: ^  P' C
5、index.asp * L9 L# @8 A) h5 ^+ E, o
源代码:
! k. c7 x. p" c  _+ ?- H<!--#include file="conn.asp"-->   z9 P1 K# P3 z" e0 }
<b><a href="say.asp">发表帖子</a></b><br><br> 1 G% w+ h% z4 d4 S- L
<div align="center"> $ L) S" I+ l" I: d3 N1 U% f
<center> # o! q3 i# V) z+ u) o
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse; " bordercolor="#000000" width="100%" height="26"> $ V$ T5 C& ]/ ~
<tr> ; U1 R$ k$ f: w# ]; J+ W0 N
<td width="17%"><b>作者</b></td>
5 J: l* c0 T7 |0 t<td width="83%"><b>主题</b></td>
+ V5 J9 b/ m* E4 v; a</tr> : {- h2 j- R' U
</table> ; H6 y" S7 r' h- g- D
</center>
8 C0 z$ Q! b* L' j. F4 b</div><hr size="1"> ; ]* g3 V9 s3 f7 a- N# r
<%i=1 2 s# O1 f* o+ [2 ~
set showbbs=conn.execute("select*from bbs order by id desc")
! n6 j# l" A' [8 @$ t! e* Ado while not showbbs.eof 6 f, x$ ~$ {* n+ r  p) G
%> * {7 [5 X: a3 b1 @8 n$ p' A
<div align="center">
0 r0 d0 j/ v* ?<center>
( Y, N( K4 J9 y1 k7 f<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse; " bordercolor="#000000" width="100%" height="20">
& |) Z: Z/ J, J# D9 G& R<tr>
* ~0 O2 U+ o7 k( G6 g<td width="17%"><%=showbbs("name")%> </td>
3 Q8 O& ?) w$ B1 E" x  o" n7 p<td width="83%">
! d- S) i! ~+ V3 N<a href="show.asp?id=<%=showbbs("id")%>"><%=showbbs("title")%></a></td> 3 j8 z# Y3 G7 }' y: z' D
</tr> ! S. c; d4 ]$ m9 f3 V7 d! ?" G, n
</table> 8 @0 ^1 y+ b7 X* V( U  G6 }% C
</center>
$ _, p9 M* q7 T9 F# P7 K. o</div><hr size="1"> : w: y7 Y/ E4 J1 P3 s' \3 C7 w$ T
<%i=i+1
$ m# K6 S" X5 m8 m. mif i>50 then exit do ; a2 j' k- {1 u0 p7 P
showbbs.movenext ) h; ^. o: g, o( m" K7 a
Loop
1 U) W6 S' y+ B0 B5 Tshowbbs.Close
- L4 D) u2 C+ }" s7 K* p9 x! Dset showbbs=nothing
  X, `1 y4 X% f) t2 Q3 j%> + g2 c+ G: k" S

: j# o  R! c# G6 A% r0 j% `) w这个文件就不一句一句的讲了 1 {8 l- p$ c2 j* }
主要讲精华部分: * J" H" E9 |. a; i9 r
set showbbs=conn.execute("select*from bbs order by id desc")
% z; n* H$ Y0 p: B6 ]意思是:向数据库中的bbs数据表查询数据,并以id排顺序, ) U+ L; y9 h2 v+ v, T
还有这么一句:<%=showbbs("name")%>
8 W5 B9 s  s- Z9 Z0 s4 x就是显示数据表中的name字段的数据,这里的showbbs就是set showbbs=……中的showbbs
7 F2 k" Z8 X$ d7 Z8 U代码中的i=1和i=i+1 & C- S, R" v7 _, H9 ~" G9 s
if i>50 then exit do " g7 z! C, N  @7 y8 p$ \( y, X
showbbs.movenext " E. L5 y: h6 q
Loop
6 W4 H9 R$ v* v. i8 V2 Pshowbbs.Close
" a  j5 ?* I8 xset showbbs=nothing
) o" o0 M9 Y& U7 g4 f. Z& Q; ^0 L  y7 C8 T7 f: Q. X, ]! P
这几句属于循环语句,这里就不理他,理解了也不太好用,因为他只显示50张贴子! 6 x& e3 ]: r$ n3 ]$ H# i
if i>50 then exit do中的50可以修改 1 I# i) V- y, k. F
但我们做论坛必须把帖子分页,又因为分页这个语句太复杂,我想就不讲了,等这一个弄懂了才来弄 1 ~9 P2 x8 V: \( f
还有一句很有用的: - a$ l4 J6 x/ @$ A/ P
<a href="show.asp?id=<%=showbbs("id")%>"><%=showbbs("title")%></a> 4 q/ q' |" A  e3 P" W
里面的超连接:show.asp?id=<%=showbbs("id")%>,注意:这里的超连接把帖子的id包含了, 5 r2 {( \8 C( z$ f$ V+ T
等一下在show.asp文件中就有用了
' {9 h. o! }) j- z# s2 z5 L; M# b
+ j. a8 V* q5 T# b3 ^1 t0 F5、show.asp 7 ^& ]) H0 S6 ?6 ?6 K9 Z
源代码:
- E) \8 C# R. J* I2 v* Y
( F" U: _4 @3 T# X, Z) t<!--#include file="conn.asp"--> 7 V' Z9 l0 m+ M) H' P
<%id=request.querystring("id")%> * u% e/ D/ h7 W3 i2 R4 I
<%set show=conn.execute("select*from bbs where id="&id&"")%> 8 d% M. _$ ]9 d# n! n* L* x. p# H7 h
<a href="index.asp"> 9 a/ b  h, p4 v3 f- f
<b>回到首页</b></a><br><b><a href="say.asp">发表帖子</a></b><br><hr size="1"> 2 |7 K9 C6 x& t  R& I, }
<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" height="180"> 1 ^" K) h( A- x: j- R
<tr>
; n  e, @- ?4 r4 t. s) e3 a<td width="21%" height="22"><b>作者:</b><%=show("name")%></td>
9 _  Y6 T% z/ M- b( {2 C<td width="79%" height="22"><b>主题:</b><%=show("title")%></td>
! Y; B3 J9 H! f/ V</tr>
& k8 e& |% c  h8 |! q6 M/ D8 d& `<tr> ( p! P2 m4 l& g- a+ v- X% M
<td width="100%" colspan="2" height="158" valign="top"><b><br>内容:</b><%=show("body")%></td> 1 {; s3 J. c' j& p5 N& G
</tr> # ^' S) ?4 q. S8 `; m- i2 g2 \
</table><%set show=nothing%>
) _3 c! Q; K, k$ ~) c, X) h" w0 b3 R/ J, T: [
劲语句---精华语句:
1 F: A" X/ G$ ^' g' z) aid=request.querystring("id") 0 W4 m9 y% D; I! G
在讲解index.asp文件的后面已经说到:show.asp?id=<%=showbbs("id")这一句,
# W5 @# V% l: X4 Q6 e7 C. X9 d/ ~id=request.querystring("id")就是把地址栏中的id的值读取下来, . Q+ G& w: ^/ a7 [  x
因为index.asp文件中的超连接点击后,地址栏就为http://…………/show.asp?id=数字,
& O" f: `% m0 S6 }0 {所以show.asp使用id=request.querystring("id")语句把数字读取下来 4 V/ g# e- O1 t# c6 |
于是接着使用:set show=conn.execute("select*from bbs where id="&id&"")
2 t' m) U- n& r; @7 I3 z$ L向数据表查询id为这时读取下来的数字的帖子,即where id="&id&"
: N6 i9 w( Z& P" d$ o最后<%set show=nothing%> - S: o) I3 D" T1 j4 v; Z: z

. @4 q, ~# u" r! r- V好了,一个简单的论坛就这样完成了,挂在我们自己的ASP空间上去试试

好厉害啊

TOP

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