Hejsa
Jeg er ved at bikse en lille klasse sammen som udnytter php's sessions. På
en ganske normal side (uden for funktioner og classer) kan jeg ved hjælp af
funktionen session_id() få fat i brugerens PHPSESSID hvorfor kan jeg ikke
det inde i en klasse.
$id = session_id(); // her virker det
class session{
function session(){
$id = session_id(); // her virker det ikke
}
}
På
http://www.dk.php.net/manual/en/html/ref.session.html refererer de til et
array $HTTP_SESSION_VARS som skulle indeholde sessionvariablerne. Men hvis
jeg f.eks. har kørt
session_start();
session_register("sess_name");
og prøver at bruge $HTTP_SESSION_VARS["sess_name"] så finder den ingenting
hvorimod jeg bare kan nøjes med $sess_name. Burde den ikke også være i
arrayet så??? (Så man f.x. kunne kalde dem derigennem fra en funktion)
på
http://www.ogj.dk/class.session.phps kan I se en simpel udgave af
klassen.
På hver side bliver der kaldt $session = new session; og det går fint nok
med at den husker session variablerne som bliver sat i starten. Hvis jeg så
f.x. på en side gerne vil logge ind bliver indholdet sendt til en side som
kalder $session->login("username","password"); Her får jeg så returneret en
sand funktion, hvilket også må betyde at den har sat $sess_uid =1 og
$sess_level = 8 hvor de før begge var 0, og da jeg inde fra funktionen har
gjort den globale. Men ude på siden er de stadig 0;
Hvis man ikke tidligere har sat værdien kan man godt skrive til den. (se
koden)
Hvor når kan man ændre på sine session variable ? før/ efter
session_register(); ???
--
Hilsen Michael