65.9K
CodeProject 正在变化。 阅读更多。
Home

如何:使用 Phpbb3 CAPTCHA。

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.50/5 (4投票s)

2008年12月25日

GPL3

1分钟阅读

viewsIcon

58906

downloadIcon

555

使用 PHPBB3 CAPTCHA。

phpbb captcha

引言

Phpbb3 使用一个由 Xore (Robert Hetzler) 创建的强大的验证码类。我们非常感谢他的工作。感谢您,Robert。
我们可以在我们的项目中使用这个类,并遵循 GNU 通用公共许可证
本文介绍了如何更改其配置并使用它。

如何使用 Phpbb3 验证码

生成随机表达式

首先,我编写了一个 PHP 类来生成随机表达式。(DayyanRandomCharacters
以下是一个示例

include_once("include/DayyanRandomCharactersClass.php");
$DayyanRandomCharacters = new DayyanRandomCharacters();
  $id = $DayyanRandomCharacters -> get_id();
  $key = $DayyanRandomCharacters -> get_key();
  $Code = $DayyanRandomCharacters -> get_code();
$ConfirmString = strtoupper($DayyanRandomCharacters -> md5_decrypt($id, $key));
$ConfirmString = substr($ConfirmString, 0, 6);
echo '$id=' . $id . '<br />';
echo '$key=' . $key . '<br />';
echo '$Code=' . $Code . '<br />';
echo '$ConfirmString=' . $ConfirmString . '<br />';

Phpbb3 验证码类

我使用了 captcha_gd.php 文件,你可以在 phpBB3\includes\captcha\ 文件夹中找到它。
这个文件中包含三个类

  1. captcha
  2. char_cube3d
  3. colour_manager

captcha 类有一个名为 execute 的函数,我们必须使用它。
execute 函数的签名如下

function execute($code, $seed)

在这个函数的末尾,我们看到这些表达式

header('Content-Type: image/png');
header('Cache-control: no-cache, no-store');

我禁用了它们,因为我想改变显示 captcha 图像的方式。
如果您想通过 execute 函数直接显示 captcha 图像,您必须启用它们。

验证码图像的大小

captcha 类的开头有两个变量,我们可以更改图像的大小。
var $width = 360;
var $height = 96;

配置

在 Phpbb3 captcha 中有一个全局数组 ($config) 用于更改配置。
示例

//Configurations of PHPBB3 captcha
$config = array('captcha_gd_x_grid' => false,
        'captcha_gd_y_grid' => false,
        'captcha_gd_foreground_noise' => false);

上述配置的结果如下所示

phpbb captcha

$config = array('captcha_gd_x_grid' => false,
        'captcha_gd_y_grid' => false,
        'captcha_gd_foreground_noise' => true);

上述配置的结果如下所示

phpbb captcha

$config = array('captcha_gd_x_grid' => false,
        'captcha_gd_y_grid' => true,
        'captcha_gd_foreground_noise' => false);

上述配置的结果如下所示

phpbb captcha

$config = array('captcha_gd_x_grid' => true,
        'captcha_gd_y_grid' => false,
        'captcha_gd_foreground_noise' => false);

上述配置的结果如下所示

phpbb captcha

Using the Code

现在我们可以轻松地使用 Phpbb3 captcha ,例如这样

<?php
include_once("include/DayyanRandomCharactersClass.php");
$DayyanRandomCharacters = new DayyanRandomCharacters();
  $id = $DayyanRandomCharacters -> get_id();
  $key = $DayyanRandomCharacters -> get_key();
  $Code = $DayyanRandomCharacters -> get_code();
?>
<img src="include/?id=<?php echo $id; ?>&key=<?php echo $key; ?>" 
    alt="<?php echo $Code ?>" title="<?php echo $Code ?>" 
    name="phpbb3Captcha" border="0" id="phpbb3Captcha" />
<br /><br />
<input name="Code" type="text" id="Code" value="<?php echo $Code ?>" />

有关更多信息,请参阅附在此文章中的源代码。

© . All rights reserved.