Advertisement
Guest User

Untitled

a guest
Jun 12th, 2017
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.80 KB | None | 0 0
  1. <?php
  2. if (!defined('FLUX_ROOT')) exit;
  3. $phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : '../phpBB3/';
  4. $phpEx = substr(strrchr(__FILE__, '.'), 1);
  5. include($phpbb_root_path . 'common.' . $phpEx);
  6. include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
  7.  
  8. if (Flux::config('UseCaptcha') && Flux::config('EnableReCaptcha')) {
  9. require_once 'recaptcha/recaptchalib.php';
  10. $recaptcha = recaptcha_get_html(Flux::config('ReCaptchaPublicKey'));
  11. }
  12.  
  13. $title = Flux::message('AccountCreateTitle');
  14.  
  15. $serverNames = $this->getServerNames();
  16.  
  17. if (count($_POST)) {
  18. require_once 'Flux/RegisterError.php';
  19.  
  20. try {
  21. $server = $params->get('server');
  22. $username = $params->get('username');
  23. $password = $params->get('password');
  24. $confirm = $params->get('confirm_password');
  25. $email = $params->get('email_address');
  26. $gender = $params->get('gender');
  27. $code = $params->get('security_code');
  28.  
  29. if (!($server = Flux::getServerGroupByName($server))) {
  30. throw new Flux_RegisterError('Invalid server', Flux_RegisterError::INVALID_SERVER);
  31. }
  32.  
  33. // Woohoo! Register ;)
  34. $result = $server->loginServer->register($username, $password, $confirm, $email, $gender, $code);
  35.  
  36. if ($result) {
  37. if (Flux::config('RequireEmailConfirm')) {
  38. require_once 'Flux/Mailer.php';
  39.  
  40. $user = $username;
  41. $code = md5(rand());
  42. $name = $session->loginAthenaGroup->serverName;
  43. $link = $this->url('account', 'confirm', array('_host' => true, 'code' => $code, 'user' => $username, 'login' => $name));
  44. $mail = new Flux_Mailer();
  45. $sent = $mail->send($email, 'Account Confirmation', 'confirm', array('AccountUsername' => $username, 'ConfirmationLink' => htmlspecialchars($link)));
  46.  
  47. $createTable = Flux::config('FluxTables.AccountCreateTable');
  48. $bind = array($code);
  49.  
  50. $user_row = array(
  51. 'username' => $username,
  52. 'user_password' => $password,
  53. 'user_email' => $email,
  54. 'group_id' => 2, // by default, the REGISTERED user group is id 2
  55. 'user_timezone' => (float) $data['tz'],
  56. 'user_lang' => $data['lang'],
  57. 'user_type' => USER_NORMAL,
  58. 'user_ip' => $user->ip,
  59. 'user_regdate' => time(),
  60. );
  61.  
  62. // Register user...
  63. $user_id = user_add($user_row);
  64.  
  65. // Insert confirmation code.
  66. $sql = "UPDATE {$server->loginDatabase}.{$createTable} SET ";
  67. $sql .= "confirm_code = ?, confirmed = 0 ";
  68. if ($expire=Flux::config('EmailConfirmExpire')) {
  69. $sql .= ", confirm_expire = ? ";
  70. $bind[] = date('Y-m-d H:i:s', time() + (60 * 60 * $expire));
  71. }
  72.  
  73. $sql .= " WHERE account_id = ?";
  74. $bind[] = $result;
  75.  
  76. $sth = $server->connection->getStatement($sql);
  77. $sth->execute($bind);
  78.  
  79. $session->loginServer->permanentlyBan(null, sprintf(Flux::message('AccountConfirmBan'), $code), $result);
  80.  
  81. if ($sent) {
  82. $message = Flux::message('AccountCreateEmailSent');
  83. }
  84. else {
  85. $message = Flux::message('AccountCreateFailed');
  86. }
  87.  
  88. $session->setMessageData($message);
  89. $this->redirect();
  90. }
  91. else {
  92. $session->login($server->serverName, $username, $password, false);
  93. $session->setMessageData(Flux::message('AccountCreated'));
  94. $this->redirect();
  95. }
  96. }
  97. else {
  98. exit('Uh oh, what happened?');
  99. }
  100. }
  101. catch (Flux_RegisterError $e) {
  102. switch ($e->getCode()) {
  103. case Flux_RegisterError::USERNAME_ALREADY_TAKEN:
  104. $errorMessage = Flux::message('UsernameAlreadyTaken');
  105. break;
  106. case Flux_RegisterError::USERNAME_TOO_SHORT:
  107. $errorMessage = Flux::message('UsernameTooShort');
  108. break;
  109. case Flux_RegisterError::USERNAME_TOO_LONG:
  110. $errorMessage = Flux::message('UsernameTooLong');
  111. break;
  112. case Flux_RegisterError::PASSWORD_TOO_SHORT:
  113. $errorMessage = Flux::message('PasswordTooShort');
  114. break;
  115. case Flux_RegisterError::PASSWORD_TOO_LONG:
  116. $errorMessage = Flux::message('PasswordTooLong');
  117. break;
  118. case Flux_RegisterError::PASSWORD_MISMATCH:
  119. $errorMessage = Flux::message('PasswordsDoNotMatch');
  120. break;
  121. case Flux_RegisterError::EMAIL_ADDRESS_IN_USE:
  122. $errorMessage = Flux::message('EmailAddressInUse');
  123. break;
  124. case Flux_RegisterError::INVALID_EMAIL_ADDRESS:
  125. $errorMessage = Flux::message('InvalidEmailAddress');
  126. break;
  127. case Flux_RegisterError::INVALID_GENDER:
  128. $errorMessage = Flux::message('InvalidGender');
  129. break;
  130. case Flux_RegisterError::INVALID_SERVER:
  131. $errorMessage = Flux::message('InvalidServer');
  132. break;
  133. case Flux_RegisterError::INVALID_SECURITY_CODE:
  134. $errorMessage = Flux::message('InvalidSecurityCode');
  135. break;
  136. default:
  137. $errorMessage = Flux::message('CriticalRegisterError');
  138. break;
  139. }
  140. }
  141. }
  142. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement