SHOW:
|
|
- or go back to the newest paste.
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){ |
101 | + | foreach($error as $error_row){ |
102 | - | echo '<p class="bg-danger">'.$error.'</p>'; |
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> |