网络编程
位置:首页>> 网络编程>> Asp编程>> PJBlog3优化——单击自动输入验证码

PJBlog3优化——单击自动输入验证码

作者:dudo 来源:dudo博客 发布时间:2009-05-17 11:03:00 

标签:pjblog,优化,验证码

从PJBlog 2.7开始,验证码的功能就很好很强大了,但是同时也给手工输入带来了不小的麻烦——经常输错。之前我写了一个《自己写的一个PJBlog中可以双击输入验证码的修改》,不过在那篇文章里用的方法是在页面底部加一个iframe来实现的双击,在PJBlog 3里面已经有了AJAX的功能,所以完全不用那么麻烦了。

一、不用担心失去保护机制

    当然很多人的疑问就是,这样做的话似乎验证码的保护机制就完全失去了意思。其实不然,所有的灌水机都是一段程序代码,由于验证码还是以图片的形式存在,只有点击之后才能获得数字形式,所以灌水机很难轻松模拟这个单击的动作。当然,对于手动的灌水行为无论是哪种验证码保护方式都是避免不了的,除非你限制发表留言的间隔时间。

二、改进步骤:

1、在common/ajax.js的最后面添加如下代码:

 

function get(url,obj1,obj2)   
{   
           
      var xmlhttp = CreateXMLHTTP();   
        if(!xmlhttp)   
      {   
         alert("你的浏览器不支持XMLHTTP!!");   
           return;   
       }   
     xmlhttp.onreadystatechange=requestdata;   
       xmlhttp.open("GET",url,true);   
     xmlhttp.send(null);   
       function requestdata()   
        {   
            
              fopen(obj1);   
              echo(obj1,"<img src='images/loading.gif'>");   
                if(xmlhttp.readyState==4)   
             {   
                 if(xmlhttp.status==200)   
                   {   
                     if(obj1!=obj2){fclose(obj1);};   
                        $(obj2).value = xmlhttp.responseText;   
                        
                  }   
             }   
            
      }   
}

2、在根目录下的Action.asp中找到

If request.QueryString("action") = "checkAlias" then  

替换为

'-------------- [code] -----------------   
If request.QueryString("action") = "code" Then  
  If ChkPost() Then  
     Dim code   
      code = Session("GetCode")   
     Response.Write code   
   End If  
'-------------- [Alias] -----------------   
ElseIf request.QueryString("action") = "checkAlias" then  

3、更改模板文件:在template/static.htm中找到(注:为了排版方便,下面的代码有断行和空格)

<input name="validate" type="text" size="4" class="userpass" maxlength="4"    
onfocus="this.select()"/>  
                  <img id="vcodeImg" src="about:blank" onerror="this.onerror=null;this.src='common/getcode.asp?s='+Math.random();"  
                            alt="验证码" title="看不清楚?点击刷新验证码!" style="margin-right:40px;cursor:pointer;width:40px;height:18px;margin-bottom:-4px;margin-top:3px;"  
                            onclick="src='common/getcode.asp?s='+Math.random()"/>

  替换为

<input id="validate" name="validate" type="text" size="4" class="userpass" maxlength="4"  
 onfocus="this.select()" onclick="get('action.asp?action=code','c','validate')" />    
                   <img id="vcodeImg" src="about:blank"    
                             onerror="this.onerror=null;this.src='common/getcode.asp?s='+Math.random();"  
                            alt="验证码" title="看不清楚?点击刷新验证码!" style="margin-right:40px;cursor:pointer;   
                            width:40px;height:18px;margin-bottom:-4px;margin-top:3px;"   
                            onclick="src='common/getcode.asp?s='+Math.random()"/><span id="c">提示:单击验证码</span>

如果你使用的是动态或者半静态模式,那么你需要在class/cls_article.asp中将上面的代码替换为

<input id="validate" name="validate" type="text" size="4" class="userpass" maxlength="4"  
 onfocus="this.select()" onclick="get('action.asp?action=code','c','validate')" />  
 <%=getcode()%><span id="c">提示:单击验证码</span>

 至此,修改完毕了。如果大家有什么好的意见可以给我留言:)

0
投稿

猜你喜欢

  • CentOS mysql安装还是很常用的软件,我就学习如何CentOS mysql安装,在这里拿出来和大家分享一下,希望对大家有用。Cent
  • 阅读上一篇教程:WEB2.0网页制作标准教程(9)第一个CSS布局实例如果我们想在3列布局的最后加一行页脚,放版权之类的信息。就遇到必须对齐
  • 我们在做表单的时候经常会使用到这样的结构:<fieldset>     <lege
  • 相信大家平时都有这样的经历:页面上有一个链接指向服务器一个Word文件,当客户端机器有安装Office时,点击链接将调用Word打开浏览;当
  • 说到Javascript的类继承,就必然离不开原型链,但只通过原型链实现的继承有着不少缺陷。无参数类继承的问题先看一段示例代码,实现B继承于
  • ASP * 页制作中连接Oracle数据库的例子,下面这段代码能够显示,当前用户所能够看到的所有的用户和表,有兴趣的, 可以把每个表的内容上
  • MapPathMapPath 方法将指定的相对或虚拟路径映射到服务器上相应的物理目录上。语法Server.MapPath( Path ) 参
  • 感谢LeXRus为我们带来他费心制作的教程,这是一个非常棒的动画教程,教程中不仅有 DW MX 2004 的操作方法,还有一些代码的写作和方
  • 就javascript来说,iframe创建的框架和frameset创建的框架一样。这里有个关系图,做个笔记。图片源自《javascript
  • 如何用Cookie进行登录验证?很简单,看看这两个文件:login.htm请注册登录随风起舞<FORM ACTION=&qu
  • 大家在使用ASP设计用户提交表单的时候,如果涉及到网址输入框,那么相信都有可能会用到这个效果,使用正则表达式验证网址合法性。代码如下:<
  • 每个产品诞生的背后都凝结着一位或是多位设计师的心血,在产品的诞生过程中文化、科技、环保、创意等这些方方面面的细节集结成一个绚丽的故事,因为有
  • 1. 用Dreamweaver 4.0制作闪动的Flash按钮选择菜单Insert→Interactive Images→Flash But
  • 注:此处“重复”非完全重复,意为某字段数据重复HZT表结构IDintTitlenvarchar(50)AddDatedatetime数据一.
  • 概要:本文主要描述XHTML中相对定位和绝对定位各自的本质、用法、区别和两者之间的关系。以及使用CSS的Left、Right、Top、Bot
  • 最近在着手支付宝个人版改版的项目,正好在一些国内知名的SNS网站上分别注册了帐户进行体验。显然一点,国内的SNS都带有Facebook的影子
  • 前端时间写了一篇《利用CSS框架进行高效率的站点开发》,有不少朋友问我相关的问题。很早5key就在公司进行CSS框架的架构,也对不少朋友提出
  • (1)更有意义的搜索 数据可被XML唯一的标识。没有XML,搜索软件必须了解每个数据库是如何构建的。这实际上是不可能的,因为每个数据库描述数
  • 设计首页的第一步是设计版面布局。就象传统的报刊杂志编辑一样,我们将网页看作一张报纸,一本杂志来进行排版布局。虽然 * 页技术的发展使得我们开
  • 近段时间看了一些论坛上面关于分页的ASP程序依然有许多的关注者,但里面只有代码,没有详细的解释,对于初学者来说,这样总是得不到真正的掌握,此
手机版 网络编程 asp之家 www.aspxhome.com