|
大家在网上看到各种各样的ASP论坛是不是觉的做论坛很难呢,其实我们用简单的ASP语句就完全可以完成一个属于自己的论坛。下面我教大家如何用ASP来打造一个属于自己的论坛,自己的东西毕竟用起来爽吗。<br>
( _; {6 x0 l# x7 i1 e0 ^<br>
# o$ c g/ x# n C+ v2 s8 o& p同时,再复杂的论坛的写成也离不开下面的基本步骤,大家仔细看了。 <br>
: z+ T! k5 {+ |<br>) b" C' d9 c" X$ B5 Q' ~: f
一、建立文件! <br>! p; B+ Y& u$ G* ]1 a" u3 D4 P+ \7 y
最简单的论坛也要有几个必要的文件,就是: <br>3 K( }( e4 [ w
<br>
: \5 n# ?# c* \* C1、数据库,用来储存发表的帖子!-------命名为:bbs.mdb <br>3 z) @4 I& _ M" ]& A, Y H, S
<br>- N0 N" q9 K# Y2 T# U
2、有数据库就必须连接数据库,该文件用来连接数据库:----命名为:conn.asp <br>3 B( w' ], j' D/ p
<br>) }. U* V! M+ P: G) i% O5 m
3、发表帖子的文件----命名为:say.asp <br>
( m+ V3 [7 ^9 e<br>
$ B$ d( H2 A5 X7 A* }& f& l- i4、保存发表帖子内容的文件-----命名为:save.asp <br>
7 z, j" M8 \8 _: M$ T" k k* Z<br>
2 v; p% y, {0 Q7 q' j+ N5、显示帖子标题的文件------命名为:index.asp <br>
& f) e4 Z4 U3 q+ g' P9 r' {6 X2 C<br>
; V! Q1 O: x$ C( |" e( L/ V1 c3 U6、显示帖子内容的文件,即点击标题后所进入的页面-----命名为:show.asp <br>! B; Q7 w* l" V- y" i9 M* b$ z
<br>* Z9 d7 }+ ]5 U" {% R" E
建立文件是可以先建立文本文档,他的格式为"文件名.txt",我们只需把它改为"文件名.asp" <br>
% m+ j" s, G V4 B<br>/ Z3 W- ]! f# _1 y
二、各文件的主要内容 <br>6 _4 a3 m6 b/ {$ j+ _1 X
<br>
7 u& N4 l( w8 b5 |/ P, D! E' ~1、bbs.mdb <br>" B% `! O0 z& s' G8 `0 k4 {
<br>
% F3 K9 P6 t S! t {打开这个数据库,建立一个表,命名为bbs <br>
, ~* f3 n9 w0 A/ e$ R<br>+ K7 P% z4 s+ P6 I, L) V/ E
该表中有几个字段: <br>
' F5 Z+ ]/ G6 h2 G- V% q<br>
2 C2 [4 `' H! {( I' M9 R, Tid(自动给帖子编号),他的数据类型设为“自动编号” <br>
& X' M* `! Y8 y) N<br>9 c* Y) S3 T+ u: `1 r& R
name(用来储存发表的作者),数据类型为“文本” <br>
' k# j( H6 y* o5 X4 u6 X; R<br>
2 \1 }7 R2 `) H6 ^title(用来储存帖子的主题),数据类型为“文本” <br>
3 g! G. j9 g6 L6 x" ^<br>' T7 ?8 m) T; v! [, @! t- j0 q
body(用来储存帖子的内容),数据类型为“备注” <br>
+ U8 }" s- d1 ^' ~<br>7 M4 m" B: H" d. X0 K; F
2、conn.asp <br>5 m# Y; A' S5 g q d
源代码为: <br>
# n/ s1 s% u3 X, c. N( t<% <br>$ q7 F. G+ V$ g) L* v0 }9 V7 g
Server.scriptTimeout="10" <br>
6 C/ f0 `+ N% E+ L9 g% V7 x: [; s3 x, Tconnstr="DBQ="+server.mappath("═bbs═.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};" <br>8 w9 V1 i& G4 }' F( l2 ]
set conn=Server.CreateObject("ADODB.connection") <br>
% z! Q- f& r) Y' R) M) }1 s+ econn.open connstr <br>6 J9 y' t) m# n, f* u( E: u
%> <br>
' x& H2 z; u5 d$ s) e<br>. d( e i8 Q1 {+ e0 t6 T; f+ W
这个文件就是这样,代码内容大家就自己研究,这个我也不知道怎么说才好! <br>
2 \5 t0 O5 k$ M9 H6 Y<br>
+ w+ U0 B2 r# C2 h1 X' ?3、say.asp <br>
" ^- x# f* _( D( ^# z<br>3 U0 q$ s9 d; C8 x
源代码为: <br>
, f( w% I) f; G+ y! x<form method="POST" action="save.asp"> <br>" ?7 U4 Z; V- F
<p>大名:<input type="text" name="name" size="20"></p> <br>
) p/ w+ Z# c! {. k7 M<p>标题:<input type="text" name="title" size="91"></p> <br>' p3 S. ~$ ^0 { u4 E; Q* M
<p>内容:</p> <br>2 K+ C8 |# f' g) I" k% S
<p><textarea rows="11" name="body" cols="97"></textarea></p> <br>
0 \1 I* o% {% h3 Z s<p> </p> <br>4 S; O" K$ t r/ f' g
<p><input type="submit" value="提交" name="B1"><input type="reset" value="重置" name="B2"></p> <br>% x: V& B( r9 I* ~/ s
</form> <br>* T1 P( z3 F# e; G; Z. U
大家应该看得懂的,这个根本就是html语法,对的,根本就是,这个只是发表的界面 <br>
4 z1 D# N E( q1 x- ?不过要注意这一句<form method="POST" action="save.asp">,他把用户所填的内容发送至save.asp这个文件,下面就看save.asp这个文件吧! <br>7 x3 s' ?4 }! n3 q$ p
<br>
4 N1 y( g+ Y; f! \4、save.asp <br>
; z$ k' ^+ l$ W" ~0 ]3 n5 n7 \<br>
7 |# {/ u5 Q4 }! E+ F! J6 j源代码: <br>
! J, ~7 h" V2 I0 q<!--#include file="conn.asp"--> <br>
. Y/ R* K- R* T! `- I9 T+ u, p<%name=Replace(Request.Form("name"),"'","''") <br>
: Y7 U+ l6 _: M4 F8 O, B9 Z0 Ptitle=Replace(Request.Form("title"),"'","''") <br>
( ]( D2 Z* ^$ {! }7 |body=Replace(Request.Form("body"),"'","''") <br>
& C' c7 Z' t# Q%> <br>
% U8 }. l1 z% k' Z& C<%if name="" or title="" or body="" then%> <br>
- f1 q/ F( n* t- a; ?0 L& z请<a href="****:history.go(-1)">后退</a>填写完整资料,你才能发表帖子! <br>
% @2 d& f O% v2 l% l' J<%else%> <br>
, y) @9 Z) e5 \0 j. p- a$ c8 e, {8 o! ?<%set savebbs=conn.execute("insert into bbs(name,title,body)values('"&name&"','"&title&"','"&body&"')")%> <br>$ f$ X* L/ Y2 @8 s3 p- u# {8 ~/ a+ Y
发表成功!<a href="index.asp">查看帖子</a> <br>2 x8 u" }. K# s# J& \, l9 O
<%end if <br>4 A t) ^% E: Q* |; E
set savebbs=nothing <br>$ \) N( K3 ~$ i c1 V% v- L! q( t
%> <br>8 H0 k6 l* E& ]3 ]$ g
<br>' \) @+ {. {2 u7 M( T
第一句:<!--#include file="conn.asp"-->,意思是插入conn.asp文件,即与数据库进行连接! <br>
$ g: w7 {) b( Tasp语句必须用<% %>这个格式包含起来,而插入文件的语句就不用, <br>2 {0 [2 x0 e7 R: }, D1 N, X3 E
接下来几句: <br>
, U' d- H6 V# S# F0 J! n: e# yname=Replace(Request.Form("name"),"'","''") <br>
* e( { O: T7 A! b. K6 {4 Htitle=Replace(Request.Form("title"),"'","''") <br>2 F, }7 t9 F, O
body=Replace(Request.Form("body"),"'","''") <br>- l" F+ O' B( _5 d9 |: d: V
<br>8 O8 r/ F% q3 V
“Replace(Request.Form("name"),"'","''")”意思是接收表单中名为name的文本框发来的数据, <br>. k3 ~4 `- x% A8 t: [
而“name=Replace(Request.Form("name"),"'","''")”则是把发来的数据储存在name变量中, <br>
) e/ }6 n0 i5 K7 P% Y+ I" o如果你这样:“abc123=Replace(Request.Form("name"),"'","''")” <br>
2 N+ G% a+ r' s! v) n6 d& G就是把表单中名为name的文本框发来的数据储存在abc123变量中 <br>
) d1 U; t8 Z2 R<br>
5 g/ A2 k4 q& t/ \: @+ y接着:if name="" or title="" or body="" then <br>6 R, `/ R% Y6 O$ [; ~7 h3 r1 Y& I1 U) Q
判断name、title和body变量中是否没有填写内容,即为"",如果这样,就执行这一语句: <br># M2 J# C& P2 f7 q( k
“请<a href="****:history.go(-1)">后退</a>填写完整资料,你才能发表帖子!” <br>+ s5 X9 q- ?- N! a# F9 Y) U
该语句属于html语法,大家都看得懂的! <br>
$ y# I# _6 Y: ~; t* ^' r<br>5 v4 C( }% [7 u% O& K5 E6 f, ^* V
"<%else%>"就是说“当if……then不成立(即是说所有内容都已经填写)”,就执行语句: <br>
) C, ~0 J! u" Z“<%set savebbs=conn.execute("insert into bbs(name,title,body) values('"&name&"','"&title&"','"&body&"')")%> <br>
7 _3 {. a' G. u7 ~3 M9 b发表成功!<a href="index.asp">查看帖子</a>” <br>/ [: e+ y. S3 D1 T+ l: Q
<br>2 ?! B6 r+ S! p' B5 K& s$ Z
"set save=conn.execute"属于固定的语句,不过savebbs可以自己修改,"="后面的就难解释了: <br>4 h8 e# p6 P! k; ^! y; N( v
insert into bbs(name,title,body)意思是向名为bbs的表(在建立数据库时已经建立的表) <br>% X$ I8 F- x- J
中的name,title,body字段插入,插入什么呢?看接下的values('"&name&"','"&title&"','"&body&"')") <br>
) y; K% {1 Z/ Z4 {5 e7 Uvalues是“值”的意思 <br>9 P" G) V& U' {- ~4 S" b" k
就是插入向量name,title,body,向量用格式'"&name&"'表示 <br>. O( ^6 Y$ r0 Q" j" m3 ~4 s; e* T
<br>
- I; I' i- A g8 e9 _- T9 _$ N最后:end if就是结束if……then <br>
7 K4 P/ S( w0 }/ Eset savebbs=nothing可以说是关闭掉: <br>; U' Q" u' c. I+ s; J
set savebbs=conn.execute("insert into bbs(name,title,body) values('"&name&"','"&title&"','"&body&"')") <br>0 p) F/ t. ]2 r/ L
<br>" m2 z" S9 @ O: s( q; w
<br>5 Z" S5 y, k/ s4 {& e- d
5、index.asp <br>; d l, t7 U. P1 Z
源代码: <br>* t6 z. {& J" ]0 [
<!--#include file="conn.asp"--> <br>
. z9 h5 ]: ]2 S7 {<b><a href="say.asp">发表帖子</a></b><br><br> <br>/ R) U8 H. @+ E1 T8 D. }
<div align="center"> <br>
2 F8 g0 d1 L4 F+ L1 `% J6 x<center> <br>+ f, X: W6 W' y, ~
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse; " bordercolor="#000000" width="100%" height="26"> <br>
' H1 B6 x2 ~# w<tr> <br>
1 i& B0 A- v' J) u6 I1 k8 T<td width="17%"><b>作者</b></td> <br>
2 J) `# @. Y" P6 Y<td width="83%"><b>主题</b></td> <br>
" K9 k; Y, Q$ r) a# r</tr> <br>- V0 @3 K2 N- I5 n8 w8 l; l! v
</table> <br>; B# K c/ \; d7 }5 h! q
</center> <br>! x1 V0 y4 l( L5 _* X* N3 h
</div><hr size="1"> <br>
3 n- _, n3 [+ w% b<%i=1 <br>/ T& H7 B# |6 T; P! C: d( y
set showbbs=conn.execute("select*from bbs order by id desc") <br>7 K( s1 W; E8 e6 {3 P U; _
do while not showbbs.eof <br>+ G+ a1 U4 ^6 E, ^
%> <br>
) K$ ^( a1 [- M% }" I% x<div align="center"> <br>7 o9 G0 \ x' N
<center> <br>- ^2 o. w9 I$ w S( }; {
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse; " bordercolor="#000000" width="100%" height="20"> <br>2 ?6 W, N3 P" h, J2 @7 `
<tr> <br> [# _8 b% v8 H1 V( F2 H
<td width="17%"><%=showbbs("name")%> </td> <br>. H$ p* c9 M# S' Q w$ J
<td width="83%"> <br>
, {4 `0 I F% q* ^8 j<a href="show.asp?id=<%=showbbs("id")%>"><%=showbbs("title")%></a></td> <br>7 r! d1 I t9 V3 e' Y4 D* ]" x9 I
</tr> <br>
0 i4 ?5 T: T% c4 N1 r5 d</table> <br>' W" r1 n& W# Z2 |. Y8 C
</center> <br>8 r: E3 V C# w2 [% m5 Y8 v% @9 {5 e
</div><hr size="1"> <br>
7 a! |! d u8 q, v2 j4 s7 f5 E& h( {<%i=i+1 <br>
( t& b+ n( i3 uif i>50 then exit do <br>
1 w* w3 Y+ O0 K$ b9 m6 N- ^showbbs.movenext <br>
+ F2 t+ J: S. |5 ILoop <br>; z% z: Y3 e) n1 U2 k P; G
showbbs.Close <br>7 b+ Z) u3 T& s, _7 v/ ^+ o
set showbbs=nothing <br>
5 R* B5 c* H% A) L* m% R! H7 T%> <br>2 {8 c, L* `/ y2 ^1 T- t1 q6 ]
<br>
4 |5 I k, D$ k4 \: m' u这个文件就不一句一句的讲了 <br>& i2 r$ y% J* ^ `) P% J$ Y% X
主要讲精华部分: <br>
, @; K& C b+ Fset showbbs=conn.execute("select*from bbs order by id desc") <br>
3 ^- X Q2 S, v" D$ H意思是:向数据库中的bbs数据表查询数据,并以id排顺序, <br>* m; C9 B) l- n- O. q
还有这么一句:<%=showbbs("name")%> <br># I" _3 k6 l! j# ?7 t
就是显示数据表中的name字段的数据,这里的showbbs就是set showbbs=……中的showbbs <br>2 ^1 Z& ]6 I7 R
代码中的i=1和i=i+1 <br>
# t8 u6 |/ e4 f' T A, Aif i>50 then exit do <br>
O3 A9 r2 ]- Y' T9 Eshowbbs.movenext <br>, V D/ u2 C& B7 W* L) y
Loop <br>
p1 A) H; Y7 ~) O9 Z7 `: _showbbs.Close <br>- x$ \9 A0 G/ t3 n g6 x
set showbbs=nothing <br>
" Q- H) h8 X8 H! I* C<br>
$ `0 _% I- |' c; `& q- I2 |; {+ _% g这几句属于循环语句,这里就不理他,理解了也不太好用,因为他只显示50张贴子! <br>, Q/ Y0 L( w# F
if i>50 then exit do中的50可以修改 <br>
3 d( O- E$ ~- t- q5 W3 f# x. y但我们做论坛必须把帖子分页,又因为分页这个语句太复杂,我想就不讲了,等这一个弄懂了才来弄 <br>
7 E% M# Y4 z0 I i还有一句很有用的: <br>8 ~8 W9 I" I F+ C* K0 o
<a href="show.asp?id=<%=showbbs("id")%>"><%=showbbs("title")%></a> <br>; i& Y g" z0 A9 Z. f
里面的超连接:show.asp?id=<%=showbbs("id")%>,注意:这里的超连接把帖子的id包含了, <br>
9 P! T" l0 n) s. C; a等一下在show.asp文件中就有用了 <br>
( }& B/ `% \$ l<br>
j3 ]9 H) a7 v5、show.asp <br>
@* R$ M$ S6 S: w9 _' Z源代码: <br>5 G( Y& \% `6 y
<br>
7 q& G" v- d' t/ t7 r<!--#include file="conn.asp"--> <br>
5 n' C: g+ s5 `5 z<%id=request.querystring("id")%> <br>
% Y/ a w8 e- n0 a<%set show=conn.execute("select*from bbs where id="&id&"")%> <br>: ?( o: m w# q0 }! O* u
<a href="index.asp"> <br>
" |3 Y+ K. Y" d9 h( |: m<b>回到首页</b></a><br><b><a href="say.asp">发表帖子</a></b><br><hr size="1"> <br>
; t, h8 D" I1 E0 S) b8 G<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" height="180"> <br>% J- e5 y8 f! S8 k# A& T; j7 B
<tr> <br> r3 s i6 |) O9 B& ]$ i: y
<td width="21%" height="22"><b>作者:</b><%=show("name")%></td> <br>
% g0 j' b1 Z( Q: n, c<td width="79%" height="22"><b>主题:</b><%=show("title")%></td> <br>3 T% K( Y! B V5 }; F
</tr> <br>
" s. }# l& ] a# K& r/ g<tr> <br>
& S$ y) o H! m$ |/ {+ A! I<td width="100%" colspan="2" height="158" valign="top"><b><br>内容:</b><%=show("body")%></td> <br>! S& }9 L) y% ]3 f+ U J( [
</tr> <br>
% ^1 c$ O6 |) E9 l! M5 S- {</table><%set show=nothing%> <br>/ \ F1 z) e6 k& i1 b$ K
<br>3 W7 k0 v/ V5 {) s+ }& T, K! b6 V# `$ B
劲语句---精华语句: <br>% \2 O: p2 U; e, ~0 M
id=request.querystring("id") <br>
7 C9 m7 Q# } D在讲解index.asp文件的后面已经说到:show.asp?id=<%=showbbs("id")这一句, <br>; y$ `$ D1 d3 U$ \: j& h2 V
id=request.querystring("id")就是把地址栏中的id的值读取下来, <br>& _- x0 T; t) E; ^3 {8 _4 f
因为index.asp文件中的超连接点击后,地址栏就为http://…………/show.asp?id=数字, <br>- W) o7 k' M5 N+ d$ p& z7 |
所以show.asp使用id=request.querystring("id")语句把数字读取下来 <br>
6 f( a" w7 N8 W- m: {! l' e/ v0 [于是接着使用:set show=conn.execute("select*from bbs where id="&id&"") <br>/ D& F- d! \# W& u% L
向数据表查询id为这时读取下来的数字的帖子,即where id="&id&" <br>" J! Q$ Q' j" L6 j3 n1 C! W: t3 \4 P
最后<%set show=nothing%> <br>
; {/ Q1 H; ~% I<br>
" o% [' U, H9 k$ D O2 D/ j* H6 R4 R好了,一个简单的DIY论坛就这样完成了 |
|