mirror of
https://github.com/phpbb/phpbb.git
synced 2025-02-13 20:44:43 +01:00
- changed attachment handling a bit - tried to remove target tags out of the code - do not add session ids to urls for bots as well as not creating a new session on each page view for them I bet i introduced some bugs too. ;) git-svn-id: file:///svn/phpbb/trunk@6364 89ea8834-ac86-4346-8a33-228a782c2dd0
113 lines
3.2 KiB
PHP
113 lines
3.2 KiB
PHP
<?php
|
|
/**
|
|
*
|
|
* @package acp
|
|
* @version $Id$
|
|
* @copyright (c) 2005 phpBB Group
|
|
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
|
|
*/
|
|
|
|
/**
|
|
* @package acp
|
|
*/
|
|
class acp_captcha
|
|
{
|
|
var $u_action;
|
|
|
|
function main($id, $mode)
|
|
{
|
|
global $db, $user, $auth, $template;
|
|
global $config, $phpbb_root_path, $phpbb_admin_path, $phpEx;
|
|
|
|
$user->add_lang('acp/board');
|
|
|
|
$config_vars = array('enable_confirm' => 'REG_ENABLE',
|
|
'enable_post_confirm' => 'POST_ENABLE',
|
|
'policy_overlap' => 'OVERLAP_ENABLE',
|
|
'policy_overlap_noise_pixel' => 'OVERLAP_NOISE_PIXEL',
|
|
'policy_overlap_noise_line' => 'OVERLAP_NOISE_LINE_ENABLE',
|
|
'policy_entropy' => 'ENTROPY_ENABLE',
|
|
'policy_entropy_noise_pixel' => 'ENTROPY_NOISE_PIXEL',
|
|
'policy_entropy_noise_line' => 'ENTROPY_NOISE_LINE_ENABLE',
|
|
'policy_shape' => 'SHAPE_ENABLE',
|
|
'policy_shape_noise_pixel' => 'SHAPE_NOISE_PIXEL',
|
|
'policy_shape_noise_line' => 'SHAPE_NOISE_LINE_ENABLE',
|
|
'policy_3dbitmap' => 'THREEDBITMAP_ENABLE',
|
|
'policy_cells' => 'CELLS_ENABLE',
|
|
'policy_stencil' => 'STENCIL_ENABLE',
|
|
'policy_composite' => 'COMPOSITE_ENABLE'
|
|
);
|
|
|
|
$policy_modules = array('policy_entropy', 'policy_3dbitmap', 'policy_overlap', 'policy_shape', 'policy_cells', 'policy_stencil', 'policy_composite');
|
|
|
|
switch ($mode)
|
|
{
|
|
case 'visual':
|
|
$this->tpl_name = 'acp_captcha';
|
|
$this->page_title = 'ACP_VC_SETTINGS';
|
|
$submit = request_var('submit', '');
|
|
if ($submit)
|
|
{
|
|
$config_vars = array_keys($config_vars);
|
|
foreach ($config_vars as $config_var)
|
|
{
|
|
set_config($config_var, request_var($config_var, ''));
|
|
}
|
|
trigger_error($user->lang['CONFIG_UPDATED'] . adm_back_link($this->u_action));
|
|
}
|
|
else
|
|
{
|
|
$array = array();
|
|
|
|
foreach ($config_vars as $config_var => $template_var)
|
|
{
|
|
$array[$template_var] = $config[$config_var];
|
|
}
|
|
$template->assign_vars($array);
|
|
|
|
|
|
if (@extension_loaded('gd'))
|
|
{
|
|
$template->assign_var('GD', true);
|
|
foreach ($policy_modules as $module_name)
|
|
{
|
|
$template->assign_var('U_' . strtoupper($module_name), sprintf($user->lang['CAPTCHA_EXPLAIN'], '<a href="' . append_sid("{$phpbb_root_path}adm/index.$phpEx", 'i=captcha&mode=img&policy=' . $module_name) . '">', '</a>'));
|
|
}
|
|
if (function_exists('imagettfbbox') && function_exists('imagettftext'))
|
|
{
|
|
$template->assign_var('TTF', true);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
|
|
case 'img':
|
|
$policy = request_var('policy', '');
|
|
|
|
if (!@extension_loaded('gd'))
|
|
{
|
|
trigger_error($user->lang['NO_GD'], E_USER_WARNING);
|
|
}
|
|
|
|
if (!($policy === 'policy_entropy' || $policy === 'policy_3dbitmap') && (!function_exists('imagettfbbox') || !function_exists('imagettftext')))
|
|
{
|
|
trigger_error($user->lang['NO_TTF'], E_USER_WARNING);
|
|
}
|
|
|
|
if (!in_array($policy, $policy_modules))
|
|
{
|
|
trigger_error($user->lang['BAD_POLICY'], E_USER_WARNING);
|
|
}
|
|
|
|
$user->add_lang('ucp');
|
|
|
|
include($phpbb_root_path . 'includes/captcha/captcha_gd.' . $phpEx);
|
|
|
|
$captcha = new captcha();
|
|
$captcha->execute(gen_rand_string(), $policy);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
?>
|