diff --git a/dev_mvc/controller/Database.php b/dev_mvc/controller/Database.php
index 38e5d64..aade9ff 100644
--- a/dev_mvc/controller/Database.php
+++ b/dev_mvc/controller/Database.php
@@ -235,7 +235,6 @@ Class Database{
$query->execute();
//Check hoeveelheid teruggestuurde rijen
if($query->rowCount() == 1){
- echo('session valid in db
');
return true;
}
else{
@@ -243,7 +242,6 @@ Class Database{
}
}
static function invalidateSession($token){
- echo("hek");
//Init db connection
$con = Database::connectToDB();
//Bereid query voor
diff --git a/dev_mvc/controller/UserSession.php b/dev_mvc/controller/UserSession.php
index b35bfab..4ce30a7 100644
--- a/dev_mvc/controller/UserSession.php
+++ b/dev_mvc/controller/UserSession.php
@@ -1,15 +1,12 @@
username = $username;
+ public function UserSession($uid, $token = "undefined"){
$this->uid = $uid;
$this->token = $token;
$this->setExpiry();
- //echo($username."
");
//echo($loginSessionToken);
$_SESSION['usersession'] = $this;
setcookie('usersession', $this->token);
@@ -39,7 +36,6 @@ Class UserSession{
public static function isSessionValid(){
if(isset($_SESSION['usersession'])){
if(!Database::isSessionValid($_SESSION['usersession']->token, $_SESSION['usersession']->uid)){
- echo('session invalid in db');
return false;
}
if(!UserSession::isSessionExpired($_SESSION['usersession'])){
@@ -52,8 +48,7 @@ Class UserSession{
$token = $_COOKIE['usersession'];
$uid = $_COOKIE['uid'];
if(Database::isSessionValid($token,$uid)){
- $username = Database::getUsername($uid);
- $session = new UserSession($username, $uid, $token);
+ $session = new UserSession($uid, $token);
$session->expires = new DateTime(Database::getSessionExpiryDate($token));
}
else{
@@ -81,6 +76,7 @@ Class UserSession{
}
}
public static function isUserSignedIn(){
+ /*
if(UserSession::isSessionValid()){
if(!UserSession::isSessionExpired(UserSession::getSession())){
if(Database::isSessionValid(UserSession::getSession()->token, UserSession::getSession()->uid)){
@@ -95,11 +91,31 @@ Class UserSession{
else{
return false;
}
- }
- public static function updateSigninState(){
- if(!UserSession::isUserSignedIn()){
-
+ */
+
+ //session exists, no need to do anything
+ if(isset($_SESSION['usersession'])){
+ return true;
}
+ else{
+ if(isset($_COOKIE['usersession'])){
+ //check if the session exists in the database
+ if(Database::isSessionTokenInUse($_COOKIE['usersession'])){
+ //check if database expiration datetime is still valid
+ $expirationDateTime = Database::getSessionExpiryDate($_COOKIE['usersession']);
+ if(new DateTime($expirationDateTime) >= new DateTime()){
+ //user is signed in. Restore session
+ $userSession = new UserSession($_COOKIE['uid'], $_COOKIE['usersession']);
+ return true;
+ }
+ else{
+ Database::invalidateSession($_COOKIE['usersession']);
+ }
+ }
+ }
+ }
+ //session either doesn't exist, doesn't exist in cookie, doesn't exist in database, or is expired in the database.
+ return false;
}
}
?>
\ No newline at end of file
diff --git a/dev_mvc/index.php b/dev_mvc/index.php
index fb03563..64c962a 100644
--- a/dev_mvc/index.php
+++ b/dev_mvc/index.php
@@ -19,7 +19,7 @@ include_once("./controller/ActionHandler.php");
session_start();
//Execute Actie zo nodig.
ActionHandler::doAction();
-UserSession::UpdateSigninState();
+
//Store de geselecteerde pagina in variabele $page
diff --git a/dev_mvc/model/model_destroy.php b/dev_mvc/model/actions/model_destroy.php
similarity index 61%
rename from dev_mvc/model/model_destroy.php
rename to dev_mvc/model/actions/model_destroy.php
index ecf6762..10da7af 100644
--- a/dev_mvc/model/model_destroy.php
+++ b/dev_mvc/model/actions/model_destroy.php
@@ -1,3 +1,4 @@
\ No newline at end of file
diff --git a/dev_mvc/model/actions/model_signout.php b/dev_mvc/model/actions/model_signout.php
index 40f138b..2db1a67 100644
--- a/dev_mvc/model/actions/model_signout.php
+++ b/dev_mvc/model/actions/model_signout.php
@@ -1,7 +1,4 @@
token);
-}
+Database::invalidateSession($_COOKIE['usersession']);
session_destroy();
?>
\ No newline at end of file
diff --git a/dev_mvc/model/model_attempt_logout.php b/dev_mvc/model/model_attempt_logout.php
deleted file mode 100644
index be94567..0000000
--- a/dev_mvc/model/model_attempt_logout.php
+++ /dev/null
@@ -1,7 +0,0 @@
-token);
- session_destroy();
-}
-?>
\ No newline at end of file
diff --git a/dev_mvc/model/model_do_login.php b/dev_mvc/model/model_do_login.php
index 7a28ed9..a913762 100644
--- a/dev_mvc/model/model_do_login.php
+++ b/dev_mvc/model/model_do_login.php
@@ -3,7 +3,7 @@ $debuginfo = false;
include_once("./controller/UserSession.php");
include_once("./controller/Database.php");
include_once("./controller/HUtils.php");
-if(!UserSession::isSessionValid()){
+if(!UserSession::isUserSignedIn()){
if(HUtils::issetPost(['email','password'])){
if(Database::isLoginValid($_POST['email'], $_POST['password'])){
//obtain UID
@@ -17,7 +17,7 @@ if(!UserSession::isSessionValid()){
while(Database::isSessionTokenInUse($token)){
$token = UserSession::generateToken();
}
- $a = new UserSession($username, $uid, $token);
+ $a = new UserSession($uid, $token);
if($debuginfo){
echo $a->getSessionToken();
echo "
";
diff --git a/dev_mvc/view/pagecontent/content_header.php b/dev_mvc/view/pagecontent/content_header.php
index 90f8ef8..184e0d0 100644
--- a/dev_mvc/view/pagecontent/content_header.php
+++ b/dev_mvc/view/pagecontent/content_header.php
@@ -4,7 +4,4 @@ if(UserSession::isUserSignedIn()){
}else{
include("./view/pagecontent/header/content_header_signedout.php");
}
-if(!UserSession::isSessionValid()){
- include_once("./model/actions/model_signout.php");
-}
?>
\ No newline at end of file
diff --git a/dev_mvc/view/pagecontent/header/content_header_signedin.php b/dev_mvc/view/pagecontent/header/content_header_signedin.php
index 39a112c..5d052ec 100644
--- a/dev_mvc/view/pagecontent/header/content_header_signedin.php
+++ b/dev_mvc/view/pagecontent/header/content_header_signedin.php
@@ -3,5 +3,5 @@ include_once("./controller/AssetHandler.php");
AssetHandler::printAsset("logo.png", true, 128);
?>
\ No newline at end of file