diff options
author | Henry Sudhof <kellanved@phpbb.com> | 2007-05-05 21:33:25 +0000 |
---|---|---|
committer | Henry Sudhof <kellanved@phpbb.com> | 2007-05-05 21:33:25 +0000 |
commit | c8fa1399a94ef612a6fafde95aeb0c218be8711a (patch) | |
tree | ca5d8e82d8f9563add7953d49ce60c5d1f18bfee /phpBB/includes/acp/acp_captcha.php | |
parent | 1bbc043bccc6c90e5ca20a3c5739444e3024cef6 (diff) | |
download | forums-c8fa1399a94ef612a6fafde95aeb0c218be8711a.tar forums-c8fa1399a94ef612a6fafde95aeb0c218be8711a.tar.gz forums-c8fa1399a94ef612a6fafde95aeb0c218be8711a.tar.bz2 forums-c8fa1399a94ef612a6fafde95aeb0c218be8711a.tar.xz forums-c8fa1399a94ef612a6fafde95aeb0c218be8711a.zip |
Introducing a new CAPTCHA. Thanks to Robert "Xore" Hetzler for idea & code and Ashley "Neothermic" Pinner for her expertise and contributions to said code.
This introduces new language variables, so take note translators :).
git-svn-id: file:///svn/phpbb/trunk@7478 89ea8834-ac86-4346-8a33-228a782c2dd0
Diffstat (limited to 'phpBB/includes/acp/acp_captcha.php')
-rw-r--r-- | phpBB/includes/acp/acp_captcha.php | 54 |
1 files changed, 49 insertions, 5 deletions
diff --git a/phpBB/includes/acp/acp_captcha.php b/phpBB/includes/acp/acp_captcha.php index 7cef658e93..7386c378a3 100644 --- a/phpBB/includes/acp/acp_captcha.php +++ b/phpBB/includes/acp/acp_captcha.php @@ -21,16 +21,44 @@ class acp_captcha $user->add_lang('acp/board'); + + $captcha_vars = array( + 'captcha_gd_x_grid' => 'CAPTCHA_GD_X_GRID', + 'captcha_gd_y_grid' => 'CAPTCHA_GD_Y_GRID', + 'captcha_gd_foreground_noise' => 'CAPTCHA_GD_FOREGROUND_NOISE', + 'captcha_gd' => 'CAPTCHA_GD_PREVIEWED' + ); + + if (isset($_GET['demo'])) + { + $captcha_vars = array_keys($captcha_vars); + foreach ($captcha_vars as $captcha_var) + { + $config[$captcha_var] = (isset($_REQUEST[$captcha_var])) ? request_var($captcha_var, 0) : $config[$captcha_var]; + } + if ($config['captcha_gd']) + { + include($phpbb_root_path . 'includes/captcha/captcha_gd.' . $phpEx); + } + else + { + include($phpbb_root_path . 'includes/captcha/captcha_non_gd.' . $phpEx); + } + $captcha = new captcha(); + $captcha->execute(gen_rand_string(mt_rand(5, 8)), time()); + exit; + } + $config_vars = array( 'enable_confirm' => 'REG_ENABLE', 'enable_post_confirm' => 'POST_ENABLE', 'captcha_gd' => 'CAPTCHA_GD', - 'captcha_gd_noise' => 'CAPTCHA_GD_NOISE', ); $this->tpl_name = 'acp_captcha'; $this->page_title = 'ACP_VC_SETTINGS'; $submit = request_var('submit', ''); + if ($submit) { $config_vars = array_keys($config_vars); @@ -38,20 +66,36 @@ class acp_captcha { set_config($config_var, request_var($config_var, '')); } + $captcha_vars = array_keys($captcha_vars); + foreach ($captcha_vars as $captcha_var) + { + set_config($captcha_var, request_var($captcha_var, 0)); + } trigger_error($user->lang['CONFIG_UPDATED'] . adm_back_link($this->u_action)); } else { - $array = array(); - - if (@extension_loaded('gd') && function_exists('imagettfbbox') && function_exists('imagettftext')) + + $preview_image_src = append_sid(append_sid("{$phpbb_admin_path}index.$phpEx", "i=$id&demo=demo")); + if (@extension_loaded('gd')) { $template->assign_var('GD', true); } foreach ($config_vars as $config_var => $template_var) { - $template->assign_var($template_var, $config[$config_var]); + $template->assign_var($template_var, (isset($_REQUEST[$config_var])) ? request_var($config_var, '') : $config[$config_var]) ; + } + foreach ($captcha_vars as $captcha_var => $template_var) + { + $var = (isset($_REQUEST[$captcha_var])) ? request_var($captcha_var, 0) : $config[$captcha_var]; + $template->assign_var($template_var, $var); + $preview_image_src .= "&$captcha_var=" . $var; } + $template->assign_vars(array( + 'CAPTCHA_PREVIEW' => $preview_image_src, + 'PREVIEW' => isset($_POST['preview']), + )); + } } } |