Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 2 Dołączył: 10.03.2005 Skąd: Elbląg Ostrzeżenie: (0%)
|
Witam,
pisałam już kiedyć o koszyku. Wszystkie problemy z nim związane rozwiązałam i wydawało mi się, że już wszystko jest ok, ale zapomniałam zmienić ustawień serwera na register_globals = off, po tej zmianie nie trzyma mi tego koszyka. Nie pamięta zmiennej $stan, co wydaje się być logiczne, ale teraz proszę o pomoc, co muszę zrobić, by jednak ten koszyk działał z register_globals = off. Fragment jak mam to zrobione:
próbowałam robić coś w stylu: $stan=$_SESSION['stan']; session_register("stan"); ale to nie pomogło. |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 255 Pomógł: 5 Dołączył: 20.03.2007 Skąd: Kraków Ostrzeżenie: (30%)
|
hmmm
Musisz bardziej zgłębić wiedzę o sesjach. http://pl.php.net/manual/sv/function.session-register.php tu czytamy: Observera If you are using $_SESSION (or $HTTP_SESSION_VARS), do not use session_register(), session_is_registered(), and session_unregister(). także po pierwsze: wyeliminuj session_register z tego skryptu i dopiero możemy rozmawiać (IMG:http://forum.php.pl/style_emoticons/default/aarambo.gif) (uzywaj tylko $_SESSION[$cos] = $x oraz $x = $_SESSION[$cos] ) |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 2 Dołączył: 10.03.2005 Skąd: Elbląg Ostrzeżenie: (0%)
|
Observera If you are using $_SESSION (or $HTTP_SESSION_VARS), do not use session_register(), session_is_registered(), and session_unregister(). także po pierwsze: wyeliminuj session_register z tego skryptu i dopiero możemy rozmawiać (IMG:http://forum.php.pl/style_emoticons/default/aarambo.gif) (uzywaj tylko $_SESSION[$cos] = $x oraz $x = $_SESSION[$cos] ) Dziękuje, nie wiedziałam o tym, chyba rzeczywiście będe musiała pogłębić swoją wiedzę (ale w sumie myśle, że robie to cały czas (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ) Niestety zlikwidowanie session_register nic nie pomogło. Wpisałam nawet
Ten post edytował Olimpia_ona 15.06.2007, 13:20:34 |
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 175 Pomógł: 17 Dołączył: 23.06.2006 Ostrzeżenie: (0%)
|
Witam
To co tu napisze, bedzie dotyczyc kodu z Twojej pierwszej wypowiedzi w tym poscie, a wiec... Usuwasz linie 46 Miedzy linie 58, a 59 wstaw: $_SESSION['koszyk']=$koszyk; Mysle ze powinno dzialac, ale nie jestem kompilatorem, jak co to bedziemy dalej kombinowac (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Przeczytaj to Wyraznie jest opisany Twoj problem w bloku Uwaga Jak zapewne widzisz, do zmiennej sesyjnej zostaje zapisany caly obiekt klasy, mysle ze lepszym rozwiazaniem byloby zapisanie tablicy z samym stanem koszyka, przy kazdym wywolaniu skryptu, zawsze bylby w takim razie tworzony obiekt klasy koszyk i dolaczany do niego aktualny stan koszyka pobrany ze zmiennej sesyjnej. Jeszczed lepszym rozwiazaniem bedzie utworzenie tabeli w bazie danych, ktora to moglaby trzymac niezatwierdzony stan koszyka, a dopiero potem jak koszyk zostaje zatwierdzony, to po zweryfikowaniu danych, dane sa te przeniesione do odpowiedniej tabeli - tabeli zamowien, gdzie beda juz trzymane ostateczne dane. Trzymanie calej zawartosci obiektu w sesji nie jest bezpiecznym rozwiazaniem, wystarczy ze ktos przelapie SID uzytkownika X i w tym momencie ten uzytkownik ma wszystko to co zrobil użytkownik X, czyli aktualny stan koszyka, itp. Mam nadzieje, ze jakos zabezpieczasz sie przed tego typu defektami (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Pozdrawiam serdecznie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 255 Pomógł: 5 Dołączył: 20.03.2007 Skąd: Kraków Ostrzeżenie: (30%)
|
Trzymanie calej zawartosci obiektu w sesji nie jest bezpiecznym rozwiazaniem, wystarczy ze ktos przelapie SID uzytkownika X i w tym momencie ten uzytkownik ma wszystko to co zrobil użytkownik X, czyli aktualny stan koszyka, itp. Mam nadzieje, ze jakos zabezpieczasz sie przed tego typu defektami (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Co ty za farmazony opowiadasz? Przeciez dane w sesji nie są widoczne przez usera nawet jak ma SID. Jak ma SID to znaczy ze system uwaza go za tego usera, ktorego id jest zapisane w sesji i tyle (IMG:http://forum.php.pl/style_emoticons/default/aarambo.gif) Takze nie siej paniki |
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 793 Pomógł: 32 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%)
|
@likemandrake
Cześć tych informacji było wcześniej podana. @domis86 Czytaj uważnie, nie mowa jest o dostępie bezpośrednim do danych w sesji a o zawartości koszyka. A co do serialize i unserializ to przy obiektach trzeba uważać, bo obsługę tego powinien zapewnić autor klasy, tylko że to wymaga wiedzy o tym co powinno się robić. Do tego przy unserializ'owaniu skrypt musi mieć dostęp do definicji klasy obiektu. Do tego o koszyku i sesji był już temat, więc wystarczy poszukać. |
|
|
|
![]() ![]() |
|
Aktualny czas: 21.12.2025 - 08:01 |