Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Skrypty obsługi baz danych _ [adodb] obsługa sesji

Napisany przez: Emet 18.10.2004, 21:06:54

Witam

Uzywam adodb juz dosc sporo czasu, ostatnio postanowilem wykorzystac mozliwosc zarzadzania sesjami z poziomu adodb, wszystko dziala ok, z wyjatkiem jednej rzeczy, chodzi o wywolanie zdefiniowanej wczesniej funkcji ktora ma sie wykonac po wygasnieciu sesji. Ustawiam wszystko zgodnie z instrukcajami na http://phplens.com/lens/adodb/docs-session.htm ale za nic nie moge uruchomic tej funkcji, probowalem juz roznych kombinacji i nic. Podejrzewam ze robie jakis prosty blad - bo cala reszta dziala.

Kod jaki uzywam:

Kod
$GLOBALS['ADODB_SESSION_DRIVER']='mysql'; //$GLOBALS[] is a nice thing...
$GLOBALS['ADODB_SESSION_CONNECT']='localhost';
$GLOBALS['ADODB_SESSION_USER'] ='root';
$GLOBALS['ADODB_SESSION_PWD'] ='';
$GLOBALS['ADODB_SESSION_DB'] ='baza'; //'adodb/session/adodb-session.mysql.sql' can create the DB for you
include('c:/AppServ/AdoDB/session/adodb-session.php'); //'adodb/adodb.inc.php' will be included automatically

Inicjalizuje polaczenie

Kod
$ADODB_SESS_DEBUG=1;

Właczam debugger, ktory nie wywala zadnych bledow

Kod
ini_set('session.gc_maxlifetime', '60');
ini_set('session.gc_probability', '50');
ini_set('session.gc_divisor', '100');  

ustawiam zmienne sesyjne

Kod
session_start();

startuje sesje

Kod
$_SESSION['USERID'] = "test";
$ADODB_SESSION_EXPIRE_NOTIFY = array('USERID','NotifyFn');

Zgodnie z manualem :
Cytat
Suppose we want to be notified when a user's session has expired, based on the userid. The user id in the global session variable $USERID. The function name is 'NotifyFn'. So we define:

definiuje potrzebna tablice.

Kod
$sesskey = session_id();
$expireref = $_SESSION['USERID'];

Tutaj nie jestem pewien czy robie wszystko ok, w manualu nie jest dla mnie to za dobrz wyjasnione winksmiley.jpg

Kod
function NotifyFn($expireref, $sesskey)
{
echo "Twoja sesja wygasła!";
}

No i nieszczesna funkcja ktora ma sie wykonac po wygasnieciu sesji, a za nic nie chce sie uruchomic.

Kod
$_SESSION['AVAR'] += 1;
print "<p> variable={$_SESSION['AVAR']} </p>";

Ten kod wykonuje sie prawidlowo, po odswiezeniu strony zmienna prawidlowo sie zwiekasz, a po bezczynnosci ponad minute (tak wczesniej ustawilem) i odswiezeniu zmienna sie zeruje - wiec wszystko oki, ale nie wywoluje sie ta funkcja - dlaczego ?

Ktos uzywa przechowywania sesji z uzyciem adodb? lub wie co moze byc nie tak ?
Krotki manual jest pod linkiem:
http://phplens.com/lens/adodb/docs-session.htm
Chodzi głownie o czesc ktora zatytulowana jest:
Notifications
bo wlasnie to nie chce zadzialac.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)