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

5分钟编写一个ASP论坛

学ASP朋友的。。给大家分享个好东西
) Q7 G  Z+ y! q6 @5 C8 q1 v真NB..佩服ing .....1 ?: F5 d3 h2 g9 ^
大家在网上看到各种各样的ASP论坛是不是觉的做论坛很难呢,其实我们用简单的ASP语句就完全可以完成一个属于自己的论坛。下面我教大家如何用ASP来打造一个属于自己的论坛,自己的东西毕竟用起来爽吗。4 e( x: G- z$ M$ R, [2 O" T  y( B

) J; s* _0 G) ?2 S4 n) H同时,再复杂的论坛的写成也离不开下面的基本步骤,大家仔细看了。
4 e' N9 Y# g/ _5 W: t" ^' W  w$ H' I( h: @* ?* t
一、建立文件!
4 g% L" n8 e0 d. T7 _最简单的论坛也要有几个必要的文件,就是: - ~6 H" [. {2 `/ G& z
7 F* S. |: L2 p
1、数据库,用来储存发表的帖子!-------命名为:bbs.mdb " t' P& ]! R7 ~  a5 ~, I- a  H

, ^1 }  x& N" t: b7 \* i# w- x2、有数据库就必须连接数据库,该文件用来连接数据库:----命名为:conn.asp
! ?7 p; B" i/ I/ U8 C# w. L4 x/ _. P1 q1 e1 g& H
3、发表帖子的文件----命名为:say.asp ( P+ C% i8 u! l1 Z) Q  N

1 D# |- W5 E4 P, U& v$ \4、保存发表帖子内容的文件-----命名为:save.asp 1 A/ N3 x  V2 r9 t( y4 k% H$ f
! [" ^8 U, Z* P9 _: A2 N
5、显示帖子标题的文件------命名为:index.asp : i$ S# x  ]; ]' A  R: w

& P4 m( V4 z7 z5 N2 u7 l8 l6、显示帖子内容的文件,即点击标题后所进入的页面-----命名为:show.asp : S5 u; F" _2 C/ v2 B0 U
- z$ J3 L7 Z- G( y8 Y, J- s
建立文件是可以先建立文本文档,他的格式为"文件名.txt",我们只需把它改为"文件名.asp"
& H; ~1 T, Y! B) X5 o& @
' h( y6 d" P- ~. |二、各文件的主要内容
# X7 a+ P+ ~# T4 L3 P" ?8 a4 x  I5 Q
3 e1 S. {( a9 r0 Q, M. \: T1、bbs.mdb " D% C. H, u8 e9 o( K. L) _$ o6 f
& N  z$ \0 X$ M# I4 T- f( K
打开这个数据库,建立一个表,命名为bbs
, s! ~1 d  Y, R! I3 s$ ]% T! w+ v& d
- d3 H: @5 F8 c9 X. ~5 ^/ \该表中有几个字段:
, F% p. U8 W3 w3 y4 i+ F4 ]) V
# |1 I7 K7 U  O9 g- Qid(自动给帖子编号),他的数据类型设为“自动编号”
2 s: w  Y+ ]; `* q8 ~3 n
0 `/ [! {' Q, M- O* `name(用来储存发表的作者),数据类型为“文本”   e5 F* i' L$ h1 X( A; Z" n/ e

% \& R0 N" U$ k( P* |9 wtitle(用来储存帖子的主题),数据类型为“文本” . \9 O  R. f3 r4 d. P7 x; O* Y
8 R  o+ T. c; `' K
body(用来储存帖子的内容),数据类型为“备注”
$ c1 W- j. W: o, S9 _
& l9 {: d/ V7 }* d; X5 E; q2、conn.asp ' \# l: S8 o  i. O$ p. ^
源代码为: & Z3 y1 ~" e: A0 q2 S0 @6 v
<%
% I8 Y5 L, o2 d) g) a! qServer.scriptTimeout="10" 5 ]0 i* m/ G, k. i
c+server.mappath("═bbs═.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
; d9 A: {4 w5 `# A9 \$ C' Gset conn=Server.CreateObject("ADODB.connection")
2 F$ W  q. o3 H- ^  pconn.open connstr 3 _) p0 j# L: g! U
%>
& }, }8 j9 n+ Z" u* Z  a5 O; d! V# i! J& Q
这个文件就是这样,代码内容大家就自己研究,这个我也不知道怎么说才好! + B( b! _. S8 N
1 s% {& @- _% K- o
3、say.asp 3 i# Z3 O; R. I% m5 U

$ E$ ^/ |1 Z: m* G6 d& M# Y7 M+ N( o源代码为:
9 E- n# K" A- ~# w" f. U<form method="POST" action="save.asp">
$ [; X6 `! y& W<p>大名:<input type="text" name="name" size="20"></p> . j5 p( z% U* J
<p>标题:<input type="text" name="title" size="91"></p>
9 G$ D# @  j7 }" @. m9 |7 d<p>内容:</p> % P8 j; `6 `# N8 z3 f/ b& ^1 h' H
<p><textarea rows="11" name="body" cols="97"></textarea></p>
) y- D  `! Y; _<p> </p>
9 u. L& Q0 ~% k8 e<p><input type="submit" value="提交" name="B1"><input type="reset" value="重置" name="B2"></p>
' ^% V/ {% e2 i% H</form>
( Z9 c4 f0 j1 |6 ~' e- E大家应该看得懂的,这个根本就是html语法,对的,根本就是,这个只是发表的界面
0 }9 S% h  A$ a2 O5 N" b不过要注意这一句<form method="POST" action="save.asp">,他把用户所填的内容发送至save.asp这个文件,下面就看save.asp这个文件吧! * p9 U+ T  w; y8 q% M

8 ~: \. B1 p: |) K: d. q  b9 t+ G4、save.asp   m+ s4 ^; `4 z. o" @2 [7 Y- X

: Y, C" ]5 c2 U+ }% ]0 x( a/ H源代码: ! f9 D8 Q9 f, v/ R7 n
<!--#include file="conn.asp"-->
2 [: j9 I$ |" n<%name=Replace(Request.Form("name"),"'","''")
/ X; Y) d& e4 b8 qtitle=Replace(Request.Form("title"),"'","''")
$ _. k, ~- j' t9 F( K1 Dbody=Replace(Request.Form("body"),"'","''")
$ v! m4 I, E/ v2 H. e6 P2 A%>
3 D8 ?- t: U; O8 n<%if name="" or title="" or body="" then%> & B0 ]5 Q/ e* X& F& Q5 s, C+ p1 M; }" r
请<a href="****:history.go(-1)">后退</a>填写完整资料,你才能发表帖子!
* s. k8 g- }  U" r<%else%> 1 U0 o8 W) O# Q7 f
<%set savebbs=conn.execute("insert into bbs(name,title,body)values('"&name&"','"&title&"','"&body&"')")%> 4 E# \4 P2 ?4 T8 L1 w
发表成功!<a href="index.asp">查看帖子</a> - H$ v% T  g+ h6 x
<%end if
6 D1 ?7 R. j1 \) F' V1 p( ~set savebbs=nothing
& c# j7 s" l2 z% }$ R6 `6 C%>
2 l4 ~$ a( ?/ w- t5 w, a  ~% {- [( f, r6 r! D! o# Z+ z  K
第一句:<!--#include file="conn.asp"-->,意思是插入conn.asp文件,即与数据库进行连接!
: m- j! r0 D" [* @  h4 |# iasp语句必须用<% %>这个格式包含起来,而插入文件的语句就不用,
  g+ s( J8 w+ X* \6 P$ S接下来几句:
+ R& Y5 z0 I) e* J' J9 ]+ tname=Replace(Request.Form("name"),"'","''") 7 t2 s2 D: B& B2 K) W
title=Replace(Request.Form("title"),"'","''") 4 w6 l  ?, H* w. O
body=Replace(Request.Form("body"),"'","''") . j; ]$ v4 e/ y

% e9 q' h* R/ N: i3 ?4 {( z“Replace(Request.Form("name"),"'","''")”意思是接收表单中名为name的文本框发来的数据, . J- I6 L- G- C1 ?) E
而“name=Replace(Request.Form("name"),"'","''")”则是把发来的数据储存在name变量中,
2 }: ]! b1 ~* _* v! x如果你这样:“abc123=Replace(Request.Form("name"),"'","''")”
) l' y* s' c; V5 @5 |1 w- Q就是把表单中名为name的文本框发来的数据储存在abc123变量中 . N3 x* p- H: F
; m, q: _1 [9 v( I, {" W- c6 R1 F. E
接着:if name="" or title="" or body="" then % G9 Q: j6 m- H+ n$ D5 b) g) o. G
判断name、title和body变量中是否没有填写内容,即为"",如果这样,就执行这一语句: 0 b1 [+ j# |6 X/ R
“请<a href="****:history.go(-1)">后退</a>填写完整资料,你才能发表帖子!” $ ~/ j0 H1 ~9 U
该语句属于html语法,大家都看得懂的!
9 x9 A! A; Q& R" o$ E  P# F% C" Y8 q# s8 j' n. _% l
"<%else%>"就是说“当if……then不成立(即是说所有内容都已经填写)”,就执行语句:
& \( Y- j3 S5 ^“<%set savebbs=conn.execute("insert into bbs(name,title,body) values('"&name&"','"&title&"','"&body&"')")%> ; a' Y7 \6 h0 I8 X1 s8 b3 J
发表成功!<a href="index.asp">查看帖子</a>”
6 X6 w( w& f1 n5 r& U" f; C6 i% [6 q* h3 U) m7 h# `
"set save=conn.execute"属于固定的语句,不过savebbs可以自己修改,"="后面的就难解释了:
" V5 [1 [1 E3 X* @4 Y+ I5 Ainsert into bbs(name,title,body)意思是向名为bbs的表(在建立数据库时已经建立的表)
+ U  \+ D7 h& e$ v3 b* z; z. U中的name,title,body字段插入,插入什么呢?看接下的values('"&name&"','"&title&"','"&body&"')")
! I. ]6 c, }7 g, \( svalues是“值”的意思
  p3 g3 ?# a: t1 [) W7 \, Y8 W, n0 F' D就是插入向量name,title,body,向量用格式'"&name&"'表示
( H0 D3 f$ x1 D2 \4 ]* L
  ^$ s1 b! k6 M! D6 n. I' ^. W1 X0 s最后:end if就是结束if……then
0 F- L- D- X& L* j  V- X, Pset savebbs=nothing可以说是关闭掉:
2 G) j7 o- V4 n* F( R) G8 B# N0 S1 Cset savebbs=conn.execute("insert into bbs(name,title,body) values('"&name&"','"&title&"','"&body&"')")
4 s5 @1 A/ l% O' g7 e3 Y
! r' |; e: a1 V6 t3 M& E
/ }$ v$ A  k* I8 _8 Y5、index.asp 7 e8 j- B% x1 k5 J' c
源代码: # j/ E% \9 }* v: k% q, p
<!--#include file="conn.asp"--> 3 E/ a8 w+ \3 a1 A$ @
<b><a href="say.asp">发表帖子</a></b><br><br>
- C! r# z2 `! w0 `2 l<div align="center">
5 |, s& _3 S9 e2 \4 o. O<center>
& y( ^' @- M! x$ N<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse; " bordercolor="#000000" width="100%" height="26">
/ r7 U* t* W1 D) s<tr>
/ \4 O& g+ B- c# I0 F+ g) L<td width="17%"><b>作者</b></td> 1 P) f7 x4 S+ a# ~- H2 M. q0 g5 E. I
<td width="83%"><b>主题</b></td> . i: _4 ?5 x% F& O
</tr>
# K% N9 x3 S& E</table>
" r; w8 V0 J1 w9 y. v/ Q</center> & l2 C$ U3 p6 G
</div><hr size="1">
3 Y* A. G0 W9 t: Q% J<%i=1
, o" B0 C; Y. W0 jset showbbs=conn.execute("select*from bbs order by id desc") 7 @: P* h2 U% r- H/ G' r3 f
do while not showbbs.eof 3 g$ |( }' _' z, |1 c+ F! T
%>
; {/ V1 ~& I: H3 F% y<div align="center"> 1 B' m% j+ {- X; r, x
<center>
; r6 a  v; N- @<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse; " bordercolor="#000000" width="100%" height="20">   Q9 q% u2 c- Y
<tr>   c% {: H& }) m3 C7 q0 [
<td width="17%"><%=showbbs("name")%> </td> 4 f) H( r# a) z$ A7 D1 q
<td width="83%">
# V# q/ d1 S& d<a href="show.asp?id=<%=showbbs("id")%>"><%=showbbs("title")%></a></td>
2 R( s) f, n  b0 Y9 z: Q</tr> . \5 p  G7 r- N( C
</table> " z0 i0 b3 a% B- V1 [
</center>
" q! v% i2 B+ n+ r" U</div><hr size="1">
* a% |* a+ X$ f. Q<%i=i+1 ) w3 r; J1 C+ Z# G
if i>50 then exit do
1 W" r* R" v# F6 z$ F: Sshowbbs.movenext " l9 ~  V8 F6 `( b1 c' e3 P/ j* S
Loop : J3 W- A+ E0 P) ]% l. ^- b8 N
showbbs.Close 5 S" @6 H3 k. q3 s( P* h
set showbbs=nothing 7 S1 z! Z2 L6 }% U' i' P
%> , a! K, `. b$ H! }
- \3 h. o) u; r
这个文件就不一句一句的讲了
5 D5 o* |  |$ i; r; K" q主要讲精华部分: + F! A' m  W* F# c2 t- T- E
set showbbs=conn.execute("select*from bbs order by id desc")
. l5 L/ ?4 O7 O7 \意思是:向数据库中的bbs数据表查询数据,并以id排顺序,   K4 n. y+ }$ ]9 _
还有这么一句:<%=showbbs("name")%>
9 H' z, G5 e' N/ j7 ^就是显示数据表中的name字段的数据,这里的showbbs就是set showbbs=……中的showbbs ! o1 m3 b$ _1 |! v
代码中的i=1和i=i+1
& V; `6 f, c7 q' v4 }( K5 C, q) pif i>50 then exit do
+ @3 w7 N# X/ T$ H8 @' ^showbbs.movenext 7 f3 d3 ]. r* k8 t+ _9 T- h5 x
Loop & i- ^, q- n( f6 |* r1 b
showbbs.Close - S5 v3 f8 k) }2 M5 \
set showbbs=nothing
1 `$ F* o) q7 v7 g5 x. C* d; l  [
. S3 J) ^( b" s1 c. R这几句属于循环语句,这里就不理他,理解了也不太好用,因为他只显示50张贴子!
4 l: R- a+ E/ A1 ~+ u& H8 fif i>50 then exit do中的50可以修改
+ H9 ~5 v: A% ^( ]' ]但我们做论坛必须把帖子分页,又因为分页这个语句太复杂,我想就不讲了,等这一个弄懂了才来弄
- A+ {8 t+ l( ^5 b: Z3 w, ?还有一句很有用的: ! x; x- y/ R6 V% J7 e8 {
<a href="show.asp?id=<%=showbbs("id")%>"><%=showbbs("title")%></a>
5 _7 N" ~" `' q. p里面的超连接:show.asp?id=<%=showbbs("id")%>,注意:这里的超连接把帖子的id包含了, 5 z  [9 q  a9 l
等一下在show.asp文件中就有用了
" }4 d/ ~" t4 ^* e' t7 |7 E6 P' x8 Z8 ^; J2 e- N4 S
5、show.asp
, D. d' Q- p0 m, |: d5 p源代码:
, J) H1 d: E  K1 a* x1 }
, A% {3 v/ S! f& y; Z<!--#include file="conn.asp"-->
# d3 v$ }  i  P# Y<%id=request.querystring("id")%> % C( \  u6 g( C8 a
<%set show=conn.execute("select*from bbs where id="&id&"")%> $ h- o& ]9 s1 Y' v+ r
<a href="index.asp"> 4 F& o7 G* U8 F) A5 P2 A0 x7 V
<b>回到首页</b></a><br><b><a href="say.asp">发表帖子</a></b><br><hr size="1"> 9 i0 p9 v! A% r* n6 B8 c/ Y
<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" height="180"> , M6 z4 n) E$ P
<tr> % Y6 {1 w; W- ?% `" F$ {! Z
<td width="21%" height="22"><b>作者:</b><%=show("name")%></td>
* E) w3 S2 G0 r7 h* c& j" e<td width="79%" height="22"><b>主题:</b><%=show("title")%></td> & k  Z, ~& f( b/ Z2 d
</tr> $ X, t- E% z* x; h$ L
<tr> 8 `7 q8 k9 [* a" o! Q
<td width="100%" colspan="2" height="158" valign="top"><b><br>内容:</b><%=show("body")%></td>
$ \/ T- |% S9 [) O3 ]" Y" P</tr>
, Q  O( Z& Y! X" ^, n</table><%set show=nothing%> & E) {0 x( G/ N
+ D0 V! l6 s; ^- H
劲语句---精华语句: ; h* h! ]& Q# R/ r8 V3 d
id=request.querystring("id") # j  T( f  [) t& }7 k# w3 C' x& c) b
在讲解index.asp文件的后面已经说到:show.asp?id=<%=showbbs("id")这一句,
- g% I% h6 z  l) e- f" Sid=request.querystring("id")就是把地址栏中的id的值读取下来, % x4 n0 K! ~; Y0 V3 u
因为index.asp文件中的超连接点击后,地址栏就为http://…………/show.asp?id=数字,
( j; h2 C0 N& s5 j; x, c" ^所以show.asp使用id=request.querystring("id")语句把数字读取下来
& T+ _, X6 e, F于是接着使用:set show=conn.execute("select*from bbs where id="&id&"")
0 ~4 ~- Y2 _. d# g向数据表查询id为这时读取下来的数字的帖子,即where id="&id&" . _4 |0 ~1 s" u% w
最后<%set show=nothing%>
% q  W! u" w6 J* A
; P# ]3 H6 F6 J好了,一个简单的论坛就这样完成了,挂在我们自己的ASP空间上去试试

好厉害啊

TOP

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