Advertisement
Guest User

Untitled

a guest
Sep 12th, 2014
265
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 5.65 KB | None | 0 0
  1. <?php
  2. if (!defined('FLUX_ROOT')) exit;
  3.  
  4. if (Flux::config('UseCaptcha') && Flux::config('EnableReCaptcha')) {
  5.     require_once 'recaptcha/recaptchalib.php';
  6.     $recaptcha = recaptcha_get_html(Flux::config('ReCaptchaPublicKey'));
  7. }
  8.  
  9. $title = Flux::message('AccountCreateTitle');
  10.  
  11. $serverNames = $this->getServerNames();
  12.  
  13. if (count($_POST)) {
  14.     require_once 'Flux/RegisterError.php';
  15.    
  16.     try {
  17.         $server    = $params->get('server');
  18.         $username  = $params->get('username');
  19.         $password  = $params->get('password');
  20.         $confirm   = $params->get('confirm_password');
  21.         $email     = trim($params->get('email_address'));
  22.         $email2    = trim($params->get('email_address2'));
  23.         $gender    = $params->get('gender');
  24.         $birthdate = $params->get('birthdate_date');
  25.         $code      = $params->get('security_code');
  26.         $new_field = $params->get('new_field');
  27.        
  28.         if (!($server = Flux::getServerGroupByName($server))) {
  29.             throw new Flux_RegisterError('Invalid server', Flux_RegisterError::INVALID_SERVER);
  30.         }
  31.        
  32.         // Woohoo! Register ;)
  33.         $result = $server->loginServer->register($username, $password, $confirm, $email, $email2, $gender, $birthdate, $code, $new_field);
  34.  
  35.         if ($result) {
  36.             if (Flux::config('RequireEmailConfirm')) {
  37.                 require_once 'Flux/Mailer.php';
  38.                
  39.                 $user = $username;
  40.                 $code = md5(rand());
  41.                 $name = $session->loginAthenaGroup->serverName;
  42.                 $link = $this->url('account', 'confirm', array('_host' => true, 'code' => $code, 'user' => $username, 'login' => $name));
  43.                 $mail = new Flux_Mailer();
  44.                 $sent = $mail->send($email, 'Account Confirmation', 'confirm', array('AccountUsername' => $username, 'ConfirmationLink' => htmlspecialchars($link)));
  45.                
  46.                 $createTable = Flux::config('FluxTables.AccountCreateTable');
  47.                 $bind = array($code);
  48.                
  49.                 // Insert confirmation code.
  50.                 $sql  = "UPDATE {$server->loginDatabase}.{$createTable} SET ";
  51.                 $sql .= "confirm_code = ?, confirmed = 0 ";
  52.                 if ($expire=Flux::config('EmailConfirmExpire')) {
  53.                     $sql .= ", confirm_expire = ? ";
  54.                     $bind[] = date('Y-m-d H:i:s', time() + (60 * 60 * $expire));
  55.                 }
  56.                
  57.                 $sql .= " WHERE account_id = ?";
  58.                 $bind[] = $result;
  59.                
  60.                 $sth  = $server->connection->getStatement($sql);
  61.                 $sth->execute($bind);
  62.                
  63.                 $session->loginServer->permanentlyBan(null, sprintf(Flux::message('AccountConfirmBan'), $code), $result);
  64.                
  65.                 if ($sent) {
  66.                     $message  = Flux::message('AccountCreateEmailSent');
  67.                 }
  68.                 else {
  69.                     $message  = Flux::message('AccountCreateFailed');
  70.                 }
  71.                
  72.                 $session->setMessageData($message);
  73.                 $this->redirect();
  74.             }
  75.             else {
  76.                 $session->login($server->serverName, $username, $password, false);
  77.                 $session->setMessageData(Flux::message('AccountCreated'));
  78.                 $this->redirect();
  79.             }
  80.         }
  81.         else {
  82.             exit('Uh oh, what happened?');
  83.         }
  84.     }
  85.     catch (Flux_RegisterError $e) {
  86.         switch ($e->getCode()) {
  87.             case Flux_RegisterError::USERNAME_ALREADY_TAKEN:
  88.                 $errorMessage = Flux::message('UsernameAlreadyTaken');
  89.                 break;
  90.             case Flux_RegisterError::USERNAME_TOO_SHORT:
  91.                 $errorMessage = Flux::message('UsernameTooShort');
  92.                 break;
  93.             case Flux_RegisterError::USERNAME_TOO_LONG:
  94.                 $errorMessage = Flux::message('UsernameTooLong');
  95.                 break;
  96.             case Flux_RegisterError::PASSWORD_HAS_USERNAME:
  97.                 $errorMessage = Flux::message ('PasswordHasUsername');
  98.                 break;
  99.             case Flux_RegisterError::PASSWORD_TOO_SHORT:
  100.                 $errorMessage = sprintf(Flux::message('PasswordTooShort'), Flux::config('MinPasswordLength'), Flux::config('MaxPasswordLength'));
  101.                 break;
  102.             case Flux_RegisterError::PASSWORD_TOO_LONG:
  103.                 $errorMessage = sprintf(Flux::message('PasswordTooLong'), Flux::config('MinPasswordLength'), Flux::config('MaxPasswordLength'));
  104.                 break;
  105.             case Flux_RegisterError::PASSWORD_MISMATCH:
  106.                 $errorMessage = Flux::message('PasswordsDoNotMatch');
  107.                 break;
  108.             case Flux_RegisterError::PASSWORD_NEED_UPPER:
  109.                 $errorMessage = sprintf(Flux::message ('PasswordNeedUpper'), Flux::config('PasswordMinUpper'));
  110.                 break;
  111.             case Flux_RegisterError::PASSWORD_NEED_LOWER:
  112.                 $errorMessage = sprintf(Flux::message ('PasswordNeedLower'), Flux::config('PasswordMinLower'));
  113.                 break;
  114.             case Flux_RegisterError::PASSWORD_NEED_NUMBER:
  115.                 $errorMessage = sprintf(Flux::message ('PasswordNeedNumber'), Flux::config('PasswordMinNumber'));
  116.                 break;
  117.             case Flux_RegisterError::PASSWORD_NEED_SYMBOL:
  118.                 $errorMessage = sprintf(Flux::message ('PasswordNeedSymbol'), Flux::config('PasswordMinSymbol'));
  119.                 break;
  120.             case Flux_RegisterError::EMAIL_ADDRESS_IN_USE:
  121.                 $errorMessage = Flux::message('EmailAddressInUse');
  122.                 break;
  123.             case Flux_RegisterError::INVALID_EMAIL_ADDRESS:
  124.                 $errorMessage = Flux::message('InvalidEmailAddress');
  125.                 break;
  126.             case Flux_RegisterError::INVALID_EMAIL_CONF:
  127.                 $errorMessage = Flux::message('InvalidEmailconf');
  128.                 break;
  129.             case Flux_RegisterError::INVALID_GENDER:
  130.                 $errorMessage = Flux::message('InvalidGender');
  131.                 break;
  132.             case Flux_RegisterError::INVALID_SERVER:
  133.                 $errorMessage = Flux::message('InvalidServer');
  134.                 break;
  135.             case Flux_RegisterError::INVALID_SECURITY_CODE:
  136.                 $errorMessage = Flux::message('InvalidSecurityCode');
  137.                 break;
  138.             case Flux_RegisterError::INVALID_USERNAME:
  139.                 $errorMessage = sprintf(Flux::message('AccountInvalidChars'), Flux::config('UsernameAllowedChars'));
  140.                 break;
  141.             case Flux_RegisterError::INVALID_PASSWORD:
  142.                 $errorMessage = Flux::message ('InvalidPassword');
  143.                 break;
  144.             case Flux_RegisterError::INVALID_BIRTHDATE:
  145.                 $errorMessage = Flux::message('InvalidBirthdate');
  146.                 break;
  147.             default:
  148.                 $errorMessage = Flux::message('CriticalRegisterError');
  149.                 break;
  150.         }
  151.     }
  152. }
  153. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement