Advertisement
Guest User

Untitled

a guest
Jun 12th, 2017
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.86 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. //Here we fill in the phpbb data
  51. $user_row = array(
  52. 'username' => $username,
  53. 'user_password' => $password,
  54. 'user_email' => $email,
  55. 'group_id' => 2, // by default, the REGISTERED user group is id 2
  56. 'user_timezone' => (float) $data['tz'],
  57. 'user_lang' => $data['lang'],
  58. 'user_type' => USER_NORMAL,
  59. 'user_ip' => $user->ip,
  60. 'user_regdate' => time(),
  61. );
  62.  
  63. // Create the user and populate the table...
  64. $user_id = user_add($user_row);
  65.  
  66. // Insert confirmation code.
  67. $sql = "UPDATE {$server->loginDatabase}.{$createTable} SET ";
  68. $sql .= "confirm_code = ?, confirmed = 0 ";
  69. if ($expire=Flux::config('EmailConfirmExpire')) {
  70. $sql .= ", confirm_expire = ? ";
  71. $bind[] = date('Y-m-d H:i:s', time() + (60 * 60 * $expire));
  72. }
  73.  
  74. $sql .= " WHERE account_id = ?";
  75. $bind[] = $result;
  76.  
  77. $sth = $server->connection->getStatement($sql);
  78. $sth->execute($bind);
  79.  
  80. $session->loginServer->permanentlyBan(null, sprintf(Flux::message('AccountConfirmBan'), $code), $result);
  81.  
  82. if ($sent) {
  83. $message = Flux::message('AccountCreateEmailSent');
  84. }
  85. else {
  86. $message = Flux::message('AccountCreateFailed');
  87. }
  88.  
  89. $session->setMessageData($message);
  90. $this->redirect();
  91. }
  92. else {
  93. $session->login($server->serverName, $username, $password, false);
  94. $session->setMessageData(Flux::message('AccountCreated'));
  95. $this->redirect();
  96. }
  97. }
  98. else {
  99. exit('Uh oh, what happened?');
  100. }
  101. }
  102. catch (Flux_RegisterError $e) {
  103. switch ($e->getCode()) {
  104. case Flux_RegisterError::USERNAME_ALREADY_TAKEN:
  105. $errorMessage = Flux::message('UsernameAlreadyTaken');
  106. break;
  107. case Flux_RegisterError::USERNAME_TOO_SHORT:
  108. $errorMessage = Flux::message('UsernameTooShort');
  109. break;
  110. case Flux_RegisterError::USERNAME_TOO_LONG:
  111. $errorMessage = Flux::message('UsernameTooLong');
  112. break;
  113. case Flux_RegisterError::PASSWORD_TOO_SHORT:
  114. $errorMessage = Flux::message('PasswordTooShort');
  115. break;
  116. case Flux_RegisterError::PASSWORD_TOO_LONG:
  117. $errorMessage = Flux::message('PasswordTooLong');
  118. break;
  119. case Flux_RegisterError::PASSWORD_MISMATCH:
  120. $errorMessage = Flux::message('PasswordsDoNotMatch');
  121. break;
  122. case Flux_RegisterError::EMAIL_ADDRESS_IN_USE:
  123. $errorMessage = Flux::message('EmailAddressInUse');
  124. break;
  125. case Flux_RegisterError::INVALID_EMAIL_ADDRESS:
  126. $errorMessage = Flux::message('InvalidEmailAddress');
  127. break;
  128. case Flux_RegisterError::INVALID_GENDER:
  129. $errorMessage = Flux::message('InvalidGender');
  130. break;
  131. case Flux_RegisterError::INVALID_SERVER:
  132. $errorMessage = Flux::message('InvalidServer');
  133. break;
  134. case Flux_RegisterError::INVALID_SECURITY_CODE:
  135. $errorMessage = Flux::message('InvalidSecurityCode');
  136. break;
  137. default:
  138. $errorMessage = Flux::message('CriticalRegisterError');
  139. break;
  140. }
  141. }
  142. }
  143. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement