diff --git a/head.php b/head.php new file mode 100644 index 0000000000000000000000000000000000000000..8abba52bdda9400dcd007be0748f017874bd9b06 --- /dev/null +++ b/head.php @@ -0,0 +1,7 @@ +<meta charset="UTF-8"> +<meta http-equiv="X-UA-Compatible" content="IE=edge"> +<meta name="viewport" content="width=device-width, initial-scale=1.0"> +<title><?php if (isset($doc_title)) { echo $doc_title." | "; } ?>ByeCorps ID</title> + +<link rel="stylesheet" href="/styles/global.css"> +<link rel="stylesheet" href="/fontawesome/css/all.css"> \ No newline at end of file diff --git a/id_handler.php b/id_handler.php new file mode 100644 index 0000000000000000000000000000000000000000..01615cd0fd3cb0019c44e00be1c77f7e547aa0fc --- /dev/null +++ b/id_handler.php @@ -0,0 +1,34 @@ +<?php + +function ganerate_bcid() { + $CHARS = str_split("ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"); + return $CHARS[array_rand($CHARS)].$CHARS[array_rand($CHARS)].$CHARS[array_rand($CHARS)].$CHARS[array_rand($CHARS)].$CHARS[array_rand($CHARS)].$CHARS[array_rand($CHARS)].$CHARS[array_rand($CHARS)]; +} + +function validate_bcid($bcid) { + $stripped_bcid = str_replace([" ", "-"], "", $bcid); + $stripped_bcid = strtoupper($stripped_bcid); + + if (!preg_match('/^[^A-Z^0-9]^/', $stripped_bcid) && strlen($stripped_bcid) == 7) { + return 1; + } + + return 0; // fail condition +} + +$BCID = ganerate_bcid(); + +echo "<pre>"; +echo "Random BCID (unformatted): $BCID +"; +echo "Check if BCID is valid: ".validate_bcid($BCID)." +"; + +if ($query['bcid']) { + echo "BCID provided in the query: ".$query['bcid']." +"; + echo "Checking the BCID provided in the query: ".validate_bcid($query['bcid'])." +"; +} + +?> \ No newline at end of file diff --git a/index.php b/index.php index c4ee53f8580e71490d1a6aca1c6988e3892612bd..f2f3bed174c7903bdef3df1bad2d3ce9451b4e91 100644 --- a/index.php +++ b/index.php @@ -2,56 +2,65 @@ session_start(); +include("config.php"); + $host_string = $_SERVER['HTTP_HOST']; $host = explode('.', $host_string); $uri_string = $_SERVER['REQUEST_URI']; $query_string = explode('?', $uri_string); +$path = $query_string[0]; $uri = array_values(array_filter(explode('/', $uri_string))); if(isset($query_string[1])) { - $uri_string = $query_string[0]; - $query_string = explode('&', $query_string[1]); - $query = array(); - foreach($query_string as $string) { + $uri_string = $query_string[0]; + $query_string = explode('&', $query_string[1]); + $query = array(); + foreach($query_string as $string) { $bits = explode('=', $string); $query[$bits[0]] = $bits[1]; - } + } } else { $query = array(); } +$include = "404.html"; + +// routing +if (!$uri) { + // empty array means index + $include = "landing.html"; +} +else if ($path == "/signin") { + $doc_title = "Sign in"; + include("signin.php"); + exit; +} +else if ($path == "/register") { + $doc_title = "Register"; + include("register.php"); + exit; +} +else if ($path == "/tests/id") { + include("id_handler.php"); + exit; +} +else { + $doc_title = "404"; + http_response_code(404); +} ?> <!DOCTYPE html> <html lang="en"> <head> - <meta charset="UTF-8"> - <meta http-equiv="X-UA-Compatible" content="IE=edge"> - <meta name="viewport" content="width=device-width, initial-scale=1.0"> - <title>ByeCorps ID</title> - - <link rel="stylesheet" href="/styles/global.css"> - <link rel="stylesheet" href="/fontawesome/css/all.css"> + <?php include("head.php"); ?> </head> <body> <?php include("header.php"); ?> <main> - <?php - // routing - if (!$uri) { - // empty array means index - include("landing.html"); - } - else if ($query_string[0] == "/signin") { - include("signin.php"); - } - else { - http_response_code(404); - include("404.html"); - } - ?> + <?php include($include); ?> </main> <?php include("footer.php"); ?> </body> diff --git a/landing.html b/landing.html index d6f90faf5231d04c07de307fe895dd88890ce591..6ad77296ac6d82582180342c3b919b30e4921bae 100644 --- a/landing.html +++ b/landing.html @@ -1,11 +1,9 @@ -<main> - <div class="hero"> - <div class="hero-text"> - <h1><span class="bc-1">Bye</span><span class="bc-2">Corps</span><span class="bc-3"> ID</span></h1> - <p>Log into ByeCorps and beyond with a single ID.</p> - <!-- <p><input type="email" name="loginEmail" id="loginEmail" placeholder="Email" /></p> --> - <a href="/signin" class="button primary">Sign in</a> - <a href="/register" class="button">Create an account</a> - </div> +<div class="hero"> + <div class="hero-text"> + <h1><span class="bc-1">Bye</span><span class="bc-2">Corps</span><span class="bc-3"> ID</span></h1> + <p>Log into ByeCorps and beyond with a single ID.</p> + <!-- <p><input type="email" name="loginEmail" id="loginEmail" placeholder="Email" /></p> --> + <a href="/signin" class="button primary">Sign in</a> + <a href="/register" class="button">Create an account</a> </div> -</main> \ No newline at end of file +</div> \ No newline at end of file diff --git a/register.php b/register.php new file mode 100644 index 0000000000000000000000000000000000000000..eb8ce98fc7e6618426d63a2aa2dfa0654dff1d71 --- /dev/null +++ b/register.php @@ -0,0 +1,56 @@ +<?php + + +if ($_SERVER['REQUEST_METHOD'] === 'POST') { + $DB_SERVER = DB_ADDRESS; + $DB_USER = DB_USERNAME; + $DB_PASSWD = DB_PASSWORD; + $DB_BASE = DB_DATABASE; + + $email = $_POST['email']; + $password = password_hash($_POST['password'], PASSWORD_DEFAULT); + + try { + $conn = new PDO("mysql:host=$DB_SERVER;dbname=$DB_BASE", $DB_USER, $DB_PASSWD); + // set the PDO error mode to exception + $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); + $sql = "INSERT INTO `accounts` (`email`, `password`, `verified`) VALUES ('$email', '$password', '0')"; + try{ + $stmt = $conn->prepare($sql); + $stmt->execute($query); + $result = $stmt->fetch(); + echo "Failed successfully: $result"; + } catch (PDOException $e) { + http_response_code(500); + die("An error occured: $e"); + } + } + catch(PDOException $e) { + die ("Connection failed: " . $e->getMessage()); + } + echo '<pre>'; + print_r($_POST); + + exit; +} + +?> + +<!DOCTYPE html> +<html lang="en"> +<head> + <?php include("head.php"); ?> +</head> +<body> + <?php include("header.php"); ?> + <main> + <h2>Sign in</h2> + <form action="#" method="post"> + <input type="email" name="email" id="email" placeholder="Email"> + <input type="password" name="password" id="password" placeholder="Password"> + <button type="submit">Submit</button> + </form> + </main> + <?php include("footer.php"); ?> +</body> +</html> \ No newline at end of file diff --git a/signin.php b/signin.php deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000