pjblog首页登陆框、文章评论处设置,双击验证码输入框自动输入验证码

看到有人用的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 /> 没有自动刷新的缘故。要想避免这种情况的发生其实也比较简单,不过可能会再修改较多的代码。因此我这里没有考虑这个问题。 如果我找到简单实现的方法我会及时在本方面修正。

 

 

修改位置 commonlibrary.asp

'**********************************************
'用户面板
'**********************************************
function userPanel()
userPanel=""
if memName<>Empty then userPanel=userPanel&" <b>"&memName&"</b>,欢迎你!<br/>你的权限: "&stat_title&"<br/><br/>"
if stat_Admin=true then userPanel=userPanel+"<a href=""control.asp"" class=""sideA"" accesskey=""3"">系統管理</a>"
if stat_AddAll=true or stat_Add=true then userPanel=userPanel+"<a href=""blogpost.asp"" class=""sideA"" accesskey=""N"">发表日记</a>"
if (stat_AddAll=true or stat_Add=true) and (stat_EditAll or stat_Edit) then
  if isEmpty(session(CookieName&"_draft_"&memName)) then
   session(CookieName&"_draft_"&memName)=conn.execute("select count(log_ID) from blog_Content where log_Author='"&memName&"' and log_IsDraft=true")(0)
   SQLQueryNums=SQLQueryNums+1
  end if
  if session(CookieName&"_draft_"&memName)>0 then
      userPanel=userPanel+"<a href=""default.asp?display=draft"" class=""sideA"" accesskey=""D""><strong>编辑草稿 ["&session(CookieName&"_draft_"&memName)&"]</strong></a>"
   else
      userPanel=userPanel+"<a href=""default.asp?display=draft"" class=""sideA"" accesskey=""D"">编辑草稿</a>"
  end if
end if
if memName<>Empty then
  userPanel=userPanel&"<a href=""member.asp?action=edit"" class=""sideA"" accesskey=""M"">修改資料</a><a href=""login.asp?action=logout"" class=""sideA"" accesskey=""Q"">退出系统</a>"
else
  userPanel=userPanel&"<form name=""checkUser"" action=""login.asp"" method=""post""><input name=""action"" type=""hidden"" value=""login""/><label><b>用户名︰</b><input name=""username"" type=""text"" size=""12"" class=""userpass"" maxlength=""24""/></label><br/><label><B>密 码︰</B><input name=""password"" type=""password"" size=""12"" class=""userpass""/></label><br/><label><B>验证码︰</B><input name=""validate"" id=""validate"" type=""text"" size=""4"" class=""userpass"" value=""双击即可"" title=""双击即可填充验证码"" ondblclick=""getValidateCode()"" maxlength=""4""/> "&getcode()&"</label><input type=""hidden"" id=""shotan""><br/><label><input name=""KeepLogin"" type=""checkbox"" value=""1""/>记住我的登陆信息</label><br/><input type=""submit"" value=""登 陆"" class=""userbutton""/> <input type=""button"" value=""注 册"" class=""userbutton"" onclick=""location.href='register.asp'""/></form>"
end if
end function
点赞 (0)

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.