Hallo,
mir hat vor einiger Zeit ein Arbeitskollege mal einen session-Klasse geschrieben (leider erreiche ich ihn nicht mehr da die Firma platt ist.
Nun möchte ich dies Klasse für register_globals=off tauglich machen.
weiter möchte ich nur die superglobals wie $_SESSION verwenden
Da ich untter OOP keine Ahnung habe wäre ich sehr dankbar wenn mir hier jemand ein wenig helfen könnte
Hier mal der Code (später folgt dann der Aufruf ) ist eigentlich nicht viel
class mySession
{
var $SessionCookieName = "sid";
var $SecureCookieName = "secureCookie";
var $SecureCookieValue;
var $sid;
var $sessionOK = false;
var $arrSessionData;
function mySession($nNewSession=0)
{
if($nNewSession)
{
if( $this->issetCookie($this->SessionCookieName ) )
{
session_id($this->getSessionID());
session_start();
session_destroy();
}
$this->createSession();
}else{
$this->sid = $this->getSessionID();
$this->startSession();
}
}
function createSession()
{
//echo "<pre> session-array===>";print_r($arrSession);
global $arrSession;
session_start();
$this->sid = session_id();
setcookie($this->SessionCookieName, $this->sid);
// mit session_register wollte ich eigentlich nichtmehr arbeiten da ich lieber die
// superglobals verwenden möchte also anstatt
//session_register
//$_SESSION =
//oder
// $_SESSION['arrSession'] =
session_register("arrSession");
$this->arrSessionData = &$arrSession;
}
function startSession()
{
global $arrSession;
session_id($this->sid);
session_start();
session_register("arrSession");
$this->arrSessionData = &$arrSession;
}
function destroySession()
{
session_destroy();
}
function getSessionID()
{
return $this->getCookie($this->SessionCookieName);
}
function issetCookie($strCookieName)
{
global $$strCookieName;
return isset($$strCookieName);
}
function getCookie($strCookieName)
{
global $$strCookieName;
return $$strCookieName;
}
function setSessionValue($strArrayItem, $Value)
{
$this->arrSessionData[$strArrayItem] = $Value;
}
function getSessionValue($strArrayItem)
{
return $this->arrSessionData[$strArrayItem];
}
function getSessionInnerValue($strArrayItem,$Value)
{
return $this->arrSessionData[$strArrayItem][$Value];
}
}
?>
hier der Aufruf aus dem programm raus
$ses = &new mySession(1);
$ses->getSessionValue("curCostumerID"); // holt mir einen Wert aus
// $_SESSION['arrSession']['curCostumerID'];
Mit
$ses->SetSessionValue("curCostumerID",123); // Setzte ich mir den Wert
// $_SESSION['arrSession']['curCostumerID'];
oder ein komplettes array mit
$ses->setSessionValue("curCustBank", $arrCostumer);
Ich finde das auch ok so .
Nur checke ich nicht wie ich die dlobals aus der Klasse rausbekomme und dies umbauen muss
Kann mir da jemand helfen
Gruss und danke
Achim