这段时间,博客里面,有大量的垃圾评论,都是群发工具发出来的,二天没有看自己的博客了,里面尽然有40多条这样的垃圾评论,并且里面的内容还特别的多,都是一些链接,有1000多个字符,郁闷的我,加上了验证码,请大家见谅。
下面是我不用插件的情况下,添加验证码的过程:
1,在wp-content/themes/你的主题/comments.php里面
找到
<li> <label for="email"><span><?php _e('E-mail:'); ?></span></label> <input type="text" name="email" id="email" value="<?php echo $comment_author_email; ?>" size="22" tabindex="2" /> <span><?php if ($req) _e('(required)'); ?> <?php _e('(will not be published)'); ?></span> </li>
在他下面添加以下内容:
<li> <label for="email"><span><?php $first = rand(1,9); $second = rand(1,9); echo "验证码:"; ?></span></label> <input type="text" name="code" id="code" value="" size="22" tabindex="3" /> <input type="hidden" name="ji" id="ji" value="<?php echo $first*$second;?>" size="22" tabindex="3" /> <span><?php if ($req) _e('(required)'); ?> <?php echo $first;?>X<?php echo $second;?>=?</span> </li>
2,在wordpress的根目录下面有一个文件wp-comments-post.php
if ( '' == $comment_content ) wp_die( __('Error: please type a comment.') );
差不多在85行左右,找到Error: please type a comment.对评论内容的check,提交时评论内容不能为空。在这上面添加以下内容
$code = ( isset($_POST['code']) ) ? trim($_POST['code']) : null; $ji = ( isset($_POST['ji']) ) ? trim($_POST['ji']) : null; if ( !$user->ID ) { if(!empty($code)){ if($code != $ji){ wp_die( __('错误: 算的不对,你是不是小学没毕业?嘿嘿') ); } }else{ wp_die( __('错误: 请输入验证码') ); } }
二步搞定,简单吧。一般的验证码都是用图片的,我没有图片,节省资源啊,我没有用session和cookie,用算术来代替。只想防群发软件。
转载请注明
作者:海底苍鹰
地址:http://blog.51yip.com/wordpress/1024.html
讲的很简单,解释清楚