Fix some instances where we left db connections open (registration -> captcha for...
[phpbb.git] / phpBB / includes / acp / acp_captcha.php
blob3e363107f4a464df3bca66dcf90a534568aeb05c
1 <?php
2 /**
4 * @package acp
5 * @version $Id$
6 * @copyright (c) 2005 phpBB Group
7 * @license http://opensource.org/licenses/gpl-license.php GNU Public License
8 */
10 /**
11 * @ignore
13 if (!defined('IN_PHPBB'))
15 exit;
18 /**
19 * @package acp
21 class acp_captcha
23 var $u_action;
25 function main($id, $mode)
27 global $db, $user, $auth, $template, $config;
29 $user->add_lang('acp/board');
32 $captcha_vars = array(
33 'captcha_gd_x_grid' => 'CAPTCHA_GD_X_GRID',
34 'captcha_gd_y_grid' => 'CAPTCHA_GD_Y_GRID',
35 'captcha_gd_foreground_noise' => 'CAPTCHA_GD_FOREGROUND_NOISE',
36 'captcha_gd' => 'CAPTCHA_GD_PREVIEWED'
39 if (isset($_GET['demo']))
41 $captcha_vars = array_keys($captcha_vars);
42 foreach ($captcha_vars as $captcha_var)
44 $config[$captcha_var] = (isset($_REQUEST[$captcha_var])) ? request_var($captcha_var, 0) : $config[$captcha_var];
47 if ($config['captcha_gd'])
49 include(PHPBB_ROOT_PATH . 'includes/captcha/captcha_gd.' . PHP_EXT);
51 else
53 include(PHPBB_ROOT_PATH . 'includes/captcha/captcha_non_gd.' . PHP_EXT);
55 captcha::execute(gen_rand_string(mt_rand(5, 8)), time());
56 exit;
59 $config_vars = array(
60 'enable_confirm' => 'REG_ENABLE',
61 'enable_post_confirm' => 'POST_ENABLE',
62 'captcha_gd' => 'CAPTCHA_GD',
65 $this->tpl_name = 'acp_captcha';
66 $this->page_title = 'ACP_VC_SETTINGS';
67 $form_key = 'acp_captcha';
68 add_form_key($form_key);
70 $submit = request_var('submit', '');
72 if ($submit && check_form_key($form_key))
74 $config_vars = array_keys($config_vars);
75 foreach ($config_vars as $config_var)
77 set_config($config_var, request_var($config_var, ''));
79 $captcha_vars = array_keys($captcha_vars);
80 foreach ($captcha_vars as $captcha_var)
82 set_config($captcha_var, request_var($captcha_var, 0));
84 trigger_error($user->lang['CONFIG_UPDATED'] . adm_back_link($this->u_action));
86 else if ($submit)
88 trigger_error($user->lang['FORM_INVALID'] . adm_back_link($this->u_action));
90 else
93 $preview_image_src = append_sid(append_sid(PHPBB_ADMIN_PATH . 'index.' . PHP_EXT, "i=$id&amp;demo=demo"));
94 if (@extension_loaded('gd'))
96 $template->assign_var('GD', true);
98 foreach ($config_vars as $config_var => $template_var)
100 $template->assign_var($template_var, (isset($_REQUEST[$config_var])) ? request_var($config_var, '') : $config[$config_var]) ;
102 foreach ($captcha_vars as $captcha_var => $template_var)
104 $var = (isset($_REQUEST[$captcha_var])) ? request_var($captcha_var, 0) : $config[$captcha_var];
105 $template->assign_var($template_var, $var);
106 $preview_image_src .= "&amp;$captcha_var=" . $var;
108 $template->assign_vars(array(
109 'CAPTCHA_PREVIEW' => $preview_image_src,
110 'PREVIEW' => isset($_POST['preview']),