Rég óta egy keretrendszert használok, ahol eddig nem volt gond a session kezléssel.
Most ezt a rendszert kell egy új szerveren használnom, melyet nem én felügyelek, nincs hozzáférésem.
A sessiont oly' módon használom, hogy a sessionbe saját objektumot helyezek el, és minden sessionben tárolni kívánt változómat ez ez objektum tárol. A folyamat elején lekérem az objektumot a sessionből. Ha egy értéket meg akarok változtatni, akkor az objektumban átírom, majd visszarakom az objektumot a sessionbe. Ha nem rakom vissza az objektumot akkor nyilván a megváltozott érték sem tárolódik el.
Tehát:
function getObjectsFromSession(){
$ObjectsFromSession=new SessionHandler();
$temp= $ObjectsFromSession->getObjectFromSession("ph");
if (get_class ($temp)=="PropertyHolder"){
$this->ph = $temp;
}
}
Ekkor a "$this->ph" ban van minden.
majd megváltoztatom az objekutm egy elemét:
$this->ph->setProperty("változó_neve","változó_értéke");
Végül visszateszem a sessionbe:
function putBackObjectsToSession(){
$ObjectsToSession=new SessionHandler();
$ObjectsToSession->putObjectToSession("ph",$this->ph);
}
A gondom az, hogy ha az új szerveren nem hívom meg a
putBackObjectsToSession() függvényt, akkor is eltárolódik a változó értéke a sessionben:
$this->ph->setProperty("változó_neve","változó_értéke");
Remélem érthető a problémám.
Kérdésem, hogy tudja -e valaki, hogy minek a hatására tárolódik el a sessionben a változó (még akkor is ha direkt módon nem írom vissza); és hogyan lehet ezt php-ben kiiktatni?