if (!Submission::checkEquality($registration['password'], $registration['repeat_password'])) { die(Submission::createResult("Passwords do not match")); } } if (!is_null(Settings::i()->captcha_private)) { if (!isset($registration['captcha_response'])) { die(Submission::createResult("Please validate the captcha")); } $reCaptcha = new ReCaptcha(Settings::i()->captcha_private); $resp = $reCaptcha->verifyResponse($_SERVER["REMOTE_ADDR"], $registration['captcha_response']); if (!$resp->success) { die(Submission::createResult("Please validate the Captcha")); } } $u = $registration['username']; $iv = Crypto::GenerateIV(); $key = Crypto::GenerateKey($u); $username = base64_encode(base64_encode(Crypto::EncryptString($key, $iv, $u))); $find = DbManager::i()->select("sf_members", array("userid"), array("key" => base64_encode(base64_encode($key)))); if ($find && count($find) > 0) { die(Submission::createResult("Username is already taken")); } $pw = base64_encode(base64_encode(Crypto::EncryptString($key, $iv, $registration['password']))); $email = base64_encode(base64_encode(Crypto::EncryptString($key, $iv, $registration['email']))); $ip = base64_encode(base64_encode(Crypto::EncryptString($key, $iv, $_SERVER['REMOTE_ADDR']))); $key = base64_encode(base64_encode($key)); $iv = base64_encode(base64_encode($iv)); $reg_date = date("Y-m-d"); $insert = DbManager::i()->insert("sf_members", array("username", "email", "password", "key", "iv", "register_date", "ip"), array($username, $email, $pw, $key, $iv, $reg_date, $ip)); if ($insert) { Logger::i()->writeLog("Account created with username: {$u}");