![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 1 640 Pomógł: 28 Dołączył: 13.02.2003 Skąd: Międzyrzecz/Poznań Ostrzeżenie: (0%) ![]() ![]() |
Dwa dni meczylem sie dlaczego moja sesja ($_SESSION['user']) zmieniala wartosc bez mojej wiedzy. Nie wiem czy to jest normlane, czy poprostu blad w php:
$_SESSION['user'] = 2; Plik na serwerze zawiera cos takiego: Kod user|s:1:"2"; (nazwa zmiennej|typ(string):ilosc_znakow(1):wartosc_zmiennejJest to dosc proste, zrozumiale i poprawne. ALE: W kodzie mialem taki fragment: $user = 10; Moim skromnym zdaniem nie powinno miec to w ogole wplywu na zmienna sesyjna, ale tak sie wlasnie stalo, ze moja $_SESSION['user'] przyjela wartosc 10!!! Na dodatek plik na serwerze mial niepoprawna skladnie (mniejwiecej): Kod user|1:10 Poprawnie powinno byc: Kod user|s:2:"10" Sesja nadal dzialala! Czy to jest blad w php? Czy moj? Troszku namacilem, ale mysle ze zrozumiale jest to:) -------------------- PHP Developer
"Nadmiar wiedzy jest równie szkodliwy jak jej brak" Émile Zola |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 71 Pomógł: 1 Dołączył: 3.10.2004 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Może wina leży po stronie register_globals? A może już za późno i myślenie mi się wyłączyło;-) Pozdrawiam Marcin Staniszczak |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 55 Pomógł: 0 Dołączył: 28.02.2005 Ostrzeżenie: (0%) ![]() ![]() |
jeśli kontynuujesz sesje na danej stronie i zmiene nazywa się np. user, to zapis:
$_SESSION["user"] = 10 jest równoważny zapisowi $user = 10. To tak samo jak przy rejestrowaniu zmiennej sesyjnej. Jeśli koniecznie chcesz stosować zmienną o takiej samej nazwie to uzyj funkcji (przkazując zmienną przez wartość). A jeśli chodzi o typ zapisywanej wartości pod zmienną sesyjną to wpisując pod zmienną liczbę, powinien być typ integer czyli user|i:10, zatem zapis w zmiennej sesyjnej jest jak najbardziej prawidłowy, a string tylko w wypadku zapisu $user = "10"; |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 71 Pomógł: 1 Dołączył: 3.10.2004 Ostrzeżenie: (0%) ![]() ![]() |
Witam
A ja radzę wyłączyć register_globals i pewnie będzie ok;-p Pozdrawiam Marcin Staniszczak |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 657 Pomógł: 2 Dołączył: 15.08.2003 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Może też to być wynik przekazywania gdzieś tej zmiennej przez referencje :]
-------------------- |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 1 640 Pomógł: 28 Dołączył: 13.02.2003 Skąd: Międzyrzecz/Poznań Ostrzeżenie: (0%) ![]() ![]() |
Cytat(Vengeance @ 2005-03-05 13:59:40) Może też to być wynik przekazywania gdzieś tej zmiennej przez referencje :] Referencje odpadaja... donpablo: wyjasnil to jak prawidlowo, nie pomyslalem ze samo `i` moze przeciez oznaczac `integer`, ale bardzo mnie zdziwilo ze $user i $_SESSION['user'] moze byc w niektorych przypadkach tym samym:) -------------------- PHP Developer
"Nadmiar wiedzy jest równie szkodliwy jak jej brak" Émile Zola |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 71 Pomógł: 1 Dołączył: 3.10.2004 Ostrzeżenie: (0%) ![]() ![]() |
Ja podtrzymuje swoje:-p Dopisz do .htaccess:
Kod php_value register_globals off Pozdrawiam Marcin Staniszczak |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 04:42 |