诚毅小家|集美大学生活【集美大学,诚毅学院,水产学院,师范学院,美术学院,财经学院,体育学院,航海学院,集美学村,石鼓路,龙舟池】

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 846|回复: 1

[分享]建一个简单的论坛-DIY版

[复制链接]
发表于 2005-3-31 15:28:00 | 显示全部楼层 |阅读模式
大家在网上看到各种各样的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建立文件是可以先建立文本文档,他的格式为&quot;文件名.txt&quot;,我们只需把它改为&quot;文件名.asp&quot; <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&lt;% <br>: _& c: f* T, B9 R) \2 @% p& p, a
Server.scriptTimeout=&quot;10&quot; <br>
. Q: M2 S% z4 \" Z$ B! o, t/ rconnstr=&quot;DBQ=&quot;+server.mappath(&quot;═bbs═.mdb&quot;)+&quot;;DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};&quot; <br>( N1 Y* y( d' h: q
set conn=Server.CreateObject(&quot;ADODB.connection&quot;) <br>
! G' l0 \9 I4 `conn.open connstr <br>
- ~* \6 f3 }- ?0 ]& A. w) {%&gt; <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&lt;form method=&quot;POST&quot; action=&quot;save.asp&quot;&gt; <br>5 ?" ?1 \6 V8 [: K+ J4 H; w' }
&lt;p&gt;大名:&lt;input type=&quot;text&quot; name=&quot;name&quot; size=&quot;20&quot;&gt;&lt;/p&gt; <br>
% }! k7 u) M9 e9 @&lt;p&gt;标题:&lt;input type=&quot;text&quot; name=&quot;title&quot; size=&quot;91&quot;&gt;&lt;/p&gt; <br>
7 ^0 m, d) h2 f&lt;p&gt;内容:&lt;/p&gt; <br>
5 e" ], b; d8 h: L) B/ f# f8 m. b&lt;p&gt;&lt;textarea rows=&quot;11&quot; name=&quot;body&quot; cols=&quot;97&quot;&gt;&lt;/textarea&gt;&lt;/p&gt; <br>" \) t8 i8 y# H; |9 \+ R* V
&lt;p&gt; &lt;/p&gt; <br>
% h' j: T- p6 e) x) f&lt;p&gt;&lt;input type=&quot;submit&quot; value=&quot;提交&quot; name=&quot;B1&quot;&gt;&lt;input type=&quot;reset&quot; value=&quot;重置&quot; name=&quot;B2&quot;&gt;&lt;/p&gt; <br>
# T. X3 ~' `4 H&lt;/form&gt; <br>
* \. Z1 w% n- q, s, G, e9 y& G; S大家应该看得懂的,这个根本就是html语法,对的,根本就是,这个只是发表的界面 <br>( H# ^$ T% s/ f) E
不过要注意这一句&lt;form method=&quot;POST&quot; action=&quot;save.asp&quot;&gt;,他把用户所填的内容发送至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&lt;!--#include file=&quot;conn.asp&quot;--&gt; <br>
+ e/ Y' R* {& c: A! L! e  F&lt;%name=Replace(Request.Form(&quot;name&quot;),&quot;'&quot;,&quot;''&quot;) <br>
/ q8 a( H* n' m& z: _title=Replace(Request.Form(&quot;title&quot;),&quot;'&quot;,&quot;''&quot;) <br>0 {% o  S. y. }$ o
body=Replace(Request.Form(&quot;body&quot;),&quot;'&quot;,&quot;''&quot;) <br>" x( H6 x5 K( @% Q  a# ^. b* l1 r
%&gt; <br>
" h( y( G* i& D8 V. W) A1 N3 w0 ?&lt;%if name=&quot;&quot; or title=&quot;&quot; or body=&quot;&quot; then%&gt; <br>
0 N0 n; _" n( I3 g/ X6 j请&lt;a href=&quot;****:history.go(-1)&quot;&gt;后退&lt;/a&gt;填写完整资料,你才能发表帖子! <br>1 B- x; X# v# X, ~# Q8 y
&lt;%else%&gt; <br>0 g4 I/ O7 \, o- S
&lt;%set savebbs=conn.execute(&quot;insert into bbs(name,title,body)values('&quot;&name&&quot;','&quot;&title&&quot;','&quot;&body&&quot;')&quot;)%&gt; <br>
/ A2 ?# O$ T# N2 N6 Z1 Y$ ?' ]发表成功!&lt;a href=&quot;index.asp&quot;&gt;查看帖子&lt;/a&gt; <br>
2 G4 _6 h) t3 {  O" R3 @, z&lt;%end if <br>4 W, ?; e1 Q) s* B- L
set savebbs=nothing <br>3 q. q7 @& z: g1 X  I2 j
%&gt; <br>
: K3 N) l0 M: f; K' w/ g! K<br>" b& J4 ^. W1 ^. C& }4 [* c
第一句:&lt;!--#include file=&quot;conn.asp&quot;--&gt;,意思是插入conn.asp文件,即与数据库进行连接! <br>
& {/ l  b! u2 {4 E2 o8 Fasp语句必须用&lt;% %&gt;这个格式包含起来,而插入文件的语句就不用, <br>$ ^" s) a  g6 g: ]8 _
接下来几句: <br>
  |+ O  u6 ?9 H: _" H2 Iname=Replace(Request.Form(&quot;name&quot;),&quot;'&quot;,&quot;''&quot;) <br>$ Y7 |: z! T/ B$ E( [4 j
title=Replace(Request.Form(&quot;title&quot;),&quot;'&quot;,&quot;''&quot;) <br>
( p$ ^8 w  P5 C- |# Q& P- M+ i* sbody=Replace(Request.Form(&quot;body&quot;),&quot;'&quot;,&quot;''&quot;) <br>
( `4 W3 J* M, x; C8 q* a<br>
2 ?$ o3 v* J8 Q1 j! V# m4 ~2 g“Replace(Request.Form(&quot;name&quot;),&quot;'&quot;,&quot;''&quot;)”意思是接收表单中名为name的文本框发来的数据, <br>
7 z7 S$ {4 h' B% P而“name=Replace(Request.Form(&quot;name&quot;),&quot;'&quot;,&quot;''&quot;)”则是把发来的数据储存在name变量中, <br>+ N' F3 b' l; G7 O, p
如果你这样:“abc123=Replace(Request.Form(&quot;name&quot;),&quot;'&quot;,&quot;''&quot;)” <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=&quot;&quot; or title=&quot;&quot; or body=&quot;&quot; then <br>
* D2 b9 I$ }( E7 N1 D判断name、title和body变量中是否没有填写内容,即为&quot;&quot;,如果这样,就执行这一语句: <br>
% D3 J+ H3 b& E/ e* P“请&lt;a href=&quot;****:history.go(-1)&quot;&gt;后退&lt;/a&gt;填写完整资料,你才能发表帖子!” <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&quot;&lt;%else%&gt;&quot;就是说“当if……then不成立(即是说所有内容都已经填写)”,就执行语句: <br>. M# O1 t% l0 C, j' J8 }
“&lt;%set savebbs=conn.execute(&quot;insert into bbs(name,title,body) values('&quot;&name&&quot;','&quot;&title&&quot;','&quot;&body&&quot;')&quot;)%&gt; <br>4 E2 w9 Q) H, w2 ], Q, U0 F
发表成功!&lt;a href=&quot;index.asp&quot;&gt;查看帖子&lt;/a&gt;” <br>
. K& _5 S! k8 E7 K: o" M<br>
% F/ b' s( B* I; O+ m&quot;set save=conn.execute&quot;属于固定的语句,不过savebbs可以自己修改,&quot;=&quot;后面的就难解释了: <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('&quot;&name&&quot;','&quot;&title&&quot;','&quot;&body&&quot;')&quot;) <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,向量用格式'&quot;&name&&quot;'表示 <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(&quot;insert into bbs(name,title,body) values('&quot;&name&&quot;','&quot;&title&&quot;','&quot;&body&&quot;')&quot;) <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
&lt;!--#include file=&quot;conn.asp&quot;--&gt; <br># H" C0 p; \/ y
&lt;b&gt;&lt;a href=&quot;say.asp&quot;&gt;发表帖子&lt;/a&gt;&lt;/b&gt;&lt;br&gt;&lt;br&gt; <br>
9 G& x, Q2 R$ ^5 ~0 g8 P&lt;div align=&quot;center&quot;&gt; <br>
5 Y" U# M7 e2 u( U&lt;center&gt; <br>
- b% S! b3 H5 ?! @&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; style=&quot;border-collapse: collapse; &quot; bordercolor=&quot;#000000&quot; width=&quot;100%&quot; height=&quot;26&quot;&gt; <br>
4 V  k2 U1 v! T% C9 Q; ^3 H: e&lt;tr&gt; <br>
9 R& |$ C, `. R) k# v  q* e&lt;td width=&quot;17%&quot;&gt;&lt;b&gt;作者&lt;/b&gt;&lt;/td&gt; <br>
) u7 C- g9 D" @, M6 X( O9 q&lt;td width=&quot;83%&quot;&gt;&lt;b&gt;主题&lt;/b&gt;&lt;/td&gt; <br>
$ v7 n5 a% S. Z; l* Z&lt;/tr&gt; <br>
4 G; |4 |: P: G: J, r, {# b&lt;/table&gt; <br>
3 U" X5 d% i. R1 L) n/ ?&lt;/center&gt; <br>
$ F/ s  K) d5 P8 @9 D# ^&lt;/div&gt;&lt;hr size=&quot;1&quot;&gt; <br>
6 x, U8 h5 T0 y. i6 {- d&lt;%i=1 <br>: U4 C$ ^5 @) Z- ?
set showbbs=conn.execute(&quot;select*from bbs order by id desc&quot;) <br>
* f3 W, F! B4 x7 ~# hdo while not showbbs.eof <br>- t& X" k. w3 H% Z9 {7 ]
%&gt; <br>2 v- I6 U( ~) ]% P; @8 ]8 [
&lt;div align=&quot;center&quot;&gt; <br>4 S6 y+ q1 n8 W4 Z! z0 s
&lt;center&gt; <br>  M$ F! P/ n& C( T& c
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; style=&quot;border-collapse: collapse; &quot; bordercolor=&quot;#000000&quot; width=&quot;100%&quot; height=&quot;20&quot;&gt; <br>1 l- y: m% p" W2 M# o0 X
&lt;tr&gt; <br>* Q3 F! y$ K- [# `
&lt;td width=&quot;17%&quot;&gt;&lt;%=showbbs(&quot;name&quot;)%&gt; &lt;/td&gt; <br>
: h# x% N: S+ ~&lt;td width=&quot;83%&quot;&gt; <br># Y+ c: k3 s$ u* n
&lt;a href=&quot;show.asp?id=&lt;%=showbbs(&quot;id&quot;)%&gt;&quot;&gt;&lt;%=showbbs(&quot;title&quot;)%&gt;&lt;/a&gt;&lt;/td&gt; <br>+ ]3 _# s+ I. h$ j& a
&lt;/tr&gt; <br>2 I3 p7 e2 Y9 `
&lt;/table&gt; <br>; B7 P" T, R: f. \  e2 d' F+ ~
&lt;/center&gt; <br>
, O% D$ p# V% c  C3 T. U&lt;/div&gt;&lt;hr size=&quot;1&quot;&gt; <br>- `! l  F2 `; V. T- @
&lt;%i=i+1 <br>( c. ?( x9 \9 c6 z
if i&gt;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 _%&gt; <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(&quot;select*from bbs order by id desc&quot;) <br>
. H' \# y$ v9 v( u意思是:向数据库中的bbs数据表查询数据,并以id排顺序, <br>0 N+ C( c! i4 ~7 X7 P- f6 a
还有这么一句:&lt;%=showbbs(&quot;name&quot;)%&gt; <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&gt;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&gt;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/ `/ {&lt;a href=&quot;show.asp?id=&lt;%=showbbs(&quot;id&quot;)%&gt;&quot;&gt;&lt;%=showbbs(&quot;title&quot;)%&gt;&lt;/a&gt; <br>
: A: [( H/ V) r$ S% P里面的超连接:show.asp?id=&lt;%=showbbs(&quot;id&quot;)%&gt;,注意:这里的超连接把帖子的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&lt;!--#include file=&quot;conn.asp&quot;--&gt; <br>  W' `4 ?8 N/ r3 j
&lt;%id=request.querystring(&quot;id&quot;)%&gt; <br>4 v) h$ X2 R* T& p
&lt;%set show=conn.execute(&quot;select*from bbs where id=&quot;&id&&quot;&quot;)%&gt; <br>& R' K8 B$ S1 _1 P; @
&lt;a href=&quot;index.asp&quot;&gt; <br>
  U$ f. t* p0 y, K! a&lt;b&gt;回到首页&lt;/b&gt;&lt;/a&gt;&lt;br&gt;&lt;b&gt;&lt;a href=&quot;say.asp&quot;&gt;发表帖子&lt;/a&gt;&lt;/b&gt;&lt;br&gt;&lt;hr size=&quot;1&quot;&gt; <br>
; d; V* ]% R$ |' j; X&lt;table border=&quot;1&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; style=&quot;border-collapse: collapse&quot; bordercolor=&quot;#111111&quot; width=&quot;100%&quot; height=&quot;180&quot;&gt; <br>
  s# ]- f4 X( K$ {& m' y$ ]&lt;tr&gt; <br>
6 A/ ?# E3 B$ k; E/ L. j4 w5 m&lt;td width=&quot;21%&quot; height=&quot;22&quot;&gt;&lt;b&gt;作者:&lt;/b&gt;&lt;%=show(&quot;name&quot;)%&gt;&lt;/td&gt; <br>4 \& {$ H+ S7 s4 p
&lt;td width=&quot;79%&quot; height=&quot;22&quot;&gt;&lt;b&gt;主题:&lt;/b&gt;&lt;%=show(&quot;title&quot;)%&gt;&lt;/td&gt; <br>
9 a+ r! G  I/ }; t! z&lt;/tr&gt; <br>2 u. R6 N1 v# z
&lt;tr&gt; <br>
% g6 r: C: X) X4 ~  D&lt;td width=&quot;100%&quot; colspan=&quot;2&quot; height=&quot;158&quot; valign=&quot;top&quot;&gt;&lt;b&gt;&lt;br&gt;内容:&lt;/b&gt;&lt;%=show(&quot;body&quot;)%&gt;&lt;/td&gt; <br>
5 H% ~$ |# ~* Q( C&lt;/tr&gt; <br>
' ]# l- h, a- ~2 v2 S&lt;/table&gt;&lt;%set show=nothing%&gt; <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(&quot;id&quot;) <br>! Q8 c2 R( J% ]0 `1 a
在讲解index.asp文件的后面已经说到:show.asp?id=&lt;%=showbbs(&quot;id&quot;)这一句, <br>% e9 D- I9 k! G# u, {1 V$ K" I
id=request.querystring(&quot;id&quot;)就是把地址栏中的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(&quot;id&quot;)语句把数字读取下来 <br>7 _3 z6 ~, m: _- |
于是接着使用:set show=conn.execute(&quot;select*from bbs where id=&quot;&id&&quot;&quot;) <br>
( q% a) i7 [: d1 \8 @* h, c向数据表查询id为这时读取下来的数字的帖子,即where id=&quot;&id&&quot; <br>
# |' c' I4 M& s/ U  M最后&lt;%set show=nothing%&gt; <br>
; r9 J9 \7 A1 ~$ a% _$ M/ Z<br>
8 }# A/ M7 v; Q好了,一个简单的DIY论坛就这样完成了
发表于 2005-3-31 16:38:00 | 显示全部楼层
高手不看也懂,我不懂
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|诚毅小家 ( 小家社区工作室 闽ICP备05007965号 )

GMT+8, 2025-1-22 08:28 , Processed in 0.071345 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表