仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2759|回复: 20
打印 上一主题 下一主题

[学习教程] ASP教程之避免反复提交的子法式Asp版本

[复制链接]
逍遥一派 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-3 23:38:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
ASP脚本是采用明文(plain text)方式来编写的。法式|反复|反复提交   此为CGI子法式的一个Asp改编版本,个中利用FileSystemObject对象中的TextStream对象的ReadAll办法。因而,需求按期清算纪录文件floodcheck.ini。以避免影响速度。该处置办法的一个优点是留有Post者的ip地址纪录而且能使用于分歧类型的体系。(只需在您的处置代码处用Response.Redirect "你的处置Post Asp页")就能够了。
我改编的Asp代码
<%
'避免反复提交的asp代码
'floodcheck.ini文件格局
'最初宣布工夫|IP地址
'变量声明
'两个Post距离工夫,以分为单元
Dim Wait_between_Post
'发贴者IP地址
dim IPNumber
'本次Post工夫
Dim This_Post_Time
'前次Post工夫
Dim Last_Post_Time
Wait_between_Post=0.1
This_Post_time=Now

IPNumber=Request.ServerVariables("REMOTE_ADDR")

dim fso
Set fso=CreateObject("Scripting.FileSystemObject")
'1 forReading
Set f=fso.OpenTextFile("floodcheck.ini",1,true)
if f.atEndOfStream then
    f.close

    '2 forWritting
    Set f=fso.OpenTextFile("floodcheck.ini",2,true)
    f.WriteLine(this_Post_Time & "|" & IPNumber)
    f.close
    Set fso=Nothing
    '交换成您的处置代码
    response.write "转到到Post处置页或处置代码"
    response.end
    '交换成您的处置代码
else
   
    dim PostRec
    dim varTemp
    PostRec=f.ReadAll
    f.close
    dim objRegExp
    Set objRegExp=new RegExp
    objRegExp.Pattern=".+|" & IPNumber & ""
    objRegExp.Global = True            
      Set objMatches = objRegexp.Execute(PostRec)
    for each objMatch in objMatches
        varTemp=split(objMatch.Value,"|")
        last_post_time=cdate(varTemp(0))
        if dateadd("s",wait_between_post*60,last_post_time)>this_post_time  then '转化为秒
            set fso=nothing
            '交换成您的处置代码
            response.write "抱愧,您方才宣布过一篇文章,为了不反复宣布,请稍候前往" & wait_between_post & "分钟再宣布您的文章."
            response.end
            
            '交换成您的处置代码
        end if
    next
    '8 forAppending
    Set f=fso.OpenTextFile("floodcheck.ini",8,true)
    f.WriteLine(this_Post_Time & "|" & IPNumber)
    f.close
    set fso=nothing
    '交换成您的处置代码
    response.write "转到到Post处置页或处置代码"
    response.end
    '交换成您的处置代码
   
end if
%>
CGI原代码 摘自经典服装论坛http://202.106.124.52/zmy/ubb/Ultimate.cgi?action=intro
sub floodcheck
{ # blocks multiple posting in a short period
    $wait_between_posts = "0.2"; #  edit in the default number of minutes to wait
    $lastpost_list_length = 15; # edit in the number of records to keep     
    my $IPNumber  = $ENV{'REMOTE_ADDR'}; # the IP address
    my $this_post_time = time(); # secs since 1970
    open(LASTPOST, "$NonCGIPath/BanLists/Floodcheck.cgi"); # don't bother with error code if it doesn't exist  
    @last_post_list = <LASTPOST>;
    close(LASTPOST);
   
    foreach (@last_post_list)
    { # check if this user has posted already   
        if (/^$IPNumber/){
             ($junk,$last_post_time) = split(/\|!!\|/,$_); &nbsp</p>  asp可以使用微软的activeX 使得网页功能无比强大,不过安全性也较差,而且是基于的windows服务器,所以性能稳定性也一般
飘灵儿 该用户已被删除
沙发
发表于 2015-2-4 04:43:45 | 只看该作者
从事这个行业,那么你可以学ASP语言,简单快速上手,熟练dreamweav排版,写asp代码,熟练photoshop处理图片,打好基础就行了
精灵巫婆 该用户已被删除
板凳
发表于 2015-2-9 04:17:12 | 只看该作者
下载一个源代码,然后再下载一个VBScript帮助,在源代码中遇到不认识的函数或是其他什么程序,都可以查帮助进行解决,这样学习效率很高。
再现理想 该用户已被删除
地板
发表于 2015-2-26 21:08:05 | 只看该作者
我认为比较好的方法是找一些比较经典的例子,每个例子比较集中一种编程思想而设计的。
蒙在股里 该用户已被删除
5#
发表于 2015-3-8 17:55:06 | 只看该作者
先学习用frontpage熟悉html编辑然后学习asp和vbscript建议买书进行系统学习
简单生活 该用户已被删除
6#
发表于 2015-3-11 20:21:10 | 只看该作者
在平时的学习过程中要注意现学现用,注重运用,在掌握了一定的基础知识后,我们可以尝试做一些网页,也许在开始的时候我们可能会遇到很多问题,比如说如何很好的构建基本框架。
小魔女 该用户已被删除
7#
发表于 2015-3-16 15:23:28 | 只看该作者
那么,ASP.Net有哪些改进呢?
活着的死人 该用户已被删除
8#
发表于 2015-3-18 02:34:25 | 只看该作者
弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。
小妖女 该用户已被删除
9#
发表于 2015-3-25 09:43:28 | 只看该作者
从事这个行业,那么你可以学ASP语言,简单快速上手,熟练dreamweav排版,写asp代码,熟练photoshop处理图片,打好基础就行了
不帅 该用户已被删除
10#
发表于 2015-3-25 12:09:45 | 只看该作者
另外因为asp需要使用组件,所以了解一点组件的知识(ADODB也是组件)
admin 该用户已被删除
11#
发表于 2015-3-25 21:17:56 | 只看该作者
没有坚实的理论做基础,那么我们连踏入社会第一步的资本都没有,特别对于计算机专业的学生学好专业知识是置关重要的。在这里我侧重讲一下如何学习ASP,从平时的学习过程中。
金色的骷髅 该用户已被删除
12#
发表于 2015-4-7 07:57:02 | 只看该作者
学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。除此之外,课外时间一定要多参加一些社会实践活动,来锻炼自己的能力。
深爱那片海 该用户已被删除
13#
发表于 2015-4-11 08:10:11 | 只看该作者
另外因为asp需要使用组件,所以了解一点组件的知识(ADODB也是组件)
谁可相欹 该用户已被删除
14#
发表于 2015-4-12 12:15:08 | 只看该作者
没有坚实的理论做基础,那么我们连踏入社会第一步的资本都没有,特别对于计算机专业的学生学好专业知识是置关重要的。在这里我侧重讲一下如何学习ASP,从平时的学习过程中。
若天明 该用户已被删除
15#
发表于 2015-5-2 18:42:23 | 只看该作者
Request:从字面上讲就是“请求”,因此这个是处理客户端提交的东东的,例如Resuest.Form,Request.QueryString,或者干脆Request("变量名")
16#
发表于 2015-5-8 08:23:05 | 只看该作者
Server:这个表示的服务器,操作服务器的一些东西使用这个,如Server.Mappath转换服务器路径,Server.CreateObject实例化一个组件
再见西城 该用户已被删除
17#
发表于 2015-5-12 00:02:50 | 只看该作者
它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。
若相依 该用户已被删除
18#
发表于 2015-6-4 00:45:35 | 只看该作者
我认为比较好的方法是找一些比较经典的例子,每个例子比较集中一种编程思想而设计的。
愤怒的大鸟 该用户已被删除
19#
发表于 2015-6-11 03:14:02 | 只看该作者
它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。
柔情似水 该用户已被删除
20#
发表于 2015-6-11 17:41:06 | 只看该作者
封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-1 07:01

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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