Zobacz pełną wersję : Komponent i sesje
Witam serdecznie
Piszę komponent pod Joomlę i nie bardzo wiem, jak mogę przypisać zmienną przechowywaną za pomocą sesji. Z tego, co się zorientowałem mogę ją odczytywać w za pomocą polecenia: mosGetParam(), ale jak mogę ją ustanowić? Będę wdzięczny za podpowiedź.
Pozdrawiam
Panto
nexus246
22-03-2006, 20:17
Mosgetparam służy do pobierania zmiennej przekazywanej przez POST lub przez GET.
A do sesji to tak możesz pisac:
//tworzy instancje
$my_session = new mosSession(session_id());
//pobiera z GET lub POST
$d = mosGetParam($_REQUEST,'d',"");
//ustawia zmienna sesyjna
$my_session->set("nazwa",$d);
//pobiera zmienna sesyjna
$my_session->get("nazwa", "wartosc_domyslna")
[edit]
sory, za pomoca mosGetParam tez mozna pobrac wartosc zmiennej sesyjnej :)
$my_session = new mosSession(session_id());
1. To rozwiązanie niestety nie działa. Jako parametr konstruktora klasy mosSession przekazywałem: 1) zmienną $session_id, jak również zmienną $db (tak jest w definicji konstruktora tej klasy) i niestety nie pomogło. Być może coś robię nie tak, choć nie wydaje mi się. Czy mógłbyś mi podać jakiś przykładowy komponent z takim rozwiązaniem?
2. Szperałem i przed chwilką znalazłem coś, co może komuś się przydać: http://forum.mamboserver.com/showthread.php?t=29389.
Pozdro
Panto
nexus246
23-03-2006, 09:22
faktycznie zapomniałem session_start() :)
Trzeba pamiętać że to wywołanie musi być przed wysłaniem jakichkolwiek nagłówków HTTP.
daniofantasy
18-02-2008, 07:05
można tego uniknąć, stosując buforowanie wyjścia, choć nie zawsze działa...
ob_start();
session_start();
i wtedy wywołujesz nową sesję.
Jak są problemy - to należy zrobić podgląd źródła - jakieś echo przed ob_start() i patrzeć się, co tam jest - jak jest choćby pusta linia, należy ją usunąć (oczywiście do testów, czy po usunięciu linii wszystko działa należy usunąć wcześniej wspomniane echo ;)
vBulletin® v4.2.5, Prawa przedruku © 2024 vBulletin Solutions, Inc. Wszystkie prawa zastrzeżone.
Tłumaczenie: Polskie Centrum Joomla!