下面这个是Move.asp文件的全文,专门用于移帖的,功能单一而比较小巧。

By admin at 2007-03-10 • 0人收藏 • 230人看过

下面这个是Move.asp文件的全文,专门用于移帖的,功能单一而比较小巧。

更重要的是它的成分很全:VBS脚本、JS脚本、纯HTML标记、数据库操作、表单处理...都有,哈哈哈,正好用于基础ASP代码教学!

(注意:凡是源代码用红色突显,凡是偶讲解的话就是黑色文字)

<!-- #include file="Setup.asp" -->

这行是在置入包含文件Setup.asp。一些公用子程序、至关重要的全局处理,都做在这个Setup.asp里,让大多数普通asp文件在开头置入它,好处是削减普通文件的大小。但同一个asp文件,所置入的包含文件不能太多,否则会大大减慢打开速度,弄得得不偿失(有些开发插件特爱搞包含文件的家伙注意了,虽然你的习惯有助安装但却使主系统额外减速)

<% 这个符号是VBS脚本区的开始标记。被<%、%>所包夹的区域,只在服务端执行,客户端是看不到的(看到的只是执行后的结果)。无怪乎想“偷”ASP编程源码的人,在客户端是偷不到VBS脚本区原内容的,只能去下载原包或找作者索要。

ThreadID=int(Request("ThreadID"))

这是在读取表单提交上来的主题编号(ThreadID)。一般表单提交变量(Request...)常默认为优先按文本处理,本行给它套个取整函数int()(也可以套cint()效果一样)后就强制按数字型处理了。因为ThreadID作为编号肯定是数字,若对它赋文本值就可能报“类型不匹配”错。

ForumID=Conn.Execute("Select ForumID From [BBSXP_Threads] where id="&ThreadID)(0)

这行是在读取ThreadID号主题的版块编号(ForumID)。跟上一行读取自表单不同,本行要从库里读取。Conn.Execute("...")(0)是标准的一步式读库语句,其中的“Select 字段 From [表名] where 条件”则是标准的Sql查询表达式。

Sql="select * from [BBSXP_Forums] where id="&ForumID&""

这行也是个查询表达式,它是为下边的批量读取多个字段值做准备。它要读的表是BBSXP_Forums(版块信息表)。

Set Rs=Conn.Execute(Sql)

这行很常见,它是在执行读库指令,将符合Sql表达式的字段值们送入Rs变量集内。

ForumName=Rs("ForumName")
ForumLogo=Rs("ForumLogo")
FollowID=Rs("FollowID")

上面这几行,都是将Rs字段变量赋给相对应的VBS变量。其中ForumName是版块名、ForumLogo是版块坛标、FollowID是版块所属的类别版块(也叫一级论坛)编号。

Rs.close 这是关闭读库进程语句。一定要及时关哦,以释放缓存等资源、并且防黑。

top 这是在调用显示顶部Logo区内容的子程序。名为top的公用子程序不在本文件中,而是放在Setup.asp包含文件中。

Sql="Select * from [BBSXP_Threads] where ID="&ThreadID&" and ForumID="&ForumID&""
Set Rs=Conn.Execute(sql)

上面这两行你一定能看懂了,呵呵又在开库读东西了... 注意这回要读的表可跟前边不一样,换成BBSXP_Threads(主题信息表)了。

%> 已经不菜的你肯定认识它了,VBS脚本区结束标记。


<script> 呵呵这位大将又登场了,你一定要认识它,JS脚本区开始标记!

if ("<%=ForumLogo%>"!=''){Logo.innerHTML="<img border=0 src=<%=ForumLogo%> onload='javascript:if(this.height>60)this.height=60;'>"}

这是行标准的JS判断语句:如果版块坛标有值(!=''的意思是“不等于空串”),则装载输出版块坛标的语句。其中的JS载入事件处理子句“onload='javascript:if(this.height>60)this.height=60;'”很有名,n多站长在求它!因为它的功能是如果图片高度大于60就等于60...原来是自动限幅语句啊。

</script> 你也应知道了,它是JS脚本区结束标记。记住,网页中,绝大多数标记都是成对出现的(如果出现一个<xxx>,后面若干距离内就有一个</xxx>来结尾)。

顺便补充几句:

*一般情况下,<script>、</script>所包夹的JS脚本都是默认在客户端执行的,这跟被<%、%>包夹的VBS脚本不一样。故盗JS脚本的源代码易如反掌。

**还有一些公用性强的JS脚本,是做在以js为扩展名的单独文件里。要盗js文件里的代码,只需将所看页面另存为文件到本地,js文件就乖乖地另存出来。但此法对asp文件仍然不行。


 <table border=0 width=<%=BBSWidth%> align=center cellspacing=1 cellpadding=4 class=a2>

注意,进入HTML区了(也称静态区),既不在<script></script>内、又不在<% %>内的代码,那就是HTML代码喽。常言道ASP文件由三大部分所组成,哪三大?你应该知道了。

上面这行<table...>就是网页表格的开始标记。其中“border=0”是令表格线的粗细为零而不显示;“width=<%=BBSWidth%>”是将表格的宽度取为变量BBSWidth的值(来自数据库),这在官方则是定死的width=100%(查国内各大论坛已知的都是搞的定死表宽),哈哈咱Add这方面真是聪明又伟大啊!“align=center”是表格居中、“cellspacing=1”是定单元格间距、“cellpadding=4”是定单元格边距、“class=a2”是取风格定义(a2是段颜色设置的CSS样式名,具体代码写在css文件中,这里只是调用)。

  <tr class=a3> 表格中一行的开始标记。“class=a3”是调用另一种CSS样式。

   <td height=25>&nbsp;<img src=images/Forum_nav.gif>&nbsp; <%ClubTree%> → <%ForumTree(FollowID)%><%=ForumTreeList%> <a href=ShowForum.asp?ForumID=<%=ForumID%>><%=ForumName%></a> → <a href="ShowPost.asp?ThreadID=<%=ThreadID%>"><%=Rs("Topic")%></a> → 移动帖子</td>

<td>是表格中一个单元格的开始标记。“height=25”是定该格高度值。“&nbsp;”代表一个空格。“<img src=images/Forum_nav.gif>”是一张图片的标记。哪几个<%%>包夹的内容都是执行服务端的子程序、或者显示VBS变量,属于夹杂在HTML代码中的VBS飞地。“<a href=...>...</a>”就是超链接的标记啦...

上面这行<td>...</td>所显示出的单元格内容,就是如下样子(从偶论坛上贴出为例):

  BBSxp-Add(增强版)演示/教学论坛 → ≡娱乐/休闲区≡ → 商易仿淘宝多用户商城V4.0.1 → 移动帖子

你要想成为高手的话,就应首先会解读源代码,并能在记事本里编辑这些源代码,使之达到你想显示出的结果来。

  </tr>
 </table><br>

上面那两个带反斜杠/的就不用说了吧?它们分别是谁的结束标记你自己脱口而出。那个“<br>”是软回车的标记。所谓软回车就是只换行不换段的小回车(在键盘用Shift+Enter打出的那种)。

<form method="POST" action=Manage.asp>

这是表单的开始标记。表单用于人机交互,从客户端输入某些参数值给服务端。“method="POST"”是指定POST这种变量传递方式(一般都指定这种,隐蔽而安全)。“action=Manage.asp”是指定服务端接收程序是Manage.asp(由它来分析处理所提交的值)。

<input type=hidden value="Move" name=menu>
<input type=hidden value="<%=ThreadID%>" name="ThreadID">

这两个都是表单中的文本输入框标记。“type=hidden”是说类型为隐藏(也就是不显示出来,用于悄悄传递某些变量)。“value=...”是给出默认值,既然是隐藏型的表单那就不是人输的,必定事先设好要传递的值。“name=...”是定义要传递(提交)的变量名。

如果表单这里的name=xxx,则提交上去后,在服务端接收到的就是Request("xxx"),这个在本文开头第3行不是碰到过的吗?复习复习...(提交变量的模样)。

<table width=50% border=0 cellspacing=1 cellpadding=2 align=center class=a2>
<tr><td class=a1 height=25 align=center>移动帖子</td></tr><tr>
<td height=25 valign=top class=a4 align=center>

又开始一段表格了,这个你自己分析分析...(表格、表格行、单元格的这三大标记什么样子?给对上号!)

<p><br>

那个<p>是段落的开始标记。也称硬回车标记,因为要换段的(相当于按硬回车Enter键)。

 <select name=AimForumID> 这是表单中选择框的开始标记。选择框也称下拉框。

<option selected value="">将主题移动到...</option>

这是选择框中一行选项的标记。“selected”表示这行选项是默认的(一刷新页面就首先显示这行,下拉菜单中的其它选项就自动折叠隐蔽起来)。

<%
Rs.close
%> 不用讲了你已知道。

<%BBSList(0)%><%=ForumsList%> 执行BBSList()子程序(给版块列表),显示其结果ForumsList变量的值(即那个列表)。

</select>&nbsp;&nbsp;

结束选择框的显示,并跟两个空格。

<input type=submit value=" 确 定 "> <br>

这是个提交按钮(类型=submit就是用于提交的)。

<br></td></tr></table>
</form>
<%htmlend%>

你毕业啦,给偶说说这尾部几个<...>标记都表啥意思?说不出来者你智商太低!不配做站长。

原创:汤老师(wwwbigbug)

登录后方可回帖

登 录
信息栏
购买PHP虚拟主机 / VPS

Carbon Forum是一个基于话题的高性能轻型PHP论坛

下载地址:Carbon Forum v5.0.1
QQ群:12607708(QQ我不常上)

donate

手机支付宝扫描上方二维码可向本项目捐款

Loading...