From ecdcfff2460db708ae4b471140335ce47aaaf54b Mon Sep 17 00:00:00 2001 From: arf20 Date: Fri, 15 Mar 2024 22:28:01 +0100 Subject: Landing page and fixed register problems --- register.php | 106 ++++++++++++++++++++++++++++++++--------------------------- 1 file changed, 58 insertions(+), 48 deletions(-) (limited to 'register.php') diff --git a/register.php b/register.php index d7265b7..37565c5 100755 --- a/register.php +++ b/register.php @@ -3,15 +3,15 @@ require_once "config.php"; // Define variables and initialize with empty values -$username = $password = $confirm_password = ""; -$username_err = $password_err = $confirm_password_err = ""; +$username = $password = $confirm_password = $email = ""; +$username_err = $password_err = $confirm_password_err = $email_err = ""; // Processing form data when form is submitted if ($_SERVER["REQUEST_METHOD"] == "POST"){ // Validate username if (empty($_POST["username"])) $username_err = "Enter a username."; - else if (preg_match("[a-zA-Z0-9_]+", $_POST["username"]) != false) + else if (preg_match("/[a-zA-Z0-9_]+/", $_POST["username"]) != 1) $username_err = "Invalid username."; else { // Prepare a select statement @@ -22,7 +22,7 @@ if ($_SERVER["REQUEST_METHOD"] == "POST"){ mysqli_stmt_bind_param($stmt, "s", $param_username); // Set parameters - $param_username = trim($_POST["username"]); + $param_username = $_POST["username"]; // Attempt to execute the prepared statement if(mysqli_stmt_execute($stmt)){ @@ -32,7 +32,7 @@ if ($_SERVER["REQUEST_METHOD"] == "POST"){ if(mysqli_stmt_num_rows($stmt) == 1){ $username_err = "This username is already taken."; } else{ - $username = trim($_POST["username"]); + $username = $_POST["username"]; } } else{ echo "SQL failed. Idk, ask arf20."; @@ -45,17 +45,19 @@ if ($_SERVER["REQUEST_METHOD"] == "POST"){ // Validate email if (empty($_POST["email"])) - $username_err = "Enter a username."; - else if (filter_var($_POST["email"], FILTER_VALIDATE_EMAIL)) - $username_err = "Invalid username."; + $email_err = "Enter a email address."; + else if (filter_var($_POST["email"], FILTER_VALIDATE_EMAIL) === false) + $email_err = "Invalid email address."; + else + $email = $_POST["email"]; // Validate password if (empty($_POST["password"])) $password_err = "Enter a password."; - else if (length($_POST["password"]) < 8) + else if (strlen($_POST["password"]) < 8) $password_err = "Password must have at least 8 characters."; - else if (preg_match("[a-zA-Z0-9!@^*$%&)(=+çñÇ[]{}-.,_:;]+", $_POST["password"]) != false) - $password_err = "Password must be in the format [a-zA-Z0-9!@^*$%&)(=+çñÇ[]{}-.,_:;]."; + else if (preg_match("/[a-zA-Z0-9!@^*$%&)(=+çñÇ][}{\-.,_:;]+/", $_POST["password"]) != false) + $password_err = "Password must be in the format [a-zA-Z0-9!@^*$%&)(=+çñÇ][}{-.,_:;]."; else $password = $_POST["password"]; @@ -67,18 +69,22 @@ if ($_SERVER["REQUEST_METHOD"] == "POST"){ // Check input errors before inserting in database if (empty($username_err) && empty($password_err) && empty($confirm_password_err)) { // Prepare an insert statement - $sql = "INSERT INTO users (username, password) VALUES (?, ?)"; + $sql = "INSERT INTO users (username, password, email, verifycode) VALUES (?, ?, ?, ?)"; - if ($stmt = mysqli_prepare($link, $sql)){ + if ($stmt = mysqli_prepare($link, $sql)) { // Bind variables to the prepared statement as parameters - mysqli_stmt_bind_param($stmt, "ss", $param_username, $param_password); + mysqli_stmt_bind_param($stmt, "ssss", $param_username, $param_password, $param_email, $param_verifycode); // Set parameters $param_username = $username; $param_password = password_hash($password, PASSWORD_DEFAULT); // Creates a password hash + $param_email = $email; + $param_verifycode = base64_encode(random_bytes(12)); // code of size 16 // Attempt to execute the prepared statement - if (mysqli_stmt_execute($stmt)){ + if (mysqli_stmt_execute($stmt)) { + // Send verification email + // Redirect to login page header("location: login.php"); } else { @@ -99,41 +105,45 @@ if ($_SERVER["REQUEST_METHOD"] == "POST"){ - Register - + CSTIMS Register -
-

ARFNET2 Register

-

For those who don't want their data sold

-
-
-
-
- -
-
-
-
- -
-
-
-
- -
-
-
-
- -
-
- - -
-

Login.

-
-
+
+ ARFNET +
+
+
+
+

CSTIMS Register

+

For those who don't want their data sold

+
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+ +
+

Login.

+
+
+
-- cgit v1.2.3