如何:使用 Phpbb3 CAPTCHA。






4.50/5 (4投票s)
使用 PHPBB3 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\ 文件夹中找到它。
这个文件中包含三个类
captcha
char_cube3d
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);
上述配置的结果如下所示
$config = array('captcha_gd_x_grid' => false,
'captcha_gd_y_grid' => false,
'captcha_gd_foreground_noise' => true);
上述配置的结果如下所示
$config = array('captcha_gd_x_grid' => false,
'captcha_gd_y_grid' => true,
'captcha_gd_foreground_noise' => false);
上述配置的结果如下所示
$config = array('captcha_gd_x_grid' => true,
'captcha_gd_y_grid' => false,
'captcha_gd_foreground_noise' => false);
上述配置的结果如下所示
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 ?>" />
有关更多信息,请参阅附在此文章中的源代码。