From 40e0291517a1e5da323daed39be8b49bec3711d9 Mon Sep 17 00:00:00 2001 From: JoseluCross Date: Mon, 1 Oct 2018 16:47:43 +0200 Subject: [PATCH] #14 --- Source/assets/html/loginregister.twig | 8 ++++++-- Source/src/DB.php | 8 +++++--- Source/src/app.php | 19 ++++++++++--------- Source/src/users.php | 10 +++++----- 4 files changed, 26 insertions(+), 19 deletions(-) diff --git a/Source/assets/html/loginregister.twig b/Source/assets/html/loginregister.twig index b53129a..416b182 100644 --- a/Source/assets/html/loginregister.twig +++ b/Source/assets/html/loginregister.twig @@ -8,10 +8,14 @@
- {% if page.state == 1 %} + {% if page.state == 'BAD_CREDENTIAL' %}

Bad credentials

- {% elseif page.state == 2 %} + {% elseif page.state == 'POST_ERROR' %}

Error during sign-up, check your data

+ {% elseif page.state == 'MAIL_IN_USE' %} +

The e-mail is currently in use

+ {% elseif page.state == 'NICK_IN_USE' %} +

The nickname is currently in use

{% endif %}
diff --git a/Source/src/DB.php b/Source/src/DB.php index bab7326..ea3d17c 100644 --- a/Source/src/DB.php +++ b/Source/src/DB.php @@ -382,9 +382,9 @@ class DB * @param $email user's email * @return int user's identifier */ - public function loadIDU($email) + public function loadIDU($field,$mode='email') { - $query = "SELECT IDU FROM Users WHERE email='" . $email . "'"; + $query = "SELECT IDU FROM Users WHERE $mode='" . $field . "'"; return $this->getQuery($query)["IDU"]; } @@ -434,7 +434,9 @@ class DB public function register($email, $pass, $nick) { if ($this->loadIDU($email)) - return false; + return 'MAIL_IN_USE'; + else if ($this->loadIDU($nick,'nick')) + return 'NICK_IN_USE'; else { $password = hash('sha256', $pass); dbw_query($this->conn, "INSERT INTO Users (`email`,`pass`,`nick`) VALUES ('$email','$password','$nick')"); diff --git a/Source/src/app.php b/Source/src/app.php index c42dfa0..213e9d8 100644 --- a/Source/src/app.php +++ b/Source/src/app.php @@ -162,7 +162,7 @@ $app->get('/signup', function(Request $request) use ($app){ })->bind('register')->method('GET|POST'); -function loginRegister($default,$state=0){ +function loginRegister($default,$state=''){ global $app; $page = array( @@ -179,20 +179,21 @@ function loginOrRegister($state,$request){ switch ($state){ case 3: - return loginRegister('login',1); + return loginRegister('login','BAD_CREDENTIAL'); case 1: - if(checklogin($request->get('email'),$request->get('pwd'))){ + if(checklogin($request->get('email'),$request->get('pwd'))==''){ return $app->redirect($app["url_generator"]->generate('home')); }else{ - return loginRegister("login",1); + return loginRegister("login",'BAD_CREDENTIAL'); } case 2: - if(register($request->get('emailre'),$request->get('emailre-re'), - $request->get('pwdre'), $request->get('pwdre-re'),$request->get('nick'))){ + $state = register($request->get('emailre'),$request->get('emailre-re'), + $request->get('pwdre'), $request->get('pwdre-re'),$request->get('nick')); + if ($state == '') return $app->redirect($app["url_generator"]->generate('home')); - }else{ - return loginRegister("sing-up",2); - } + else + return loginRegister("sing-up",$state); + } } diff --git a/Source/src/users.php b/Source/src/users.php index 24169d8..31dcbde 100644 --- a/Source/src/users.php +++ b/Source/src/users.php @@ -34,7 +34,7 @@ function checklogin($email,$pass){ $_SESSION['token'] = $token; $_SESSION['sessionID'] =$idu; $db->close(); - return true; + return ''; } $db->close(); return false; @@ -51,14 +51,14 @@ function checklogin($email,$pass){ function register($email,$emailre,$pass,$passre,$nick){ $db = new DB(); if($emailre != $email || $pass != $passre) - return false; - $bool = $db->register($email,$pass,$nick); - if($bool) { + return 'POST_ERROR'; + $state = $db->register($email,$pass,$nick); + if($state) { $db->close(); return checklogin($email, $pass); }else { $db->close(); - return false; + return $state; } }