自己写的一个PJBlog中可以双击输入验证码的修改
作者:dudo 来源:dudo博客 时间:2009-05-17 10:51:00
看到有人用的PJBlog使用的是自动填写验证码,这样其实也不使用验证码基本上没有什么区别,很容易被 * ,因此在参照许多修改的基础上,找到了一个折衷的方法,既可以方便地输入验证码又可以较好地避免恶意留言。
不说废话,下面来看过程吧:
一共三处改动:
1、新建一个asp文件,这里给他起个名字叫code.asp,然后写入如下代码:
<body>
<input type="text" id="tempGetCode" value="<%=Session("GetCode")%>" >
</body>
2、在footer.asp中的最后面,</body>标签之前下添加如下代码
<!--以上为原代码以下是自定义代码:双击自动填写验证码-->
<script>
//获得验证码
function getValidateCode(){
var oValidate;
oValidate = document.getElementById("validate")
oValidate.value =parent.getCode.document.getElementById("tempGetCode").value;
}
</script>
<iframe frameborder="no" style="display:none" src="code.asp" name="getCode" id="getCode"></iframe>
<!--自定义代码到此结束,以下为原程序-->
3、修改目录/class下的cls_article.asp,将原代码
<td align="right" width="70">
<strong>验证码:</strong></td><td align="left" style="padding:3px;">
<input name="validate" type="text" size="4" class="userpass" maxlength="4" />
<%=getcode()%></td>
修改成
<td align="right" width="70">
<strong>验证码:</strong></td><td align="left" style="padding:3px;">
<input id="validate" name="validate" type="text" size="4" class="userpass" maxlength="4" ondblclick="getValidateCode()" />
<%=getcode()%></td>
这里一定要注意添加id="validate"否则在FF2.0不能达到预期效果
这里也有一个关于双击填写的http://bbs.pjhelp.cn/viewthread.php?tid=18851&highlight=%D1%E9%D6%A4%C2%EB
我觉得自动填写验证码很容易让人恶意刷屏灌水,双击的话既能减少工作量又能防水呢。
后续问题
存在一个问题就是,当你点击图片切换时验证码发生改变,而你双击输入框却还是第一次加载时的验证码。这是因为<iframe />没有自动刷新的缘故。要想避免这种情况的发生其实也比较简单,不过可能会再修改较多的代码。因此我这里没有考虑这个问题。如果我找到简单实现的方法我会及时在本方面修正。