[ Ajvan @ 15.10.2010. 14:22 ] @
Pozdrav svima, imam sledeci problem:
website je pisan u php-u i zahtev je da se ceo sadrzaj sajta ucita odmah na pocetku (prilikom ucitavanja prve strane). Posto su header i footer isti na svim stranicama, ucitavaju se samo jednom, a content deo sajta, koji je zapravo jedini koji se menja u zavisnosti od akcija korisnika se ucitava tako da ono sto treba da stoji na home stranici bude prikazano, dok se sve ostale stranice ucitaju ali su skrivene. Kada korisnik odradi neku akciju koja vodi na sledecu stranicu, javascript zameni content - ono sto je bilo skriveno se prikaze, ono sto je bilo prikazano se sakrije (ima tu Ajax poziva i komuniciranja sa bazom). Problem nastaje kad treba uvesti session_management. Posto se sesija startuje tako sto se pozove session_start() funkcija na pocetku svake stranice, kako ja to u ovom slucaju mogu da odradim ako sam header ucitao odmah na pocetku? Nema potrebe da startujem sesiju dok je korisnik na home stranici jer ako bude neaktivan sesija ce isteci i resetovace mu stranicu ponovo na home stranu na bilo koju akciju. Ponavljam, zahtev je bio da se ovako odradi sajt.
hvala unapred
[ Nikola Poša @ 15.10.2010. 17:40 ] @
A u koje svrhe treba da implementiraš sesiju, ne razumem tačno u čemu je problem?

Jel sesija treba da bude startovana samo nakon klikova na neke od tih navigacionih linkova? Pošto kažeš da sav sadržaj učitavaš samo jednom, a JS-om otkrivaš/sakrivaš sadržaje određenih div-ova (ili čega već) u zavisnosti od linka na koji je korisnik kliknuo, onda i pri tom samom click event-u možeš usput AJAX-om da "okineš" neki PHP skript čiji će zadatak biti samo da startuje sesiju.
[ Miroslav Ćurčić @ 15.10.2010. 20:55 ] @
Pretpostavljam da ga zeza to što sesija pokušava da postavi cookie a on je već prikazao onaj zajednički header.
[ Aleksandar Ružičić @ 16.10.2010. 14:09 ] @
ponovo ucitas (sada izmenjeni) header, to ti je najjednostavniji nacin.. (ako sam dobro razumeo situaciju)
[ Ajvan @ 18.10.2010. 08:01 ] @
izvinjavam se, nisam bio u gradu a nisam imao gde da pogledam poruke,
sesija bi trebalo da bude startovana nakon akcije korisnika, tj. klika na navigacioni link i zamene jednog div-a drugim. Pomislio sam da php skriptom pokrenem sesiju (pri Ajax pozivu), ali me je zbunila cinjenica da gde god da sam pogledao (nemam bas puno vestine u php-u) stoji da se session_start() poziva na pocetku stranice...a posto sam ja tu stranicu vec ucitao, onda mi nije jasno kako to da odradim. U sustini, mene muci sledece pitanje: posto sam ucitao sve div-ove odmah na startu, i neki od div-ova koji sadrze proveru postojanja session cookie-a se ne vide, tj. sakriveni su, da li to znaci da ce njihov kod biti izvrsen onda kada oni postanu vidljivi?
[ vilyu @ 18.10.2010. 08:59 ] @
Div ne moze da proveri postojanje session cookie-ja. Sem ako ne sadrzi JavaScript kod. A ako si ti prvo generisao sadrzaj, a onda pustio korisnika da klikce, zasto jednostavno ne koristis JavaScript za citanje i postavljanje cookie-ja, i zaboravis na sesiju.
[ Ajvan @ 18.10.2010. 09:12 ] @
Hm...nisam se precizno izrazio..naravno da div ne moze da cita niti proverava postojanje session promenljive, mislio sam na embeded php kod unutar div-a.
[ strutter.poison @ 18.10.2010. 09:24 ] @
Mozes preko ajax-a da manipulises sesijom bez ucitavanja strane.
Znaci ucitas stranu i onda klik na link prikazuje drugi sadrzaj koji do tada bio sakriven a sakriva onaj koji je bio vidljiv, i takodje pomocu ajax-a potrazuje novu stranicu cija url nije za prikaz sadrzaja vec za manipulaciju kolacica, sesije - vraca praznu stranu ili true/false... sta ti je vec potrebno to i izaberes..
Nemoj da te zbunjuje to sto je strana ucitana. To sto si pomenuo se odnosi na menjanje headera nakon sto se posalje nesto pa makar i white space, jer je header zavrsen, pocinje html i nema izmene headera (dobro, i ovo je relativno, ali da ne komplikujem). Podaci o sesiji su na serveru i ti uz pomoc ajaxa (ili ponovnog ucitavanja stranice) imas punu kontrolu nad podacima kroz php, a takodje mozes da manipulises sa js kolacicima u browser-u.

Taj zajednicki header, to je vezano za stranicu koja servira ceo sadrzaj. Napravi jos jednu php skriptu koja ce na osnovu parametara (recimo get) da radi radnje samo nad sesijom i kolacicima, bez slanja sadezaja i imas zasebne hedarer-e za svaki od tih zahteva.

U sustini ovo ti je vac rekao Nikola u drugom postu na temi. ;) Samo si trebao da protumacis fino. :)

[Ovu poruku je menjao strutter.poison dana 18.10.2010. u 10:36 GMT+1]