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 --- .gitignore | 1 + README.md | 4 ++- arfnet_logo.png | Bin 0 -> 78409 bytes dbinit.sql | 10 ++++++ index.php | 36 +++++++++++++++++++ login.php | 58 ++++++++++++++++--------------- rack.jpg | Bin 0 -> 1914172 bytes register.php | 106 +++++++++++++++++++++++++++++++------------------------- style.css | 57 ++++++++++++++++++++++++++++++ tile1.jpg | Bin 0 -> 1500 bytes 10 files changed, 196 insertions(+), 76 deletions(-) create mode 100755 arfnet_logo.png create mode 100644 index.php create mode 100644 rack.jpg create mode 100644 style.css create mode 100755 tile1.jpg diff --git a/.gitignore b/.gitignore index 4f4773f..c9f1731 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ config.php +phpMyAdmin/ diff --git a/README.md b/README.md index 788add9..b7441af 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,9 @@ User types: Report problems with CST or such as password changes to admin@arf20.com FILES: + index.html + landing page, branding? + register.php -> login.php registers client to db send email with verification link @@ -53,7 +56,6 @@ FILES: SQL: -Database: arfnet2 Tables: users User logins id autoincrement, username, password (hash), email, email verification code, user type { client, helpdesk, accountant, admin }, register date diff --git a/arfnet_logo.png b/arfnet_logo.png new file mode 100755 index 0000000..82adbef Binary files /dev/null and b/arfnet_logo.png differ diff --git a/dbinit.sql b/dbinit.sql index 271eb2b..95cdf2f 100644 --- a/dbinit.sql +++ b/dbinit.sql @@ -1,2 +1,12 @@ CREATE DATABASE arfnet2; +CREATE TABLE `arfnet2`.`users` ( + `id` INT NOT NULL AUTO_INCREMENT , + `username` VARCHAR(31) NOT NULL , + `password` VARCHAR(255) NOT NULL , + `email` VARCHAR(127) NOT NULL , + `verifycode` VARCHAR(31) NOT NULL , + `type` ENUM('client','helpdesk','accountant','admin') NOT NULL , + `regdate` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP , + PRIMARY KEY (`id`) +); diff --git a/index.php b/index.php new file mode 100644 index 0000000..d036d1b --- /dev/null +++ b/index.php @@ -0,0 +1,36 @@ + + + + + + ARFNET CSTIMS + + +
+ ARFNET +
+
+
+
+
+

ARFNET Client Service Ticket and Invoice Management System

+

State of the art hosting solution with ultra personalised service

+
+
+

Our cutting edge datacenter

+
+
+
+

Services and plans

+ +
+
+
+ +
+
+ + \ No newline at end of file diff --git a/login.php b/login.php index c26b2e7..214eb2e 100755 --- a/login.php +++ b/login.php @@ -99,32 +99,36 @@ if($_SERVER["REQUEST_METHOD"] == "POST"){ - - - Login - - - - -
-

arfCloud Login

-

For those who don't want their data sold by Google

-
" method="post"> -
-
-
- -
-
-
-
- + + + CSTIMS Login + + + +
+ ARFNET +
+
+
+
+

CSTIMS Login

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

Don't have an account? Sign up now.

+
-
- -
-

Don't have an account? Sign up now.

- -
- + + diff --git a/rack.jpg b/rack.jpg new file mode 100644 index 0000000..13155e2 Binary files /dev/null and b/rack.jpg differ 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.

+
+
+
diff --git a/style.css b/style.css new file mode 100644 index 0000000..a02aae1 --- /dev/null +++ b/style.css @@ -0,0 +1,57 @@ +header *{ + display: inline-block; + vertical-align: middle; +} + +.title { + font-size: 36px; + vertical-align: middle; +} + +body { + background-image: url("tile1.jpg"); + background-repeat: repeat; +} + +.fst { + font-size: 150%; +} + +.sec { + margin-left: 20px; + font-size: 150%; +} + +.col { + float: left; + width: 50%; +} + +.col1 { + float: left; + width: 80%; +} + +.col2 { + float: left; + width: 20%; +} + +.row:after { + content: ""; + display: table; + clear: both; +} + +.img { + width: 60%; +} + +.wrapper{ + width: 350px; + padding: 20px; + border-style: double; + margin: auto; + margin-top: 200px; +} + diff --git a/tile1.jpg b/tile1.jpg new file mode 100755 index 0000000..2e993e3 Binary files /dev/null and b/tile1.jpg differ -- cgit v1.2.3