F diff --git a/css/style.css b/css/style.css --- a/css/style.css +++ b/css/style.cssbottom: 0;z-index: -200;}++ #loginform {+ display: none;+ }F diff --git a/index.html b/index.html deleted file mode 100644 --- a/index.html +++ /dev/null- <!DOCTYPE html>- <html>- <head>- <meta charset="utf-8">- <title>shady file upload</title>- <link rel="stylesheet" type="text/css" href="css/style.css">- </head>-- <body>- <div class="overlay" style="height: 100%;">- <div class="vert2">- <div id="header">- <p class="logo">shady_file_upload</p>- </div>-- <div id="page">- <div id="hero" class="overlay">- <div id="arrows">- <img src="svg/arrow.svg" id="protoarrow" style="display: none">- </div>-- <div class="vcenter">- <p>file upload service</p>- <p class="big">that <span class="blue">just about works</span></p>- <p>most of the time</p>- </div>- </div>-- <div class="vcenter">- <form name="hero_form" action="/php/register.php" method="post" onsubmit="return validate_hero_form()">- <h2>Get started</h2>- <div class="content">- <p>Username</p>- <input type="text" id="username" name="username">- <p id="username-length-error" class="hero_form_error" hidden>Please specify a username</p>-- <p>Email address</p>- <input type="text" id="email" name="email">- <p id="email-error" class="hero_form_error" hidden>Invalid email address</p>-- <p>Password</p>- <input type="password" id="password" name="password">- <p id="password-length-error" class="hero_form_error" hidden>Please provide a password</p>-- <p>Repeat Password</p>- <input type="password" id="password2" name="password2">- <p id="password-match-error" class="hero_form_error" hidden>Passwords didn't match</p>- <input type="submit" value="Sign up">- <p style="font-size: 1.1em;">Don't have an account? <a href="login.html">Log in</a>- </div>- </form>- </div>--- </div>- </div>-- <img src="svg/bottom.svg" class="bgbottom">- </div>-- <script src="js/arrows.js"></script>- <script src="js/validate_hero.js"></script>-- </body>- <html>F diff --git a/index.php b/index.php new file mode 100644 --- /dev/null +++ b/index.php+ <!DOCTYPE html>+ <html>+ <head>+ <meta charset="utf-8">+ <title>shady file upload</title> <link rel="stylesheet" type="text/css" href="css/style.css"> </head>++ <body>+ <div class="overlay" style="height: 100%;">+ <div class="vert2">+ <div id="header">+ <p class="logo">shady_file_upload</p>+ </div>++ <div id="page">+ <div id="hero" class="overlay">+ <div id="arrows">+ <img src="svg/arrow.svg" id="protoarrow" style="display: none">+ </div>++ <div class="vcenter">+ <p>file upload service</p>+ <p class="big">that <span class="blue">just about works</span></p>+ <p>most of the time</p>+ </div>+ </div>++ <div class="vcenter" id="signupform">+ <form name="hero_form" action="/php/register.php" method="post" onsubmit="return validate_hero_form()">+ <h2>Get started</h2>+ <div class="content">+ <p>Username</p>+ <input type="text" id="username" name="username">+ <p id="username-length-error" class="hero_form_error" hidden>Please specify a username</p>++ <p>Email address</p>+ <input type="text" id="email" name="email">+ <p id="email-error" class="hero_form_error" hidden>Invalid email address</p>++ <p>Password</p>+ <input type="password" id="password" name="password">+ <p id="password-length-error" class="hero_form_error" hidden>Please provide a password</p>++ <p>Repeat Password</p>+ <input type="password" id="password2" name="password2">+ <p id="password-match-error" class="hero_form_error" hidden>Passwords didn't match</p>+ <input type="submit" value="Sign up">+ <p style="font-size: 1.1em;">Already have an account? <a href="#" onclick="showLogin(true)">Log in</a>+ </div>+ </form>+ </div>++ <div class="vcenter" id="loginform">+ <form name="hero_form" action="/php/login.php" method="post" onsubmit="return validate_hero_login_form()">+ <h2>Login</h2>+ <div class="content">+ <p>Username</p>+ <input type="text" id="username" name="username">+ <p id="username-length-error" class="hero_form_error" hidden>Please enter a username</p>+ <p>Password</p>+ <input type="password" id="password" name="password">+ <input type="submit" value="Login">+ <p style="font-size: 1.1em;">Don't have an account? <a href="#" onclick="showLogin(false)">Sign up</a>+ </div>+ </form>+ </div>+++ </div>+ </div>++ <img src="svg/bottom.svg" class="bgbottom">+ </div>++ <script src="main.js"></script>++ </body>+ <html>F diff --git a/js/arrows.js b/js/arrows.js deleted file mode 100644 --- a/js/arrows.js +++ /dev/null-- arrows = [];-- const minSpeed = 3;- const maxSpeed = 8;- const delay = 1500;- const lifetime = 20000;-- function make_arrow() {- const svg = document.getElementById("protoarrow").cloneNode();- svg.style.left = Math.random() * 100 + '%';- svg.style.display = 'block';- document.getElementById('arrows').append(svg);- const ob = {- y: -800,- svg: svg,- speed: Math.random() * (maxSpeed - minSpeed) + minSpeed- };- arrows.push(ob);- setTimeout(make_arrow, delay);- setTimeout(() => {- svg.remove();- arrows.shift();- }, lifetime);- }-- function update() {- for (const arrow of arrows) {- arrow.y += arrow.speed;- arrow.svg.style.bottom = arrow.y + 'px';- }-- window.requestAnimationFrame(update);- }-- make_arrow();- update();F diff --git a/js/validate_hero.js b/js/validate_hero.js deleted file mode 100644 --- a/js/validate_hero.js +++ /dev/null-- function clear_hero_errors()- {- let errors = document.getElementsByClassName("hero_form_error");- let i;- for (i = 0; i < errors.length; i++)- {- errors[i].hidden = true;- }- }- function validate_hero_login_form()- {- let username=document.forms["hero_form"]["username"].value;- let flag=true;- clear_hero_errors();-- if(username.length==0)- {- document.getElementById("username-length-error").hidden=false;- flag=false;- }- document.activeElement.blur();- return flag;- }- function validate_hero_form()- {- let username=document.forms["hero_form"]["username"].value;- let email=document.forms["hero_form"]["email"].value;- let password=document.forms["hero_form"]["password"].value;- let password2=document.forms["hero_form"]["password2"].value;-- let flag=true;- clear_hero_errors();-- if(username.length==0)- {- document.getElementById("username-length-error").hidden=false;- flag=false;- }- if(!email.match(/\S+@\S+/))- {- document.getElementById("email-error").hidden=false;- flag=false;- }- if(password.length==0)- {- document.getElementById("password-length-error").hidden=false;- flag=false;- }- if(password !== password2)- {- document.getElementById("password-match-error").hidden=false;- flag=false;- }- document.activeElement.blur();- return flag;-- }F diff --git a/login.html b/login.html deleted file mode 100644 --- a/login.html +++ /dev/null- <!DOCTYPE html>- <html>- <head>- <meta charset="utf-8">- <title>shady file upload</title>- <link rel="stylesheet" type="text/css" href="css/style.css">- </head>-- <body>- <div class="overlay" style="height: 100%;">- <div class="vert2">- <div id="header">- <p class="logo">shady_file_upload</p>- </div>-- <div id="page">- <div id="hero" class="overlay">- <div id="arrows">- <img src="svg/arrow.svg" id="protoarrow" style="display: none">- </div>-- <div class="vcenter">- <p>file upload service</p>- <p class="big">that <span class="blue">just about works</span></p>- <p>most of the time</p>- </div>- </div>-- <div class="vcenter">- <form name="hero_form" action="/php/login.php" method="post" onsubmit="return validate_hero_login_form()">- <h2>Login</h2>- <div class="content">- <p>Username</p>- <input type="text" id="username" name="username">- <p id="username-length-error" class="hero_form_error" hidden>Please enter a username</p>- <p>Password</p>- <input type="password" id="password" name="password">- <input type="submit" value="Login">- <p style="font-size: 1.1em;">Already have an account? <a href="index.html">Sign up</a>- </div>- </form>- </div>--- </div>- </div>-- <img src="svg/bottom.svg" class="bgbottom">- </div>-- <script src="js/arrows.js"></script>- <script src="js/validate_hero.js"></script>-- </body>- <html>F diff --git a/main.js b/main.js new file mode 100644 --- /dev/null +++ b/main.js+ arrows = [];++ const minSpeed = 3;+ const maxSpeed = 8;+ const delay = 1500;+ const lifetime = 20000;++ function make_arrow() {+ const svg = document.getElementById("protoarrow").cloneNode();+ svg.style.left = Math.random() * 100 + '%';+ svg.style.display = 'block';+ document.getElementById('arrows').append(svg);+ const ob = {+ y: -800,+ svg: svg,+ speed: Math.random() * (maxSpeed - minSpeed) + minSpeed+ };+ arrows.push(ob);+ setTimeout(make_arrow, delay);+ setTimeout(() => {+ svg.remove();+ arrows.shift();+ }, lifetime);+ }++ function update() {+ for (const arrow of arrows) {+ arrow.y += arrow.speed;+ arrow.svg.style.bottom = arrow.y + 'px';+ }++ window.requestAnimationFrame(update);+ }++ make_arrow();+ update();+++++ function clear_hero_errors()+ {+ var errors = document.getElementsByClassName("hero_form_error");+ var i;+ for (i = 0; i < errors.length; i++)+ {+ errors[i].hidden = true;+ }+ }+ function validate_hero_login_form()+ {+ var username=document.forms["hero_form"]["username"].value;+ var flag=true;+ clear_hero_errors();++ if(username.length==0)+ {+ document.getElementById("username-length-error").hidden=false;+ flag=false;+ }+ document.activeElement.blur();+ return flag;+ }+ function validate_hero_form()+ {+ var username=document.forms["hero_form"]["username"].value;+ var email=document.forms["hero_form"]["email"].value;+ var password=document.forms["hero_form"]["password"].value;+ var password2=document.forms["hero_form"]["password2"].value;++ var flag=true;+ clear_hero_errors();++ if(username.length==0)+ {+ document.getElementById("username-length-error").hidden=false;+ flag=false;+ }+ if(!email.match(/\S+@\S+/))+ {+ document.getElementById("email-error").hidden=false;+ flag=false;+ }+ if(password.length==0)+ {+ document.getElementById("password-length-error").hidden=false;+ flag=false;+ }+ if(password !== password2)+ {+ document.getElementById("password-match-error").hidden=false;+ flag=false;+ }+ document.activeElement.blur();+ return flag;++ }++ function showLogin(l) {+ document.getElementById("loginform").style.display = l ? "flex" : "none";+ document.getElementById("signupform").style.display = l ? "none" : "flex";+ }F diff --git a/php/configuration.php b/php/configuration.php --- a/php/configuration.php +++ b/php/configuration.php$domain_name="localhost";- $database_name="adam";- $database_username="adam";- $database_password="asdfd";- $database_location="127.0.0.1";-+ if (file_exists("/home/alex")) {+ $database_name="alex";+ $database_username="alex";+ $database_password="lol";+ $database_location="127.0.0.1";+ }+ else {+ $database_name="adam";+ $database_username="adam";+ $database_password="asdfd";+ $database_location="127.0.0.1";+ }$password_hash_algo=PASSWORD_BCRYPT;-$has_email_verification=false;?>F diff --git a/php/database.php b/php/database.php --- a/php/database.php +++ b/php/database.phpglobal $database_username;global $database_password;global $database_location;- try- {+$this->pdo=new PDO("mysql:dbname={$database_name};host={$database_location}",$database_username,$database_password);- }catch(PDOException $e)- {- error_log("Could not get database {$database_name} from {$database_location}, {$e} ");- die("The cow bought the farm");- }}/*returns false if this isn't a user, otherwise returns the user*/F diff --git a/php/misc.php b/php/misc.php --- a/php/misc.php +++ b/php/misc.php<?phprequire_once "user.php";- function validate_credentials(string $username,string $email,string $password,string $password2) : bool- {- return true;- }-function generate_email_verification_link(){/*TODO*/F diff --git a/php/register.php b/php/register.php --- a/php/register.php +++ b/php/register.php$password2=$_POST["password2"];$email=$_POST["email"];++ function validate_credentials(string $username,string $email,string $password,string $password2) : bool+ {+ return true;+ }++/*check if we are given shady credentials*/if(!validate_credentials($username,$email,$password,$password2)){