From 811794f7f6e51e93addd2dba74451395e3d11fec Mon Sep 17 00:00:00 2001 From: Razshal Date: Fri, 11 May 2018 17:28:22 +0200 Subject: [PATCH] verification fixed --- config/setup.php | 2 +- controller/C_signin.php | 17 ----------- controller/C_verify.php | 14 --------- index.php | 64 ++++++++++++++++++++++++++++++---------- model/class_database.php | 34 +++++++++++++-------- views/login.php | 6 ++-- views/signin.php | 62 ++++++++++++++++---------------------- views/verify.php | 30 +++++++------------ 8 files changed, 108 insertions(+), 121 deletions(-) delete mode 100644 controller/C_signin.php delete mode 100644 controller/C_verify.php diff --git a/config/setup.php b/config/setup.php index 218090a..f6a5655 100644 --- a/config/setup.php +++ b/config/setup.php @@ -1,4 +1,4 @@ - +

Setup tried, Site status :

newUser($_POST["login"], - $_POST["mail"], $_POST["password"]); -} -else if (isset($_POST["submit"])) - $querySuccess = false; \ No newline at end of file diff --git a/controller/C_verify.php b/controller/C_verify.php deleted file mode 100644 index e13541d..0000000 --- a/controller/C_verify.php +++ /dev/null @@ -1,14 +0,0 @@ -verify_user($_POST["login"]); -else - $done = false; \ No newline at end of file diff --git a/index.php b/index.php index b879303..9c1fe01 100644 --- a/index.php +++ b/index.php @@ -20,30 +20,62 @@ /************* Router ************/ -if (isset($_GET["action"]) && $_GET["action"] === "login") { +if (isset($_GET) && isset($_GET["action"])) { + if ($_GET["action"] === "login") + { if (isset($_POST) && isset($_POST["submit"]) && $_POST["submit"] === "Login" && isset($_POST["login"]) && isset($_POST["password"]) && ($auth = $database->authenticate($_POST["login"], $_POST["password"]))) $_SESSION["user"] = $_POST["login"]; - require ("views/login.php"); -} + require ("views/login.php"); + } -else if (isset($_GET["action"]) && $_GET["action"] === "logout") { - if ($database !== NULL) { - if (isset($_SESSION) - && isset($_SESSION["user"]) && $_SESSION["user"] != "") - $_SESSION["user"] = ""; + else if ($_GET["action"] === "logout") + { + if ($database !== NULL) { + if (isset($_SESSION) + && isset($_SESSION["user"]) && $_SESSION["user"] != "") + $_SESSION["user"] = ""; + } + require ("views/structure/template.php"); } -} -else if (isset($_GET["action"]) && $_GET["action"] === "setup") { - if ($database !== NULL) - $success = $database->initiate(); - else - $success= false; - require ("config/setup.php"); -} + else if ($_GET["action"] === "setup") + { + if ($database !== NULL) + $success = $database->initiate(); + else + $success = false; + require ("config/setup.php"); + } + else if ($_GET["action"] === "signin") { + if ($database !== NULL && isset($_POST) + && isset($_POST["submit"]) && $_POST["submit"] === "Sign-in") + { + $validMail = validNewMail($database, $_POST["mail"]); + $validPass = validNewPassword($_POST["password"]); + $validLogin = validNewLogin($database, $_POST["login"]); + if ($validMail && $validPass && $validLogin) + { + $querySuccess = $database->newUser($_POST["login"], + $_POST["mail"], $_POST["password"]); + } + } + else if (isset($_POST["submit"])) + $querySuccess = false; + require ("views/signin.php"); + } + else if ($_GET["action"] === "verify") + { + $done = 0; + if (isset($_GET) && isset($_GET["user"]) && isset($_GET["token"])) + $done = $database->verify_user($_GET["user"], $_GET["token"]); + else + $done = false; + require ("views/verify.php"); + } +} require ("views/structure/template.php"); \ No newline at end of file diff --git a/model/class_database.php b/model/class_database.php index 9a746a9..7e0fed7 100644 --- a/model/class_database.php +++ b/model/class_database.php @@ -74,7 +74,7 @@ public function initiate() { "); return true; } catch (Exception $e) { - return $e; + return false; } } @@ -85,7 +85,7 @@ private function hash_pw($pw) { private function sendUserCheckMail($login, $mail, $token) { $token = - "http://{$this->SITE_ADDRESS}/views/verify.php" . + "http://{$this->SITE_ADDRESS}/index.php" . "?action=verify&user={$login}&token={$token}"; $subject = 'Activate your Camagru account'; $message = @@ -101,8 +101,8 @@ private function sendUserCheckMail($login, $mail, $token) "Validate account
" . "Or access this page on a web browser
{$token}
"; $headers = - "From: noreply@{$this->SITE_ADDRESS}.com" . "\r\n" . - "Reply-To: noreply@{$this->SITE_ADDRESS}.com" . "\r\n" . + "From: noreply@{$this->SITE_ADDRESS}" . "\r\n" . + "Reply-To: noreply@{$this->SITE_ADDRESS}" . "\r\n" . 'X-Mailer: PHP/' . phpversion() . 'MIME-Version: 1.0' . "\r\n" . 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; @@ -138,16 +138,24 @@ public function newUser($login, $mail, $password) } } - public function verify_user ($login) { - if (validChars($login) && !empty($this->get_user($login))) { - $query = $this->PDO->prepare(" - UPDATE user - SET is_verified = 1 - WHERE login = :login"); - $query->execute(array(':login' => $_GET["user"])); - return (!empty($query->fetchAll())); + public function verify_user ($login, $token) { + try { + if (validChars($login) + && !empty($user = $this->get_user($login)[0]) + && !$user["is_verified"] == 1) { + $query = $this->PDO->prepare(" + UPDATE user SET is_verified = 1 + WHERE login = :login + AND check_token = :token"); + $query->execute(array( + ':login' => $login, + ':token' => $token)); + return ($query->rowCount() > 0); + } else if (isset($user) && $user["is_verified"] == 1) + return true; + } catch (Exception $e) { + return false; } - return false; } public function get_user($login) { diff --git a/views/login.php b/views/login.php index 6e64801..0fc191b 100644 --- a/views/login.php +++ b/views/login.php @@ -14,13 +14,13 @@ if (!isset($_SESSION) || !isset($_SESSION["user"]) || $_SESSION["user"] === "") { ?> -
+

Login





- Don't have an account ? Sign in - Forgot your password ? Reset password + Don't have an account ? Sign in + Forgot your password ? Reset password
- - - -
-
- Mail is already in use or not valid"); - if (isset($validLogin) && !$validLogin) - echo ("

Login is already in use or not valid - (4 chars >= login <= 20 chars)

"); - if (isset($validPass) && !$validPass) - echo ("

Password should be at least 8 chars and - contains at least one letter and one digit

"); - if (isset($querySuccess) && $querySuccess === false) - echo ("

Error during user creation, please retry

"); - else if (isset($querySuccess) && $querySuccess === true) - echo ("

Account created

"); - ?> -
-
-

Sign-in


-
-
-
-
-
-
- - - - \ No newline at end of file + +
Mail is already in use or not valid"); + if (isset($validLogin) && !$validLogin) + echo ("

Login is already in use or not valid + (4 chars >= login <= 20 chars)

"); + if (isset($validPass) && !$validPass) + echo ("

Password should be at least 8 chars and + contains at least one letter and one digit

"); + if (isset($querySuccess) && $querySuccess === false) + echo ("

Error during user creation, please retry

"); + else if (isset($querySuccess) && $querySuccess === true) + echo ("

Account created

");?> +
+
+

Sign-in


+
+
+
+
+
+ \ No newline at end of file diff --git a/views/verify.php b/views/verify.php index b42987a..93937e6 100644 --- a/views/verify.php +++ b/views/verify.php @@ -1,20 +1,10 @@ - - - - -
-
- Error wrong token/login"); - if ($done === true) - echo ("

Account activated

"); - ?> -
-
- - - \ No newline at end of file + +
+ Error wrong token/login"); + if ($done === true) + echo ("

Account activated

"); + ?> +
+ \ No newline at end of file