mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-28 06:08:52 +00:00
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
This commit is contained in:
parent
1bbc043bcc
commit
c8fa1399a9
8 changed files with 1629 additions and 141 deletions
|
@ -6,10 +6,12 @@
|
||||||
|
|
||||||
<p>{L_ACP_VC_SETTINGS_EXPLAIN}</p>
|
<p>{L_ACP_VC_SETTINGS_EXPLAIN}</p>
|
||||||
|
|
||||||
|
|
||||||
<form id="acp_captcha" method="post" action="{U_ACTION}">
|
<form id="acp_captcha" method="post" action="{U_ACTION}">
|
||||||
|
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>{L_GENERAL_OPTIONS}</legend>
|
<legend>{L_GENERAL_OPTIONS}</legend>
|
||||||
|
|
||||||
<dl>
|
<dl>
|
||||||
<dt><label for="enable_confirm">{L_VISUAL_CONFIRM_REG}:</label><br /><span>{L_VISUAL_CONFIRM_REG_EXPLAIN}</span></dt>
|
<dt><label for="enable_confirm">{L_VISUAL_CONFIRM_REG}:</label><br /><span>{L_VISUAL_CONFIRM_REG_EXPLAIN}</span></dt>
|
||||||
<dd><label><input type="radio" class="radio" id="enable_confirm" name="enable_confirm" value="1"<!-- IF REG_ENABLE --> checked="checked"<!-- ENDIF --> /> {L_ENABLED}</label>
|
<dd><label><input type="radio" class="radio" id="enable_confirm" name="enable_confirm" value="1"<!-- IF REG_ENABLE --> checked="checked"<!-- ENDIF --> /> {L_ENABLED}</label>
|
||||||
|
@ -27,17 +29,40 @@
|
||||||
<label><input name="captcha_gd" value="0" class="radio" type="radio"<!-- IF not CAPTCHA_GD --> checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
|
<label><input name="captcha_gd" value="0" class="radio" type="radio"<!-- IF not CAPTCHA_GD --> checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
|
||||||
</dl>
|
</dl>
|
||||||
<dl>
|
<dl>
|
||||||
<dt><label for="captcha_gd_noise">{L_CAPTCHA_GD_NOISE}:</label><br /><span>{L_CAPTCHA_GD_NOISE_EXPLAIN}</span></dt>
|
<dt><label for="captcha_gd_foreground_noise">{L_CAPTCHA_GD_FOREGROUND_NOISE}:</label><br /><span>{L_CAPTCHA_GD_FOREGROUND_NOISE_EXPLAIN}</span></dt>
|
||||||
<dd><label><input id="captcha_gd_noise" name="captcha_gd_noise" value="1" class="radio" type="radio"<!-- IF CAPTCHA_GD_NOISE --> checked="checked"<!-- ENDIF --> /> {L_YES}</label>
|
<dd><label><input id="captcha_gd_foreground_noise" name="captcha_gd_foreground_noise" value="1" class="radio" type="radio"<!-- IF CAPTCHA_GD_FOREGROUND_NOISE --> checked="checked"<!-- ENDIF --> /> {L_YES}</label>
|
||||||
<label><input name="captcha_gd_noise" value="0" class="radio" type="radio"<!-- IF not CAPTCHA_GD_NOISE --> checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
|
<label><input name="captcha_gd_foreground_noise" value="0" class="radio" type="radio"<!-- IF not CAPTCHA_GD_FOREGROUND_NOISE --> checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
|
||||||
|
</dl>
|
||||||
|
<dl>
|
||||||
|
<dt><label for="captcha_gd_x_grid">{L_CAPTCHA_GD_X_GRID}:</label><br /><span>{L_CAPTCHA_GD_X_GRID_EXPLAIN}</span></dt>
|
||||||
|
<dd><input id="captcha_gd_x_grid" name="captcha_gd_x_grid" value="{CAPTCHA_GD_X_GRID}" type="text" /></dd>
|
||||||
|
</dl>
|
||||||
|
<dl>
|
||||||
|
<dt><label for="captcha_gd_y_grid">{L_CAPTCHA_GD_Y_GRID}:</label><br /><span>{L_CAPTCHA_GD_Y_GRID_EXPLAIN}</span></dt>
|
||||||
|
<dd><input id="captcha_gd_y_grid" name="captcha_gd_y_grid" value="{CAPTCHA_GD_Y_GRID}" type="text" /></dd>
|
||||||
</dl>
|
</dl>
|
||||||
<!-- ENDIF -->
|
<!-- ENDIF -->
|
||||||
|
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
<fieldset>
|
||||||
|
<legend>{L_PREVIEW}</legend>
|
||||||
|
<!-- IF PREVIEW -->
|
||||||
|
<div class="successbox">
|
||||||
|
<h3>{L_WARNING}</h3>
|
||||||
|
<p>{L_CAPTCHA_PREVIEW_MSG}</p>
|
||||||
|
</div>
|
||||||
|
<!-- ENDIF -->
|
||||||
|
<dl>
|
||||||
|
<dt><label for="captcha_preview">{L_PREVIEW}:</label><br /><span>{L_CAPTCHA_PREVIEW_EXPLAIN}</span></dt>
|
||||||
|
<dd><img src="{CAPTCHA_PREVIEW}" alt="{L_PREVIEW}" <!-- IF CAPTCHA_GD_PREVIEWED -->width="360" height="96"<!-- ELSE --> width="320" height="50"<!-- ENDIF --> id="captcha_preview" /></dd>
|
||||||
|
</dl>
|
||||||
|
</fieldset>
|
||||||
|
|
||||||
<fieldset class="submit-buttons">
|
<fieldset class="submit-buttons">
|
||||||
<legend>{L_SUBMIT}</legend>
|
<legend>{L_SUBMIT}</legend>
|
||||||
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />
|
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />
|
||||||
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
|
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
|
||||||
|
<input class="button2" type="submit" id="preview" name="preview" value="{L_PREVIEW}" />
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
||||||
</form>
|
</form>
|
||||||
|
|
|
@ -20,7 +20,6 @@ phpBB Developers : DavidMJ (David M.)
|
||||||
subBlue (Tom Beddard)
|
subBlue (Tom Beddard)
|
||||||
Vic (Vic D'elfant)
|
Vic (Vic D'elfant)
|
||||||
|
|
||||||
|
|
||||||
-- Previous Contributors --
|
-- Previous Contributors --
|
||||||
|
|
||||||
phpBB Project Manager : theFinn (James Atkinson) [Founder - 04/2007]
|
phpBB Project Manager : theFinn (James Atkinson) [Founder - 04/2007]
|
||||||
|
@ -34,6 +33,8 @@ phpBB Developers : Ashe (Ludovic Arnaud) [10/2002 - 11/2003, 06/2006 - 10
|
||||||
|
|
||||||
-- Copyrights --
|
-- Copyrights --
|
||||||
|
|
||||||
|
Visual Confirmation : Xore (Robert Hetzler)
|
||||||
|
|
||||||
Original subSilver by subBlue Design, Tom Beddard, (c) 2001 phpBB Group
|
Original subSilver by subBlue Design, Tom Beddard, (c) 2001 phpBB Group
|
||||||
prosilver by subBlue Design, Tom Beddard, (c) 2004 phpBB Group
|
prosilver by subBlue Design, Tom Beddard, (c) 2004 phpBB Group
|
||||||
subsilver2 by subBlue Design, Tom Beddard, (c) 2004 phpBB Group
|
subsilver2 by subBlue Design, Tom Beddard, (c) 2004 phpBB Group
|
||||||
|
|
|
@ -21,16 +21,44 @@ class acp_captcha
|
||||||
|
|
||||||
$user->add_lang('acp/board');
|
$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(
|
$config_vars = array(
|
||||||
'enable_confirm' => 'REG_ENABLE',
|
'enable_confirm' => 'REG_ENABLE',
|
||||||
'enable_post_confirm' => 'POST_ENABLE',
|
'enable_post_confirm' => 'POST_ENABLE',
|
||||||
'captcha_gd' => 'CAPTCHA_GD',
|
'captcha_gd' => 'CAPTCHA_GD',
|
||||||
'captcha_gd_noise' => 'CAPTCHA_GD_NOISE',
|
|
||||||
);
|
);
|
||||||
|
|
||||||
$this->tpl_name = 'acp_captcha';
|
$this->tpl_name = 'acp_captcha';
|
||||||
$this->page_title = 'ACP_VC_SETTINGS';
|
$this->page_title = 'ACP_VC_SETTINGS';
|
||||||
$submit = request_var('submit', '');
|
$submit = request_var('submit', '');
|
||||||
|
|
||||||
if ($submit)
|
if ($submit)
|
||||||
{
|
{
|
||||||
$config_vars = array_keys($config_vars);
|
$config_vars = array_keys($config_vars);
|
||||||
|
@ -38,20 +66,36 @@ class acp_captcha
|
||||||
{
|
{
|
||||||
set_config($config_var, request_var($config_var, ''));
|
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));
|
trigger_error($user->lang['CONFIG_UPDATED'] . adm_back_link($this->u_action));
|
||||||
}
|
}
|
||||||
else
|
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);
|
$template->assign_var('GD', true);
|
||||||
}
|
}
|
||||||
foreach ($config_vars as $config_var => $template_var)
|
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']),
|
||||||
|
));
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1110,6 +1110,9 @@ if (version_compare($current_version, '3.0.b5', '<='))
|
||||||
unset($sql_in);
|
unset($sql_in);
|
||||||
|
|
||||||
set_config('avatar_salt', md5(mt_rand()));
|
set_config('avatar_salt', md5(mt_rand()));
|
||||||
|
set_config('captcha_gd_x_grid', 25);
|
||||||
|
set_config('captcha_gd_y_grid', 25);
|
||||||
|
set_config('captcha_gd_foreground_noise', 1);
|
||||||
|
|
||||||
$sql = 'UPDATE ' . ACL_OPTIONS_TABLE . "
|
$sql = 'UPDATE ' . ACL_OPTIONS_TABLE . "
|
||||||
SET is_local = 0
|
SET is_local = 0
|
||||||
|
|
|
@ -1307,11 +1307,6 @@ class install_install extends module
|
||||||
if (!@extension_loaded('gd'))
|
if (!@extension_loaded('gd'))
|
||||||
{
|
{
|
||||||
can_load_dll('gd');
|
can_load_dll('gd');
|
||||||
}
|
|
||||||
|
|
||||||
// This is for people who have TTF and GD
|
|
||||||
if (@extension_loaded('gd') && function_exists('imagettfbbox') && function_exists('imagettftext'))
|
|
||||||
{
|
|
||||||
$sql_ary[] = 'UPDATE ' . $table_prefix . "config
|
$sql_ary[] = 'UPDATE ' . $table_prefix . "config
|
||||||
SET config_value = '1'
|
SET config_value = '1'
|
||||||
WHERE config_name = 'captcha_gd'";
|
WHERE config_name = 'captcha_gd'";
|
||||||
|
|
|
@ -59,7 +59,9 @@ INSERT INTO phpbb_config (config_name, config_value) VALUES ('bump_interval', '1
|
||||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('bump_type', 'd');
|
INSERT INTO phpbb_config (config_name, config_value) VALUES ('bump_type', 'd');
|
||||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('cache_gc', '7200');
|
INSERT INTO phpbb_config (config_name, config_value) VALUES ('cache_gc', '7200');
|
||||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('captcha_gd', '0');
|
INSERT INTO phpbb_config (config_name, config_value) VALUES ('captcha_gd', '0');
|
||||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('captcha_gd_noise', '1');
|
INSERT INTO phpbb_config (config_name, config_value) VALUES ('captcha_gd_foreground_noise', '1');
|
||||||
|
INSERT INTO phpbb_config (config_name, config_value) VALUES ('captcha_gd_x_grid', '25');
|
||||||
|
INSERT INTO phpbb_config (config_name, config_value) VALUES ('captcha_gd_y_grid', '25');
|
||||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('check_dnsbl', '0');
|
INSERT INTO phpbb_config (config_name, config_value) VALUES ('check_dnsbl', '0');
|
||||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('chg_passforce', '0');
|
INSERT INTO phpbb_config (config_name, config_value) VALUES ('chg_passforce', '0');
|
||||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('cookie_domain', '');
|
INSERT INTO phpbb_config (config_name, config_value) VALUES ('cookie_domain', '');
|
||||||
|
|
|
@ -217,14 +217,21 @@ $lang = array_merge($lang, array(
|
||||||
$lang = array_merge($lang, array(
|
$lang = array_merge($lang, array(
|
||||||
'ACP_VC_SETTINGS_EXPLAIN' => 'Here you are able to define visual confirmation defaults and captcha settings.',
|
'ACP_VC_SETTINGS_EXPLAIN' => 'Here you are able to define visual confirmation defaults and captcha settings.',
|
||||||
|
|
||||||
'CAPTCHA_GD' => 'GD CAPTCHA',
|
'CAPTCHA_GD' => 'GD CAPTCHA',
|
||||||
'CAPTCHA_GD_NOISE' => 'GD CAPTCHA noise',
|
'CAPTCHA_GD_FOREGROUND_NOISE' => 'GD CAPTCHA foreground noise',
|
||||||
'CAPTCHA_GD_EXPLAIN' => 'Use GD to make a more advanced CAPTCHA',
|
'CAPTCHA_GD_EXPLAIN' => 'Use GD to make a more advanced CAPTCHA',
|
||||||
'CAPTCHA_GD_NOISE_EXPLAIN' => 'Use noise to make the GD based CAPTCHA harder',
|
'CAPTCHA_GD_FOREGROUND_NOISE_EXPLAIN' => 'Use foreground noise to make the GD based CAPTCHA harder',
|
||||||
'VISUAL_CONFIRM_POST' => 'Enable visual confirmation for guest postings',
|
'CAPTCHA_GD_X_GRID' => 'GD CAPTCHA background noise x-axis',
|
||||||
'VISUAL_CONFIRM_POST_EXPLAIN' => 'Requires anonymous users to enter a random code matching an image to help prevent mass postings.',
|
'CAPTCHA_GD_X_GRID_EXPLAIN' => 'Use lower settings of this to make the GD based CAPTCHA harder. 0 will disable x-axis background noise.',
|
||||||
'VISUAL_CONFIRM_REG' => 'Enable visual confirmation for registrations',
|
'CAPTCHA_GD_Y_GRID' => 'GD CAPTCHA background noise y-axis',
|
||||||
'VISUAL_CONFIRM_REG_EXPLAIN' => 'Requires new users to enter a random code matching an image to help prevent mass registrations.',
|
'CAPTCHA_GD_Y_GRID_EXPLAIN' => 'Use lower settings of this to make the GD based CAPTCHA harder. 0 will disable y-axis background noise.',
|
||||||
|
|
||||||
|
'CAPTCHA_PREVIEW_MSG' => 'Your changes to the visual confirmation setting were not saved. This is just a preview.',
|
||||||
|
'CAPTCHA_PREVIEW_EXPLAIN' => 'The captcha as it will look like using the current settings. Use the preview button to refresh. Note that captchas are randomized and will differ from one view to the next.',
|
||||||
|
'VISUAL_CONFIRM_POST' => 'Enable visual confirmation for guest postings',
|
||||||
|
'VISUAL_CONFIRM_POST_EXPLAIN' => 'Requires anonymous users to enter a random code matching an image to help prevent mass postings.',
|
||||||
|
'VISUAL_CONFIRM_REG' => 'Enable visual confirmation for registrations',
|
||||||
|
'VISUAL_CONFIRM_REG_EXPLAIN' => 'Requires new users to enter a random code matching an image to help prevent mass registrations.',
|
||||||
));
|
));
|
||||||
|
|
||||||
// Cookie Settings
|
// Cookie Settings
|
||||||
|
|
Loading…
Add table
Reference in a new issue