首页 > Wordpress > WordPress中添加验证码详细步骤(sidxspam插件 inove主题)

WordPress中添加验证码详细步骤(sidxspam插件 inove主题)

从建站以来,多多少少收到了一些垃圾评论,虽然不是很多,但也比较心烦,为了避免类似事情再发生,决定加入评论验证码,来杜绝一些 机器人。既然只是为了杜绝一些机器人,而又不过分强求访客输入繁琐的验证码,所以这次设置的验证码也比较简单,只有四位随机数字,详细步骤如下。

===================================================================

这次验证码使用了 sidxspam 插件,后面有时间的话,会再发一个免插件的配置方法,有需要的,可以留意下。
WordPress中添加以jQuery为基础的评论验证码(非插件)

1、安装 sidxspam 插件,并在后台开启;
2、然后会在/wp-content/plugins/sidxspam 目录下出现三个文件,修改 sidxspam.php 文件,来达到个性化设置,例如,我做了一些简单的翻译操作,将提示信息全改成了中文的,并将出错时的提示文字做了些细微的调整,虽然比较简单,但功能已经能实现了,大家也可以按照自己的心意,来打造符合自己BLOG风格的错误提示页面。好了,下面是我的sidxspam.php 文件:(点下面的 show source,展开代码)

<?php
/*
Plugin Name: SidXSpam
Version: 3.1.0
Plugin URI: http://photozero.net/sidxspam/
Author: Neekey
Author URI: http://photozero.net
Description: Anti-spam by verify code that displayed in the image under the comment form.
*/


@session_start();
add_action('comment_form','show_sxs');
add_filter('preprocess_comment','check_sxs');



if (!defined('WP_CONTENT_DIR')) {
    define( 'WP_CONTENT_DIR', ABSPATH.'wp-content');
}
if (!defined('WP_CONTENT_URL')) {
    define('WP_CONTENT_URL', get_option('siteurl').'/wp-content');
}
if (!defined('WP_PLUGIN_DIR')) {
    define('WP_PLUGIN_DIR', WP_CONTENT_DIR.'/plugins');
}
if (!defined('WP_PLUGIN_URL')) {
    define('WP_PLUGIN_URL', WP_CONTENT_URL.'/plugins');
}



function make_seed() {
    list($usec, $sec) = explode(' ', microtime());
    return (float)$sec + ((float)$usec * 100000);
}


function sxs_create_sid(){
    mt_srand(make_seed());
    $sxscode = '';$sxs_sid_code = '';
    $sxsarray = array('a','b','c','d','e','f','g','h','i','j','k','m','n','p','q','r','s','t','u','v','w','x','y','z');
    $sxs_sid_array = array('1','2','3','4','5','6','7','8','9','0');
    shuffle($sxsarray);
    shuffle($sxs_sid_array);
    for( ;strlen($sxscode)<=11; ){
        $sxscode .= $sxsarray[mt_rand(0, count($sxsarray))];
    }
    for( ;strlen($sxs_sid_code)<=3; ){
        $sxs_sid_code .= $sxs_sid_array[mt_rand(0, count($sxs_sid_array))];
    }
    $_SESSION['_sxs_'.$sxscode] = $sxs_sid_code;
    return array($sxscode,$sxs_sid_code);
}

function show_sxs(){
    $sxscode = sxs_create_sid();
    $sxs_url = WP_PLUGIN_URL.'/sidxspam';

    echo '<br />
<h2><abbr title="只是验证下您是访客还是机器人">请输入验证码:</abbr>&nbsp;&nbsp;
<img alt="如果看不清图片上的数字,请刷新本页!" src="'.$sxs_url.'/image.php?sid='.$sxscode[0].'" />
<input type="hidden" name="sxssid" value="_sxs_'.$sxscode[0].'" />
<input type="text" name="sxscode" maxlength="4" style="width:60px" title="请输入您看到的数字" />';
}

function check_sxs($commentdata){

    if ($_SESSION[$_POST['sxssid']] !== $_POST['sxscode']) {
        //
        die(__('
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Error</title></head>
<body style="background-color:d5d5d5">
<div style="background-color:ffffff;width:400px;height:350px;padding:2%;margin-top:15%;margin-left:36%">
<h1 style="color:red">错误:</h1>非常抱歉,您输入的验证码有误,请核对后重新输入。<br /><br />
您可以将下面评论进行复制,以免返回页面时,以前所写的评论信息消失。<br /><br />
由此给您带来的不便,请您理解。<br /><br />
<form name="form">
Your comment:<br />
<textarea rows="5" cols="40" name="copy">'.$commentdata['comment_content'].'</textarea><br /><br />
<a href="javascript:history.back(-1);">返回页面</a>
</form>
</body></html>'
));
    }
    //unset($_SESSION[$_POST['sxssid']]);
    return $commentdata;

}
?>

3、验证码的位置
大家可以在 主题目录 下的 comments.php 文件中,找到如下这行代码

<?php do_action('comment_form', $post->ID); ?>

将它放到自己认为合适的地方即可,本人就将这段代码,放到了“订阅评论”的上面,并将“订阅评论”的那行代码删掉了。

.



转载本站文章请注明,来自: Edward's Blog

本文链接: http://www.edward-han.com/135.html

分类: Wordpress 标签: ,
  1. 2010年12月9日20:35 | #1

    等待不用插件的方法。。

  2. Edward_Han
    2010年12月10日12:14 | #2

    @dianaluna
    已经有了,赶快前去围观阿~~ :biggrin:

  1. 本文目前尚无任何 trackbacks 和 pingbacks.
您必须启用 javascript 才能在这儿看到验证码!

无觅相关文章插件,快速提升流量

加载中……