[ akasha org. @ 12.02.2008. 13:42 ] @
Koristio sam:
$_SESSION['korisnik'] = $korisnik; // fajl 1
$korisnik = $_SESSION['korisnik']; // fajl 2

I to je funkcionisalo super sve dok nije instaliran PHP5 na mom hosting paketu. Sada promenljiva $korisnik u fajlu 2 ne dobija vrednost.. Upomoc!

Sumnjam na podesavanje phpa, pa ako znaci phpinfo() moze se videti na www.spajic.cc/info.php
[ Skaarj @ 12.02.2008. 15:27 ] @
Da li negde rucno startujes sesiju? Tj da li pre poziva tog $_SESSION imas negde session_start()?

Vidim da je iskljucena opcija session.auto_start koja automatski startuje sesiju pa moze to da bude problem.
[ akasha org. @ 12.02.2008. 15:51 ] @
da, na svakoj strani imam session_start();

u okviru jedne strane mogu da dodelim sesiju i oprobam sa echo - sve ok.. Ali se ne prenese na drugu stranu..

Videcu za session.auto_start(). Citam i na php.net-u, ali i dalje ne vidim u cemu je problem
[ holodoc @ 12.02.2008. 18:56 ] @
Kao prvo, preporučljivo je da se PHP skripte ne oslanjaju previše na serverska podešavanja PHP-a da bi ispravno funkcionisale, posebno u situacijama kada su u pitanju deljeni hosting paketi. Dobro pisani kôd ima tu osobinu da se uz malo ili skoro nikakve prepravke može prilagoditi da radi na svakom serveru i u tom slučaju svakako treba izbegavati pretpostavke da je moguće uticati na određena podešavanja u php.ini-ju.

Konkretno mislim na podešavanje session.auto_start koje je po defaultu uvek postavljeno u stanje "false" (tačnije "nula") što znači da je korisnik taj koji je dužan da eksplicitno svaki put pokrene proces aktiviranja ili "oživljavanja" sesije na početku skripte. Istina, ovu opciju je moguće promeniti u toku izvršavanja skripte (runtime konfiguracija) ali kad god je moguće (a u većini slučajeva je moguće) treba izbegavati menjanje ovih parametara tokom izvršenja ili kao što već rekoh pretpostavljati da se može uticati na default vrednosti.

Kao drugo, problem sa "gubljenjem" sesija je skoro sa stopostotnom sigurnošću vezan za razlike u podešavanjima staza za session.save_path i session.cookie_path promenjljive u php.ini-ju, pošto se ponekad dešava da potrebni folderi ne postoje ili postoji problem sa dozvolama.

session.cookie_path bi uvek trebao da bude podešen na "/" ali neki korisnici koji koriste Windows kao razvojnu platformu tvrde da je recimo moguće u slučaju ovakvih problema izvršiti dodeljivanje apsolutne staze na serveru ovoj promenjljivoj. Dakle da vrednost session.cookie_path glasi, primera radi, "C:\\sesije" i da se pomenutom folderu dodele sve neophodne privilegije za nesmetan rad. Iskreno, ovo nisam lično isprobavao pošto nikada nisam dolazio u situaciju da imam navedene probleme a i velika je verovatnoća da ti tvoj provajder ovo neće dozvoliti tako da ovaj savet možeš slobodno da smatraš prilično beskorisnim Da ne spominjem činjenicu da je po meni ovako nešto veoma rizično sa aspekta sigurnosti.

Takođe, treba proveriti i da li je vrednost za session.cookie_path ispravna tj. da li C:\s30_script\PHP\sessiondata zaista postoji.

Naravoučenije ovog malog monologa... Ukoliko si u mogućnosti da kontaktiraš tehničku podršku svog provajdera pokušaj da im staviš do znanja sa kakvim problemima se suočavaš na njihovom serveru. Postoji verovatnoća da je problem u navedenoj lošoj konfiguraciji...

Pozdrav i nadam se da sam bio bar malkice od pomoći
[ akasha org. @ 12.02.2008. 20:45 ] @
I jeste i nije od pomoci :) Nemam session.save_path i session.cookie_path, a autostart ne pomaze :(

dakle:

Code:

// bla bla bla
session_start();
// bla bla bla
$korisnik = "Test";
$_SESSION['kor'] = $korisnik;
$kk = $_SESSION['kor'];
echo "korisnik: $kk, hate session";
// izlaz je string: korisnik: Test, hate session


Drugi fajl:

Code:

// bla bla bla
session_start();
// bla bla bla
$kk = $_SESSION['kor'];
echo "korisnik: $kk, hate session";
// izlaz je string: korisnik: , hate session


Ako ne resim ovo veceras, izjutra ponovo tehnicka podrska.. Danas jedino sto su mi rekli jeste da su unapred najavili prelazak na php5.
[ kazil @ 12.02.2008. 21:22 ] @
Ja sam na jednom serveru imao slican problem, resio sam tako sto sam zamenio mesta za session i promenljivu
umesto:
$prom = $_SESSION['prom'];
pisao sam:
$_SESSION['prom'] = $prom;
i radi. nek niko ne trazi objasnjenje za ovo, nemam pojma kako, nema nikakve logike, ali radi. posle kada kazem echo $prom ispisuje tacan sadrzaj. probaj i to, mozda upali :)
[ holodoc @ 12.02.2008. 22:40 ] @
Citat:
kazil: Ja sam na jednom serveru imao slican problem, resio sam tako sto sam zamenio mesta za session i promenljivu
umesto:
$prom = $_SESSION['prom'];
pisao sam:
$_SESSION['prom'] = $prom;
i radi. nek niko ne trazi objasnjenje za ovo, nemam pojma kako, nema nikakve logike, ali radi. posle kada kazem echo $prom ispisuje tacan sadrzaj. probaj i to, mozda upali

Ne znam šta bi ova dva pomenuta izraza trebala da rade na mestima gde si ih pisao ali ova dva izraza su dve apsolutno različite stvari!
Naime, u PHP-u kao i u većini programskih jezika važi pravilo dodeljivanja s desna na levo tj. promenjljivoj sa leve strane znaka jednako se dodeljuje promenjljiva sa desne strane. Kada se ovo što sam rekao ukombinuje sa stavkom da je ovde jedna od dve promenljive u stvari sesiona promenjljiva koja se najverovatnije prenosi iz skripte u skriptu trebalo bi da bude jasno da radiš veoma opasnu i neispravnu stvar.
Code:
$prom = $_SESSION['prom'];

U ovom izrazu promenjljivoj $prom koja može biti u okviru funkcije ili imati globalnu vidljivost dodeljuješ vrednost koja se nalazi zapisana u sesionoj promenjljivoj $_SESSION['prom'] u kojoj vrednost ostaje netaknuta.
Code:
$_SESSION['prom'] = $prom;

U ovom izrazu sesionu promenjljivu $_SESSION['prom'] prepisuješ vrednošću koja se nalazi zapisana u promenjljivoj $prom u kojoj vrednost ostaje netaknuta.

Kao što vidiš zahtev da obe promenjljive budu identične nakon operacije dodeljivanja je ispunjen ali je razlika u tome koju si promenjljivu nakon ovog procesa "ostavio da živi" tj. koju si promenjljivu prosledio da i dalje ostane u nizu koji se dalje prenosi na ostale stranice.

Veoma opasno i moram da primetim nepromišljeno
[ kazil @ 12.02.2008. 22:48 ] @
hmm... necu da se svadjam... a mogao bih. savrseno sam svestan kako ide dodeljivanje vrednosti promenljivama. i tako je kako si ti napisao u normalni okolnostima. ali ovo nisu normalne okolnosti, da li zbog nekog bug-a ili neceg drugog pojma nemam, najverovatnije skupa vise okolnosti, ali skript radi upravo obrnuto. pa ono...

edit: odosmo offtopic
[ holodoc @ 12.02.2008. 23:05 ] @
Naravno da nije u pitanju želja za raspravom sa moje strane ali s obzirom da je ovaj forum namenjen početnicima u PHP-u neko ko nije upućen u tematiku mogao bi bez bilo kakve napomene da shvati da se radi o potpuno ispravnoj stvari
[ akasha org. @ 12.02.2008. 23:11 ] @
:) nego, ima li resenja mog problema? Najcrnje mi je sto je sve funkcionisalo kako valja do danas, kada su upgradeovali PHP.
Meni lvrednosti nisu problem, poznajem ih iz Jave...
[ kazil @ 13.02.2008. 07:32 ] @
koji post ranije si rekao da nemas session.save_path i session.cookie_path:
Code:

session.cookie_path    /    /
session.save_path    C:\s30_script\PHP\sessiondata    C:\s30_script\PHP\sessiondata

vidi jel ti postoji ovaj s30_bla direktorijum, ako ne, onda ti je do toga problem
Citat:

holodoc:
Takođe, treba proveriti i da li je vrednost za session.cookie_path ispravna tj. da li C:\s30_script\PHP\sessiondata zaista postoji.
[ akasha org. @ 14.02.2008. 12:22 ] @
ne mogu da vidim da li postoji taj folder.. Imam pristup samo public_html folderu..
Svejedno, problem sam resio na sledeci nacin:

1. prebacio dva reprezentativna fajla na drugi server sa istim phpom.
2. probao, radi.
3. prosledio phpinfo() sa tog, drugog servera provajderu i rekao im: vidite, ovako treba, ovde radi!!
4. prosledio phpinfo() i sa servera provajdera, provajderu i rekao: a ovako je kod vas, ovde ne radi...

Nisu se javili, ali su sredili.. Verovatno je bio problem u tom s30_bla.. direktorijumu, jer koliko vidim nista nije izmenjeno u konfiguraciji phpa.

Hvala na pomoci!!!