Advertisement
Guest User

Untitled

a guest
Jun 1st, 2018
281
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?php
  2.  
  3. if(isset($_POST['submit'])){
  4.  
  5. if (!isset($_POST['username'])) $error[] = "Please fill out all fields";
  6. if (!isset($_POST['email'])) $error[] = "Please fill out all fields";
  7. if (!isset($_POST['password'])) $error[] = "Please fill out all fields";
  8.  
  9. $username = $_POST['username'];
  10.  
  11. if(!$user->isValidUsername($username)){
  12. $error[] = 'Usernames must be at least 3 Alphanumeric characters';
  13. } else {
  14. $stmt = $db->prepare('SELECT username FROM users WHERE username = :username');
  15. $stmt->execute(array(':username' => $username));
  16. $row = $stmt->fetch(PDO::FETCH_ASSOC);
  17.  
  18. if(!empty($row['username'])){
  19. $error[] = 'Username provided is already in use.';
  20. }
  21.  
  22. }
  23.  
  24. if(strlen($_POST['password']) < 3){
  25. $error[] = 'Password is too short.';
  26. }
  27.  
  28. if(strlen($_POST['passwordConfirm']) < 3){
  29. $error[] = 'Confirm password is too short.';
  30. }
  31.  
  32. if($_POST['password'] != $_POST['passwordConfirm']){
  33. $error[] = 'Passwords do not match.';
  34. }
  35.  
  36. $email = htmlspecialchars_decode($_POST['email'], ENT_QUOTES);
  37. if(!filter_var($email, FILTER_VALIDATE_EMAIL)){
  38. $error[] = 'Please enter a valid email address';
  39. } else {
  40. $stmt = $db->prepare('SELECT email FROM users WHERE email = :email');
  41. $stmt->execute(array(':email' => $email));
  42. $row = $stmt->fetch(PDO::FETCH_ASSOC);
  43.  
  44. if(!empty($row['email'])){
  45. $error[] = 'Email provided is already in use.';
  46. }
  47.  
  48. }
  49.  
  50. if(!isset($error)){
  51.  
  52. $hashedpassword = $user->password_hash($_POST['password'], PASSWORD_BCRYPT);
  53.  
  54. $activation = md5(uniqid(rand(),true));
  55.  
  56. try {
  57.  
  58. $stmt = $db->prepare('INSERT INTO users (username,password,email,active) VALUES (:username, :password, :email, :active)');
  59. $stmt->execute(array(
  60. ':username' => $username,
  61. ':password' => $hashedpassword,
  62. ':email' => $email,
  63. ':active' => $activation
  64. ));
  65. $id = $db->lastInsertId('userID');
  66.  
  67. $to = $_POST['email'];
  68. $subject = "Account Confirmation";
  69. $body = "<p>Thank you for signing up\</p>
  70. <p>To activate your account, please click on this link: <a href='".DIR."activate.php?x=$id&y=$activation'>".DIR."activate.php?x=$id&y=$activation</a></p>
  71. <p>Regards Site Admin</p>";
  72.  
  73. $mail = new Mail();
  74. $mail->setFrom(SITEEMAIL);
  75. $mail->addAddress($to);
  76. $mail->subject($subject);
  77. $mail->body($body);
  78. $mail->send();
  79.  
  80. //redirect to index page
  81. header('Location: index.php?action=joined');
  82. exit;
  83.  
  84. //else catch the exception and show the error.
  85. } catch(PDOException $e) {
  86. $error[] = $e->getMessage();
  87. }
  88.  
  89. if(!isset($error)){ $error = array(); }
  90. }
  91.  
  92. }
  93.  
  94. ?>
  95. <div class="tab-pane" id="registerTab">
  96. <div class="modal-body">
  97. <form role="form" method="post" action="" autocomplete="off">
  98.  
  99. <?php
  100. if(isset($error)){
  101. foreach($error as $error_row){
  102. echo '<p class="bg-danger">'.$error_row.'</p>';
  103. }
  104. }
  105.  
  106. //if action is joined show sucess
  107. if(isset($_GET['action']) && $_GET['action'] == 'joined'){
  108. echo "<h2 class='bg-success'>Registration successful, please check your email to activate your account.</h2>";
  109. }
  110. ?>
  111.  
  112. <div class="form-group">
  113. <input type="email" name="email" id="email" class="form-control" placeholder="Email" required="required" value="<?php if(isset($error)){ echo htmlspecialchars($_POST['email'], ENT_QUOTES); } ?>" tabindex="1">
  114. </div>
  115. <div class="form-group">
  116. <input type="text" name="username" id="username" class="form-control"placeholder="User Name" required="required" value="<?php if(isset($error)){ echo htmlspecialchars($_POST['username'], ENT_QUOTES); } ?>" tabindex="2">
  117. </div>
  118. <div class="form-group">
  119. <input type="password" name="password" id="password"class="form-control" placeholder="Password" required="required" tabindex="3">
  120. </div>
  121. <div class="form-group">
  122. <input type="password" name="passwordConfirm" id="passwordConfirm" class="form-control" placeholder="Confirm Password" required="required" tabindex="4">
  123. </div>
  124. <div class="form-group">
  125. <button type="submit" name="submit" class="btn btn-primary btn-lg btn-block login-btn" tabindex="5">Register</button>
  126. </div>
  127. </form>
  128. </div>
  129. <div class="modal-footer">
  130. <div class="login-footer">
  131. <span class="login-footer-item">
  132. Have an Account? <a href="#registerTab" data-target="#registerTab">Sign in</a>
  133. </span>
  134. </div>
  135. </div>
  136. </div>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement