-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsignup.php
More file actions
255 lines (216 loc) · 9.77 KB
/
signup.php
File metadata and controls
255 lines (216 loc) · 9.77 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
<?php
session_start();
// MySQL database configuration
$servername = "localhost";
$username = "root";
$password = "9586";
$dbname = "penny_auction";
// Create a new MySQL connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check the connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// Handle form submission
if ($_SERVER["REQUEST_METHOD"] === "POST") {
$username = $_POST["username"];
$email = $_POST["email"];
$password = $_POST["password"];
$confirmPassword = $_POST["confirm_password"];
// Validate email format
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$errorMessage = "Invalid email format.";
} else {
}
// Check if the username or email already exists
$checkQuery = "SELECT * FROM users WHERE username = '$username' OR email = '$email'";
$checkResult = $conn->query($checkQuery);
if ($checkResult->num_rows > 0) {
// Username or email already exists
$errorMessage = "Username or email already exists.";
} else {
// Check if the password and confirm password match
if ($password !== $confirmPassword) {
$errorMessage = "Confirm password does not match.";
} else {
// Insert the user into the database
$hashedPassword = password_hash($password, PASSWORD_DEFAULT);
$insertQuery = "INSERT INTO users (username, email, password) VALUES ('$username', '$email', '$hashedPassword')";
// After successful user registration
if ($conn->query($insertQuery) === TRUE) {
// User registration successful
// Set a cookie with the username
setcookie("username", $username, time() + (86400 * 30), "/"); // Cookie expires in 30 days
// Redirect to the login page or desired page
header("Location: login.php?success=1");
exit();
} else {
// Error inserting the user
$errorMessage = "Error: " . $conn->error;
}
}
}
}
// Close the database connection
$conn->close();
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Penny Auction Website - Signup</title>
<!-- Add your SEO meta tags here -->
<!-- Import necessary scripts -->
<script src="https://code.jquery.com/jquery-3.7.0.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/2.9.2/umd/popper.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-geWF76RCwLtnZ8qwWowPQNguL3RmwHVBC9FhGdlKrxdiJJigb/j/68SIy3Te4Bkz" crossorigin="anonymous"></script>
</head>
<body>
<!-- Header -->
<?php include 'header.php'; ?>
<div class="container">
<h1>Signup</h1>
<?php if (isset($errorMessage)) { ?>
<div class="alert alert-danger" role="alert">
<?php echo $errorMessage; ?>
</div>
<?php } ?>
<form method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<div class="mb-3">
<label for="username" class="form-label">Username:</label>
<input type="text" class="form-control" id="username" name="username" required>
<small id="usernameMessage" style="color: red;"></small>
</div>
<div class="mb-3">
<label for="email" class="form-label">Email:</label>
<input type="email" class="form-control" id="email" name="email" required>
</div>
<div class="mb-3">
<label for="password" class="form-label">Password:</label>
<input type="password" class="form-control" id="password" name="password" required>
<small id="passwordMessage" style="color: red;"></small>
<div class="progress mt-2">
<div id="passwordStrength" class="progress-bar" role="progressbar" style="width: 0%"></div>
</div>
</div>
<div class="mb-3">
<label for="confirm_password" class="form-label">Confirm Password:</label>
<input type="password" class="form-control" id="confirm_password" name="confirm_password" required>
<small id="confirmPasswordMessage" style="color: red;"></small>
</div>
<div class="mb-3">
<input type="checkbox" class="form-check-input" id="terms_conditions" name="terms_conditions" required>
<label for="terms_conditions" class="form-check-label">I've read and accepted the terms and conditions</label>
</div>
<div class="mb-3">
<button type="submit" class="btn btn-primary">Signup</button>
</div>
</form>
</div>
<!-- Footer -->
<?php include 'footer.php'; ?>
<script>
// Function to validate the username
function validateUsername() {
var usernameInput = document.getElementById("username");
var usernameMessage = document.getElementById("usernameMessage");
var username = usernameInput.value;
if (username.length < 4) {
usernameMessage.innerHTML = "Username must be at least 4 characters long.";
usernameMessage.style.color = "red";
return false;
} else if (!/^[a-zA-Z0-9]+$/.test(username)) {
usernameMessage.innerHTML = "Username cannot contain symbols.";
usernameMessage.style.color = "red";
return false;
} else {
usernameMessage.innerHTML = "";
return true;
}
}
// Function to update the password strength bar
function updatePasswordStrength(password) {
var strengthBar = document.getElementById("passwordStrength");
var strength = 0;
var progressBarClass = "";
// Check if password length is at least 8 characters
if (password.length >= 8) {
strength += 1;
}
// Check if password contains at least one uppercase letter, one lowercase letter, one digit, and one special character
if (/(?=.*[a-z])/.test(password)) {
strength += 1;
}
if (/(?=.*[A-Z])/.test(password)) {
strength += 1;
}
if (/(?=.*\d)/.test(password)) {
strength += 1;
}
if (/(?=.*[@$!%*?&])/.test(password)) {
strength += 1;
}
// Update the strength bar color based on password strength
switch (strength) {
case 1:
progressBarClass = "bg-danger";
break;
case 2:
progressBarClass = "bg-warning";
break;
case 3:
case 4:
progressBarClass = "bg-success";
break;
default:
progressBarClass = "";
break;
}
// Update the strength bar width and color
strengthBar.style.width = (strength * 25) + "%";
strengthBar.className = "progress-bar " + progressBarClass;
}
// Function to validate the password
function validatePassword() {
var passwordInput = document.getElementById("password");
var passwordMessage = document.getElementById("passwordMessage");
var password = passwordInput.value;
// Update the password strength bar
updatePasswordStrength(password);
if (password.length < 8) {
passwordMessage.innerHTML = "Password must be at least 8 characters long.";
passwordMessage.style.color = "red";
return false;
} else if (!/(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])/.test(password)) {
passwordMessage.innerHTML = "Password must contain at least one uppercase letter, one lowercase letter, one digit, and one special character.";
passwordMessage.style.color = "red";
return false;
} else {
passwordMessage.innerHTML = "";
return true;
}
}
// Function to validate the confirm password
function validateConfirmPassword() {
var passwordInput = document.getElementById("password");
var confirmPasswordInput = document.getElementById("confirm_password");
var confirmPasswordMessage = document.getElementById("confirmPasswordMessage");
var password = passwordInput.value;
var confirmPassword = confirmPasswordInput.value;
if (confirmPassword !== password) {
confirmPasswordMessage.innerHTML = "Confirm password does not match.";
confirmPasswordMessage.style.color = "red";
return false;
} else {
confirmPasswordMessage.innerHTML = "";
return true;
}
}
// Add event listeners for form validation
document.getElementById("username").addEventListener("input", validateUsername);
document.getElementById("password").addEventListener("input", validatePassword);
document.getElementById("confirm_password").addEventListener("input", validateConfirmPassword);
</script>
</body>
</html>