EuroCent
Klappstuhl 2.0
Guten Morgen zusammen,
ich habe da folgende Frage/Problem.
Und zwar möchte Ich der Session Klasse eine weitere Funktion hinzufügen...
Die Session wird dann über Session::getInstance() aufgerufen.
Wie kann Ich aber weitere Konstante angeben?
In der Klasse habe Ich eine private Variable "$sessionState" und diese wird standardmäßig auf SESSION_NOT_STARTED gesetzt.
Nun möchten wir aber die Variable $sessionState manipulieren.
Allerdings wenn Ich einen REDIRECT auf eine Seite mache, wird ja automatisch wieder SESSION_NOT_STARTED angelegt.
Wie aber Manipuliere Ich genau diesen Statement damit ich den unter der Funktion "startSession" entsprechend Prüfen kann?
Session:
ich habe da folgende Frage/Problem.
Und zwar möchte Ich der Session Klasse eine weitere Funktion hinzufügen...
Die Session wird dann über Session::getInstance() aufgerufen.
Wie kann Ich aber weitere Konstante angeben?
In der Klasse habe Ich eine private Variable "$sessionState" und diese wird standardmäßig auf SESSION_NOT_STARTED gesetzt.
Nun möchten wir aber die Variable $sessionState manipulieren.
Allerdings wenn Ich einen REDIRECT auf eine Seite mache, wird ja automatisch wieder SESSION_NOT_STARTED angelegt.
Wie aber Manipuliere Ich genau diesen Statement damit ich den unter der Funktion "startSession" entsprechend Prüfen kann?
Session:
PHP:
<?php
require_once 'User.php';
class Session {
const SESSION_STARTED = true;
const SESSION_NOT_STARTED = false;
private $sessionState = self::SESSION_NOT_STARTED;
private static $instance;
private function __constructor() {}
function __destruct() {}
public static function getInstance() {
if(!isset(self::$instance)) {
self::$instance = new self;
}
self::$instance->startSession();
return self::$instance;
}
public function startSession($u = '') {
if($this->sessionState == self::SESSION_NOT_STARTED) {
$this->sessionState = session_start();
}
$_SESSION['REMOTE_USER'] = $_SERVER['REMOTE_USER'];
$this->getSessionData_RemoteUser($u);
return $this->sessionState;
}
public function getSessionData_RemoteUser($userLogin = '') {
global $con;
if ($userLogin == "" || $con['devExtent'] == '') {
$userLogin = $_SESSION['REMOTE_USER'];
}
if (isset($_SESSION['loggedAS'])) {
$userLogin = $_SESSION['loggedAS'];
//UserObjekt wird angelegt
$objUser = new User();
$objUser->setConnection($con); //Verbindung herstellen
//methode holt die Metadaten des Users -> Standort/Team...
$userData = $objUser->getUserData($userLogin);
$_SESSION['userData'] = $userData;
$UserTLData = $objUser->getUserTL($userLogin);
$_SESSION['UserTLData'] = $UserTLData;
///WEITER
//holt sich die Rechte des User aus der Benutzerverwaltung
$userRights = $objUser->getUserRights($userLogin);
$_SESSION['userRights'] = $userRights;
//holt sich die GruppenID des User aus der Benutzerverwaltung
$userGroupID = $objUser->getUserGroups($userLogin);
$_SESSION['userGroupID'] = $userGroupID;
//holt sich die GruppenName des User aus der Benutzerverwaltung
$userGroupName = $objUser->getUserGroupsName($userLogin);
$_SESSION['userGroupName'] = $userGroupName;
$objUser->setUserLastLogin($userLogin);
} else {
//UserObjekt wird angelegt
$objUser = new User();
$objUser->setConnection($con); //Verbindung herstellen
//methode holt die Metadaten des Users -> Standort/Team...
$userLogin = str_replace("VF-ROOT\\","",$userLogin);
$userData = $objUser->getUserData($userLogin);
$_SESSION['userData'] = $userData;
$UserTLData = $objUser->getUserTL($userLogin);
$_SESSION['UserTLData'] = $UserTLData;
///WEITER
//holt sich die Rechte des User aus der Benutzerverwaltung
$userRights = $objUser->getUserRights($userLogin);
$_SESSION['userRights'] = $userRights;
//holt sich die GruppenID des User aus der Benutzerverwaltung
$userGroupID = $objUser->getUserGroups($userLogin);
$_SESSION['userGroupID'] = $userGroupID;
//holt sich die GruppenName des User aus der Benutzerverwaltung
$userGroupName = $objUser->getUserGroupsName($userLogin);
$_SESSION['userGroupName'] = $userGroupName;
$objUser->setUserLastLogin($userLogin);
}
}
public function checkUserRights($title, $right) {
//UserObjekt wird angelegt
$objUser = new User();
//methode holt die Metadaten des Users -> Standort/Team...
if ($objUser->getUserData($title, $right)) {
return true;
} else {
return false;
}
}
}