首页 | 心情日记 | 建站心得 | 编程技术 | 大盘分析 | 股市信息 | 学习园地 | 电脑技巧 | 物流外贸 | 另类其它 | 站长推荐 | 给我留言 | 相册

用户登陆
用户:
密码:
 
不保存保存一天
保存一月保存一年

站点日历
73 2024 - 4 48
 123456
78910111213
14151617181920
21222324252627
282930


站点统计

最新评论

日志搜索

 标题   内容


点击显示验证码的实现 通过点击显示验证码防止广告
未知 点击输入框显示验证码的修改方法   [ 日期:2009-12-24 23:46:21 ]   [ 来自:本站原创 ]

海外邮件中继,海外退信中继,美国高速VPS,不限流量VPN,邮局维护和管理,邮件网关,EMOS邮件中继,POSTFIX邮件中继,Winwebmail邮件中继,Winmail邮件中继,DBMail邮件中继,JDMail邮件中继,Exchange邮件中继,MDaemon邮件中继 淘宝店:http://shantan.taobao.com 云邮科技官网:www.yunrelay.com

【字体设置:
这个功能的修改是我最喜欢的一个,因为很人性化,按照浏览习惯,访客们一般都是进入日志页后把日志看完才会去发表评论,但PJblog的验证码是打开日志页面就直接显示了验证码,等访客把文章看完再去评论的时候,验证码的时效已经过期了,就会导致发表评论时验证码错误,这样辛辛苦苦写的评论就有可能丢失,最重要的是有可能访客就会放弃了评论。将验证码修改成点击输入框才显示验证码,这样就会很好的解决这个问题,并且能增强访客的浏览体验。关于这个的修改有很多的版本,我参考了一些,最终结合PJblog的验证码结构,修改出最简单的一个方法,这里要谢谢静脉,他写的代码都很简洁,是我很喜欢的。

不多说了,下面是具体的修改方法:

打开common\function.asp文件,找到
程序代码:[ 复制代码到剪贴板 ]

Function getcode() 
    getcode= "<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()""/>"
End Function

替换为
程序代码:[ 复制代码到剪贴板 ]
Function getcode()
getcode= "<span id=""divcode"" style=""margin-left:6px;color:#990000"">点击输入框即可显示验证码</span>" & vbcrlf &_
                "<script type=""text/javascript"">" & vbcrlf &_
                "document.getElementsByName(""validate"")[0].onfocus=function(){" & vbcrlf &_
                "var validate_obj = document.getElementById(""divcode"");" & vbcrlf &_
                "var validate_text = validate_obj.innerHTML;" & vbcrlf &_
                "if (validate_text==""点击输入框即可显示验证码""){" & vbcrlf &_
                "validate_obj.innerHTML = ""<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:2px;\"" onclick=\""src='common/getcode.asp?s='+Math.random()\""/>"";}}" & vbcrlf &_
                "</script>" & vbcrlf
End Function

Function link_getcode()
link_getcode= "<span id=""divcode"" style=""margin-left:6px;color:#990000"">点击输入框即可显示验证码</span>" & vbcrlf &_
                "<script type=""text/javascript"">" & vbcrlf &_
                "document.getElementsByName(""link_validate"")[0].onfocus=function(){" & vbcrlf &_
                "var validate_obj = document.getElementById(""divcode"");" & vbcrlf &_
                "var validate_text = validate_obj.innerHTML;" & vbcrlf &_
                "if (validate_text==""点击输入框即可显示验证码""){" & vbcrlf &_
                "validate_obj.innerHTML = ""<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:2px;\"" onclick=\""src='common/getcode.asp?s='+Math.random()\""/>"";}}" & vbcrlf &_
                "</script>" & vbcrlf
End Function

因为PJblog的所有有验证码的地方的调用基本上都一样,只有bloglink页面不同,所以我们还要对这个页面进行修改,打开bloglink.asp,找到 getcode() ,替换成 link_getcode() 就OK了,切记别忘了这一步!

另外,根据大家的输入习惯,在评论的时候都是从上至下的填写输入框,而PJblog的验证码输入框是在评论框的上面,这样就会先点击了验证码输入框,提前显示的验证码,并且自v2.7版以后,PJblog的验证码有点击刷新验证码的功能,这里有个小BUG,访客填写完验证码之后再点击评论框时,验证码会再次刷新,这样又要重新输入验证码,不注意的访客,不重新输入,发表评论后就会验证码错误,所以我们要将验证码移到评论框下面,完美解决评论验证码的问题。

打开cls_article.asp,找到
程序代码:[ 复制代码到剪贴板 ]
      <%if memName=empty or blog_validate=true then%><tr><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></tr><%end if%>

把上面这行代码剪切到下面这行代码的上面
程序代码:[ 复制代码到剪贴板 ]
      <tr><td align="right" width="70" valign="top"><strong>选 项:</strong></td><td align="left" style="padding:3px;">

这样就OK了,除了引用链接的验证码(这个地方个人认为没必要修改),所有页面有验证码的地方都点击输入框显示验证码了。

暂时没有评论
   发表评论 - 不要忘了输入验证码哦!
作者: 用户:  密码:  我要注册 验证码: 
为防止广告注册机程序,验证码不会自动显示,请点击此处显示或者(刷新)验证码!
评论:

禁止表情
禁止UBB
禁止图片
识别链接
识别关键字
确定发布?
最多可以输入200个字,目前你已经输入了0个字;你今日还可以发表10条评论!
 
   

CopyRight © 2008-2010 广东金融学院030904班 All Rights Reserved
Powered by www.030904.com