Advertisement
Guest User

Untitled

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