|
大家在网上看到各种各样的ASP论坛是不是觉的做论坛很难呢,其实我们用简单的ASP语句就完全可以完成一个属于自己的论坛。下面我教大家如何用ASP来打造一个属于自己的论坛,自己的东西毕竟用起来爽吗。<br>! u1 X5 n. J; @4 H4 R
<br>- F( A7 @7 d' J A
同时,再复杂的论坛的写成也离不开下面的基本步骤,大家仔细看了。 <br>" ^ Z; o" D2 T6 S: o1 g4 U
<br>
+ A, |6 ]1 R7 I; S一、建立文件! <br>
/ u9 P- I7 R3 X' p' G+ W' z8 v最简单的论坛也要有几个必要的文件,就是: <br>, G& y/ y- V& k) {+ [# |0 X5 H2 i+ \! }
<br>
( D# S) v" q2 W6 X: q: B1、数据库,用来储存发表的帖子!-------命名为:bbs.mdb <br>, Z. F- \4 e8 P9 I- @' H" v! G
<br>
4 ]# J: G3 J3 ?8 p+ e8 K& w2、有数据库就必须连接数据库,该文件用来连接数据库:----命名为:conn.asp <br>6 w5 T# j& l7 p/ p* ^) T
<br>
2 V2 |7 ^# T- ]8 r3、发表帖子的文件----命名为:say.asp <br>$ [2 a9 y, w$ ^6 c' ]- E0 D. `
<br>2 C0 O' V: \2 L
4、保存发表帖子内容的文件-----命名为:save.asp <br>
; F# p5 [0 i9 F( `- H/ \7 A! j8 y<br>
& G5 ]5 D( ?9 x. |! c' x0 G5、显示帖子标题的文件------命名为:index.asp <br>0 t' O! k9 e7 q+ `6 A
<br>3 P1 y, s% _6 b; t. Q' B* R
6、显示帖子内容的文件,即点击标题后所进入的页面-----命名为:show.asp <br>; Q9 m7 v+ c5 B! M3 H% T
<br>
4 h, S9 K* o, O' A建立文件是可以先建立文本文档,他的格式为"文件名.txt",我们只需把它改为"文件名.asp" <br>
# W- ?$ |8 @+ f) r7 x<br>1 t: X2 O( l# V/ s' [1 O/ h
二、各文件的主要内容 <br>
: W. B- o; X& e% q; q) q<br>
- C+ z/ S5 n3 m) p9 u1、bbs.mdb <br>
$ m" [" I; Z `4 z ]/ w4 M# t<br>
: H& z! e) A. r* f: e打开这个数据库,建立一个表,命名为bbs <br>
" S4 K5 P0 ]! l0 L8 T* N: }<br>! x! U1 _3 v' ^% ?( x, T
该表中有几个字段: <br>" b0 {- R! W l$ Y2 I1 X4 r- m
<br>
7 l. t5 I( j3 t2 G3 s1 Y% ]2 Q& D4 xid(自动给帖子编号),他的数据类型设为“自动编号” <br>% b' ]# ~, W* q
<br>. ?8 G8 t6 R& P3 @/ o w$ L
name(用来储存发表的作者),数据类型为“文本” <br>; N* }( ]% m+ x- D, A% I. g! ^7 @
<br>
1 k- v v" r6 b7 M& s4 D1 {# E t& ~/ ctitle(用来储存帖子的主题),数据类型为“文本” <br>" ^4 P. [! T* ]
<br>
3 T: G! c% Z4 z( hbody(用来储存帖子的内容),数据类型为“备注” <br>( U! _4 z1 Y5 e- i
<br>7 H) V/ V( z9 |
2、conn.asp <br>
$ ^5 K: R; Q6 g源代码为: <br>
! Q0 S/ G+ ?5 U0 z; Z<% <br>: _& c: f* T, B9 R) \2 @% p& p, a
Server.scriptTimeout="10" <br>
. Q: M2 S% z4 \" Z$ B! o, t/ rconnstr="DBQ="+server.mappath("═bbs═.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};" <br>( N1 Y* y( d' h: q
set conn=Server.CreateObject("ADODB.connection") <br>
! G' l0 \9 I4 `conn.open connstr <br>
- ~* \6 f3 }- ?0 ]& A. w) {%> <br>
. D4 ` A3 w, A8 m+ f4 @<br>
7 Z. o0 O# B" N! h2 }9 q6 t这个文件就是这样,代码内容大家就自己研究,这个我也不知道怎么说才好! <br>
8 {- w# `) L" D0 T4 B<br>
3 n9 s- s/ R3 c2 p7 Q3、say.asp <br>
1 K* H! D1 A7 m8 z<br>! o( C2 N$ ]- @% L
源代码为: <br>
7 y+ `, g5 A) x. Z" I' a/ J<form method="POST" action="save.asp"> <br>5 ?" ?1 \6 V8 [: K+ J4 H; w' }
<p>大名:<input type="text" name="name" size="20"></p> <br>
% }! k7 u) M9 e9 @<p>标题:<input type="text" name="title" size="91"></p> <br>
7 ^0 m, d) h2 f<p>内容:</p> <br>
5 e" ], b; d8 h: L) B/ f# f8 m. b<p><textarea rows="11" name="body" cols="97"></textarea></p> <br>" \) t8 i8 y# H; |9 \+ R* V
<p> </p> <br>
% h' j: T- p6 e) x) f<p><input type="submit" value="提交" name="B1"><input type="reset" value="重置" name="B2"></p> <br>
# T. X3 ~' `4 H</form> <br>
* \. Z1 w% n- q, s, G, e9 y& G; S大家应该看得懂的,这个根本就是html语法,对的,根本就是,这个只是发表的界面 <br>( H# ^$ T% s/ f) E
不过要注意这一句<form method="POST" action="save.asp">,他把用户所填的内容发送至save.asp这个文件,下面就看save.asp这个文件吧! <br>
- ], C1 ^2 S0 x& k<br>3 o. U! s# t+ G5 T6 w& S+ |
4、save.asp <br>
9 k. J9 c2 G3 g/ r1 K6 Y5 i<br># d, U5 k% {/ ]! r
源代码: <br>
* n4 p3 `; F. ?4 {$ b$ d) b<!--#include file="conn.asp"--> <br>
+ e/ Y' R* {& c: A! L! e F<%name=Replace(Request.Form("name"),"'","''") <br>
/ q8 a( H* n' m& z: _title=Replace(Request.Form("title"),"'","''") <br>0 {% o S. y. }$ o
body=Replace(Request.Form("body"),"'","''") <br>" x( H6 x5 K( @% Q a# ^. b* l1 r
%> <br>
" h( y( G* i& D8 V. W) A1 N3 w0 ?<%if name="" or title="" or body="" then%> <br>
0 N0 n; _" n( I3 g/ X6 j请<a href="****:history.go(-1)">后退</a>填写完整资料,你才能发表帖子! <br>1 B- x; X# v# X, ~# Q8 y
<%else%> <br>0 g4 I/ O7 \, o- S
<%set savebbs=conn.execute("insert into bbs(name,title,body)values('"&name&"','"&title&"','"&body&"')")%> <br>
/ A2 ?# O$ T# N2 N6 Z1 Y$ ?' ]发表成功!<a href="index.asp">查看帖子</a> <br>
2 G4 _6 h) t3 { O" R3 @, z<%end if <br>4 W, ?; e1 Q) s* B- L
set savebbs=nothing <br>3 q. q7 @& z: g1 X I2 j
%> <br>
: K3 N) l0 M: f; K' w/ g! K<br>" b& J4 ^. W1 ^. C& }4 [* c
第一句:<!--#include file="conn.asp"-->,意思是插入conn.asp文件,即与数据库进行连接! <br>
& {/ l b! u2 {4 E2 o8 Fasp语句必须用<% %>这个格式包含起来,而插入文件的语句就不用, <br>$ ^" s) a g6 g: ]8 _
接下来几句: <br>
|+ O u6 ?9 H: _" H2 Iname=Replace(Request.Form("name"),"'","''") <br>$ Y7 |: z! T/ B$ E( [4 j
title=Replace(Request.Form("title"),"'","''") <br>
( p$ ^8 w P5 C- |# Q& P- M+ i* sbody=Replace(Request.Form("body"),"'","''") <br>
( `4 W3 J* M, x; C8 q* a<br>
2 ?$ o3 v* J8 Q1 j! V# m4 ~2 g“Replace(Request.Form("name"),"'","''")”意思是接收表单中名为name的文本框发来的数据, <br>
7 z7 S$ {4 h' B% P而“name=Replace(Request.Form("name"),"'","''")”则是把发来的数据储存在name变量中, <br>+ N' F3 b' l; G7 O, p
如果你这样:“abc123=Replace(Request.Form("name"),"'","''")” <br>; [' g; h! r d+ A2 J! r7 n. w' X
就是把表单中名为name的文本框发来的数据储存在abc123变量中 <br>3 q. C! m7 {# ~1 E
<br>
' X( l# q! X) X" H. V接着:if name="" or title="" or body="" then <br>
* D2 b9 I$ }( E7 N1 D判断name、title和body变量中是否没有填写内容,即为"",如果这样,就执行这一语句: <br>
% D3 J+ H3 b& E/ e* P“请<a href="****:history.go(-1)">后退</a>填写完整资料,你才能发表帖子!” <br>
8 X* ?9 Q8 j2 l8 b6 [) y该语句属于html语法,大家都看得懂的! <br>
" S- Y1 t1 w4 E4 V<br>
: u! X2 h0 X% C. t5 C$ z; M"<%else%>"就是说“当if……then不成立(即是说所有内容都已经填写)”,就执行语句: <br>. M# O1 t% l0 C, j' J8 }
“<%set savebbs=conn.execute("insert into bbs(name,title,body) values('"&name&"','"&title&"','"&body&"')")%> <br>4 E2 w9 Q) H, w2 ], Q, U0 F
发表成功!<a href="index.asp">查看帖子</a>” <br>
. K& _5 S! k8 E7 K: o" M<br>
% F/ b' s( B* I; O+ m"set save=conn.execute"属于固定的语句,不过savebbs可以自己修改,"="后面的就难解释了: <br>3 a$ O' U5 |$ S5 V- g- U0 G" e( X
insert into bbs(name,title,body)意思是向名为bbs的表(在建立数据库时已经建立的表) <br>' t3 t$ Z+ s( R' X6 D* u' X
中的name,title,body字段插入,插入什么呢?看接下的values('"&name&"','"&title&"','"&body&"')") <br>2 b; W3 Z# j. L# O* E
values是“值”的意思 <br>
3 C# k; u# I6 ?, l: E4 h5 v7 U; I _就是插入向量name,title,body,向量用格式'"&name&"'表示 <br>% L. P. a+ f2 \9 Q' E8 Z u
<br>1 G+ `: b4 v6 i/ n' r1 s
最后:end if就是结束if……then <br># }4 _8 Z4 F: f9 x
set savebbs=nothing可以说是关闭掉: <br>( I' Y2 V/ N* Q. ?. A0 }
set savebbs=conn.execute("insert into bbs(name,title,body) values('"&name&"','"&title&"','"&body&"')") <br>
& k2 W; o9 ~# ?<br>- Z! g3 U4 w5 X& P6 O) m' p
<br>9 L3 L& K; G5 Z* S O) e
5、index.asp <br>. i. E; \1 s( _: f# C
源代码: <br>' G+ s/ ~4 U" c2 Y5 `- m8 S
<!--#include file="conn.asp"--> <br># H" C0 p; \/ y
<b><a href="say.asp">发表帖子</a></b><br><br> <br>
9 G& x, Q2 R$ ^5 ~0 g8 P<div align="center"> <br>
5 Y" U# M7 e2 u( U<center> <br>
- b% S! b3 H5 ?! @<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse; " bordercolor="#000000" width="100%" height="26"> <br>
4 V k2 U1 v! T% C9 Q; ^3 H: e<tr> <br>
9 R& |$ C, `. R) k# v q* e<td width="17%"><b>作者</b></td> <br>
) u7 C- g9 D" @, M6 X( O9 q<td width="83%"><b>主题</b></td> <br>
$ v7 n5 a% S. Z; l* Z</tr> <br>
4 G; |4 |: P: G: J, r, {# b</table> <br>
3 U" X5 d% i. R1 L) n/ ?</center> <br>
$ F/ s K) d5 P8 @9 D# ^</div><hr size="1"> <br>
6 x, U8 h5 T0 y. i6 {- d<%i=1 <br>: U4 C$ ^5 @) Z- ?
set showbbs=conn.execute("select*from bbs order by id desc") <br>
* f3 W, F! B4 x7 ~# hdo while not showbbs.eof <br>- t& X" k. w3 H% Z9 {7 ]
%> <br>2 v- I6 U( ~) ]% P; @8 ]8 [
<div align="center"> <br>4 S6 y+ q1 n8 W4 Z! z0 s
<center> <br> M$ F! P/ n& C( T& c
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse; " bordercolor="#000000" width="100%" height="20"> <br>1 l- y: m% p" W2 M# o0 X
<tr> <br>* Q3 F! y$ K- [# `
<td width="17%"><%=showbbs("name")%> </td> <br>
: h# x% N: S+ ~<td width="83%"> <br># Y+ c: k3 s$ u* n
<a href="show.asp?id=<%=showbbs("id")%>"><%=showbbs("title")%></a></td> <br>+ ]3 _# s+ I. h$ j& a
</tr> <br>2 I3 p7 e2 Y9 `
</table> <br>; B7 P" T, R: f. \ e2 d' F+ ~
</center> <br>
, O% D$ p# V% c C3 T. U</div><hr size="1"> <br>- `! l F2 `; V. T- @
<%i=i+1 <br>( c. ?( x9 \9 c6 z
if i>50 then exit do <br>
# Q9 {1 o8 w! d# g. oshowbbs.movenext <br>3 @( s. H# L9 L" E
Loop <br>( n2 Y# D0 R1 D( ~) Y1 M
showbbs.Close <br>: H% \5 N0 S9 X- o+ S' Q$ {: o
set showbbs=nothing <br>
# p2 g; [, b$ }, d9 _%> <br>
2 ?: Y8 a- @' N; C- s- }' C<br>
( u+ i2 W# m. y这个文件就不一句一句的讲了 <br>" O9 Y+ z0 R# B/ t3 a
主要讲精华部分: <br>8 G+ ~* f6 f9 g" B- U$ H
set showbbs=conn.execute("select*from bbs order by id desc") <br>
. H' \# y$ v9 v( u意思是:向数据库中的bbs数据表查询数据,并以id排顺序, <br>0 N+ C( c! i4 ~7 X7 P- f6 a
还有这么一句:<%=showbbs("name")%> <br>
) b9 @; U% ~3 b! y3 M5 n( w就是显示数据表中的name字段的数据,这里的showbbs就是set showbbs=……中的showbbs <br>5 q+ }$ F5 C3 w- K7 V6 G
代码中的i=1和i=i+1 <br>
- a. e C7 U& Cif i>50 then exit do <br>
7 K1 D! i& r& H5 Xshowbbs.movenext <br>! T/ c8 K; N( R Z. T7 l' \9 D
Loop <br>5 Y: _3 F* S# B/ v+ d
showbbs.Close <br>
7 T, \# Q" ?* {+ U/ C7 Bset showbbs=nothing <br>
# H* S" o8 m# M/ Z<br>
1 I& \" V; J" z( q! w这几句属于循环语句,这里就不理他,理解了也不太好用,因为他只显示50张贴子! <br>
0 j! ~9 ]! `+ |8 l: q3 aif i>50 then exit do中的50可以修改 <br>
/ x, w/ N) i( X' G; `, C但我们做论坛必须把帖子分页,又因为分页这个语句太复杂,我想就不讲了,等这一个弄懂了才来弄 <br>1 K6 H5 Y* O1 ?2 l
还有一句很有用的: <br>
. K5 P+ n$ @% U# r) [% t/ `/ {<a href="show.asp?id=<%=showbbs("id")%>"><%=showbbs("title")%></a> <br>
: A: [( H/ V) r$ S% P里面的超连接:show.asp?id=<%=showbbs("id")%>,注意:这里的超连接把帖子的id包含了, <br>! {( F' m9 N. T- M
等一下在show.asp文件中就有用了 <br>0 U2 O: |3 G, X/ o- i0 Z
<br>
- I3 C& g7 e& s/ a" K* @5、show.asp <br>
X; e1 r s' F- _源代码: <br>
; C9 L1 k) |6 [) ~& M V, Z5 A<br>
* E0 }( X! m7 R. l, F f r) k<!--#include file="conn.asp"--> <br> W' `4 ?8 N/ r3 j
<%id=request.querystring("id")%> <br>4 v) h$ X2 R* T& p
<%set show=conn.execute("select*from bbs where id="&id&"")%> <br>& R' K8 B$ S1 _1 P; @
<a href="index.asp"> <br>
U$ f. t* p0 y, K! a<b>回到首页</b></a><br><b><a href="say.asp">发表帖子</a></b><br><hr size="1"> <br>
; d; V* ]% R$ |' j; X<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" height="180"> <br>
s# ]- f4 X( K$ {& m' y$ ]<tr> <br>
6 A/ ?# E3 B$ k; E/ L. j4 w5 m<td width="21%" height="22"><b>作者:</b><%=show("name")%></td> <br>4 \& {$ H+ S7 s4 p
<td width="79%" height="22"><b>主题:</b><%=show("title")%></td> <br>
9 a+ r! G I/ }; t! z</tr> <br>2 u. R6 N1 v# z
<tr> <br>
% g6 r: C: X) X4 ~ D<td width="100%" colspan="2" height="158" valign="top"><b><br>内容:</b><%=show("body")%></td> <br>
5 H% ~$ |# ~* Q( C</tr> <br>
' ]# l- h, a- ~2 v2 S</table><%set show=nothing%> <br>; `+ Q( @2 g) I) {
<br># j9 R& j+ z! b' z; t# D6 G
劲语句---精华语句: <br>- K- B3 i! Z5 Y) ~, j, @4 N
id=request.querystring("id") <br>! Q8 c2 R( J% ]0 `1 a
在讲解index.asp文件的后面已经说到:show.asp?id=<%=showbbs("id")这一句, <br>% e9 D- I9 k! G# u, {1 V$ K" I
id=request.querystring("id")就是把地址栏中的id的值读取下来, <br>4 t! t5 ^, l& z8 ?
因为index.asp文件中的超连接点击后,地址栏就为http://…………/show.asp?id=数字, <br>
! s: q6 ~3 Z# C/ K& J所以show.asp使用id=request.querystring("id")语句把数字读取下来 <br>7 _3 z6 ~, m: _- |
于是接着使用:set show=conn.execute("select*from bbs where id="&id&"") <br>
( q% a) i7 [: d1 \8 @* h, c向数据表查询id为这时读取下来的数字的帖子,即where id="&id&" <br>
# |' c' I4 M& s/ U M最后<%set show=nothing%> <br>
; r9 J9 \7 A1 ~$ a% _$ M/ Z<br>
8 }# A/ M7 v; Q好了,一个简单的DIY论坛就这样完成了 |
|