diff --git a/public/include/config/global.inc.dist.php b/public/include/config/global.inc.dist.php index 4347a513..b41d9110 100644 --- a/public/include/config/global.inc.dist.php +++ b/public/include/config/global.inc.dist.php @@ -35,6 +35,12 @@ $config = array( 'slogan' => 'Resistance is futile', 'email' => 'test@example.com', // Mail address used for notifications ), + // See: http://www.google.com/recaptcha + 'recaptcha' => array( + 'enabled' => false, // Enable re-captcha during registraion + 'public_key' => 'YOUR_PUBLIC_RECAPTCHA_KEY', + 'private_key' => 'YOUR_PRIVATE_RECAPTCHA_KEY' + ), 'currency' => 'LTC', // Currency name to be used on website 'txfee' => 0.1, // Default tx fee added by RPC server 'block_bonus' => 0, diff --git a/public/include/pages/register.inc.php b/public/include/pages/register.inc.php index f1c4cb73..d0a1d713 100644 --- a/public/include/pages/register.inc.php +++ b/public/include/pages/register.inc.php @@ -7,6 +7,10 @@ if (!$config['website']['registration']) { $_SESSION['POPUP'][] = array('CONTENT' => 'Account registration is currently disabled. Please try again later.', 'TYPE' => 'errormsg'); $smarty->assign("CONTENT", "disabled.tpl"); } else { + if ($config['recaptcha']['enabled']) { + require_once(INCLUDE_DIR . '/recaptchalib.php'); + $smarty->assign("RECAPTCHA", recaptcha_get_html($config['recaptcha']['public_key'])); + } // Tempalte specifics $smarty->assign("CONTENT", "default.tpl"); } diff --git a/public/include/pages/register/register.inc.php b/public/include/pages/register/register.inc.php index 2e4e4885..ce41630e 100644 --- a/public/include/pages/register/register.inc.php +++ b/public/include/pages/register/register.inc.php @@ -2,12 +2,45 @@ // Make sure we are called from index.php if (!defined('SECURITY')) die('Hacking attempt'); -if (!$config['website']['registration']) { - $_SESSION['POPUP'][] = array('CONTENT' => 'Account registration is currently disabled. Please try again later.', 'TYPE' => 'errormsg'); -} else if ($user->register($_POST['username'], $_POST['password1'], $_POST['password2'], $_POST['pin'], $_POST['email1'], $_POST['email2']) && $config['website']['registration']) { - $_SESSION['POPUP'][] = array('CONTENT' => 'Account created, please login'); +if ($config['recaptcha']['enabled']) { + // Load re-captcha specific data + require_once(INCLUDE_DIR . '/recaptchalib.php'); + $rsp = recaptcha_check_answer ( + $config['recaptcha']['private_key'], + $_SERVER["REMOTE_ADDR"], + $_POST["recaptcha_challenge_field"], + $_POST["recaptcha_response_field"] + ); +} + +// Check if recaptcha is enabled, process form data if valid +if($config['recaptcha']['enabled'] && $_POST["recaptcha_response_field"] && $_POST["recaptcha_response_field"]!=''){ + if ($rsp->is_valid) { + $smarty->assign("RECAPTCHA", recaptcha_get_html($config['recaptcha']['public_key'])); + if (!$config['website']['registration']) { + $_SESSION['POPUP'][] = array('CONTENT' => 'Account registration is currently disabled. Please try again later.', 'TYPE' => 'errormsg'); + } else if ($user->register($_POST['username'], $_POST['password1'], $_POST['password2'], $_POST['pin'], $_POST['email1'], $_POST['email2']) && $config['website']['registration']) { + $_SESSION['POPUP'][] = array('CONTENT' => 'Account created, please login'); + } else { + $_SESSION['POPUP'][] = array('CONTENT' => 'Unable to create account: ' . $user->getError(), 'TYPE' => 'errormsg'); + } + } else { + $smarty->assign("RECAPTCHA", recaptcha_get_html($config['recaptcha']['public_key'], $rsp->error)); + $_SESSION['POPUP'][] = array('CONTENT' => 'Invalid Captcha, please try again. (' . $rsp->error . ')', 'TYPE' => 'errormsg'); + } +// Empty captcha +} else if ($config['recaptcha']['enabled']) { + $smarty->assign("RECAPTCHA", recaptcha_get_html($config['recaptcha']['public_key'], $rsp->error)); + $_SESSION['POPUP'][] = array('CONTENT' => 'Empty Captcha, please try again.', 'TYPE' => 'errormsg'); +// Captcha disabled } else { - $_SESSION['POPUP'][] = array('CONTENT' => 'Unable to create account: ' . $user->getError(), 'TYPE' => 'errormsg'); + if (!$config['website']['registration']) { + $_SESSION['POPUP'][] = array('CONTENT' => 'Account registration is currently disabled. Please try again later.', 'TYPE' => 'errormsg'); + } else if ($user->register($_POST['username'], $_POST['password1'], $_POST['password2'], $_POST['pin'], $_POST['email1'], $_POST['email2']) && $config['website']['registration']) { + $_SESSION['POPUP'][] = array('CONTENT' => 'Account created, please login'); + } else { + $_SESSION['POPUP'][] = array('CONTENT' => 'Unable to create account: ' . $user->getError(), 'TYPE' => 'errormsg'); + } } // We load the default registration template instead of an action specific one diff --git a/public/templates/mmcFE/register/default.tpl b/public/templates/mmcFE/register/default.tpl index d4440f1c..f711c67f 100644 --- a/public/templates/mmcFE/register/default.tpl +++ b/public/templates/mmcFE/register/default.tpl @@ -3,13 +3,16 @@
| Username: | |
| Password: | |
| Repeat Password: | |
| Email: | |
| Email Repeat: | |
| PIN: | (4 digit number. Remember this pin!) |