Medjutim, imam problema sa sesijama i kolacicima. Naime, index fajl izgleda ovako:
Code:
<?php
// Gomila konstanti, nikakav dodatni kod
include_once 'config.php';
// Kod za testiranje postaljam u prvu liniju ovog fajla
// Pri kraju ovog fajla se poziva klasa za autentifikaciju ($_SESSION je prioritetan,
// $_COOKIE se poziva samo ako $_SESSION['session_id'] nema (ispravnu) vrednost)
include_once _CORE_PATH . '/initCore.php';
include_once _CORE_PATH . '/class/adminDispatcher.class.php';
$disp = new mmAdminDispatcher();
$disp->dispatch();
// Zavrsnica (cuvanje logova, bench-a, oslobadjanje resursa etc.)
include_once _CORE_PATH . '/closeCore.php';
?>
<?php
// Gomila konstanti, nikakav dodatni kod
include_once 'config.php';
// Kod za testiranje postaljam u prvu liniju ovog fajla
// Pri kraju ovog fajla se poziva klasa za autentifikaciju ($_SESSION je prioritetan,
// $_COOKIE se poziva samo ako $_SESSION['session_id'] nema (ispravnu) vrednost)
include_once _CORE_PATH . '/initCore.php';
include_once _CORE_PATH . '/class/adminDispatcher.class.php';
$disp = new mmAdminDispatcher();
$disp->dispatch();
// Zavrsnica (cuvanje logova, bench-a, oslobadjanje resursa etc.)
include_once _CORE_PATH . '/closeCore.php';
?>
Za one koji ne znaju, Dispatcher je klasa koja na osnovu vrednosti prenete preko GET ili POST poziva svoj metod definisan za obradu vrednosti koja je preneta. Ako nista nije preneseno, poziva se main metod, ako jeste, proverava se vrednost i na osnovu toga se poziva metod koji obradjuje taj "dogadjaj". Na primer, ako se prenese somefile.php?op=login poziva se login() metod koji na osnovu trenutnog stanja printa formu za login ili javlja da je korisnik vec ulogovan. Ako se ne prenese nista, poziva se main();
Jako dugacak uvod, no evo ga problem. Kada sam na index.php uvek mi javlja da korisnik nije ulogovan (iako bi trebalo da jeste). Stavljam u prvu liniju initCore.php fajla kod:
Code:
print_r($_SESSION);
print '<br/><br/>';
print_r($_COOKIE);
print_r($_SESSION);
print '<br/><br/>';
print_r($_COOKIE);
Na toj stranici se vidi da postoji index session_id u $_SESSION, ali je prazan (ne poseduje vrednost koju treba da ima). Medjutim, kada odem na stranicu index.php?op=login (ista stranica, drugaciji "dogadjaj"), i cookie i session imaju prave vrednosti (koje bi trebale da imaju). Kad se vratim nazad opet nemaju.
Promeni sam vrednost u PHP.ini use_sessions na 0, u KDE konfiguraciji odobrio kolacice i skripta je proradila. Medjutim, kada sam restartovao masinu opet isto (use_sessions je ostao na 0, KDE prihvata kolacice i dalje).
Sta moze da resetuje cookie i/ili sesije? Da li je moguce da je Apache konfigurisan da ih nekako "ubija" i ako jeste kako da to promenim? Kako objasniti da na jednoj te istoj stranici (samo je dodata jedan GET promenljiva) na istoj liniji koda sesije i kolacici imaju ispravne vrednosti, a kada je te promenljive nema da su unsetovane (pre te linije nista ne proverava GET, magic_quotes_gpc fix se nalazi iza te linije kao i klasa koja se bine o autentifikaciji korisnika)?
Za kraj da napomenem da ovaj sistem radi ispravno na WinXP.
Ako je potrebno mogu vam poslati httpd.conf i php_info da vidite kako je sve konfigurisano.
Unapred hvala na odgovorima...
PS: Ovo je plata teksta, ali se nadam da sam dovoljno dobro opisao problem...
http://www.activecollab.com - Alat za upravljanje projektima