Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Sesja, tablica itd.
MarShalL89
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 17.05.2013

Ostrzeżenie: (0%)
-----


Witam, dość dużo szperałem w internecie i nie widziałem takiej informacji.
Chodzi o to, że wiem, że można zapisać tablice do sesji, ale czy zapisaną tablicę w sesji można z powrotem zapisać jako tablica tak, aby odwołać się do poszczególnego elementu tablicy? Jeśli nie można to jak odwołać się do elementów sesji? - tak, aby każdy element był wyświetlany np w oddzielnej linii i żeby pojedynczy element można było usunąć?
Go to the top of the page
+Quote Post
mar1aczi
post
Post #2





Grupa: Zarejestrowani
Postów: 731
Pomógł: 141
Dołączył: 9.05.2011
Skąd: śląskie

Ostrzeżenie: (0%)
-----


serialize
Przed zapisem wykonujesz metodę serialize na tablicy i zapisujesz, po odczycie wykonujesz unserialize na tablicy i ja modyfikujesz.
Go to the top of the page
+Quote Post
Crozin
post
Post #3





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Wbudowany w PHP mechanizm sesji sam zajmuje się serializacją wrzuconych do niego danych, nie ma potrzeby ręcznego korzystania z serialize. Na dobrą sprawę nie musisz niczego robić z danymi, które są wrzucane do sesji - jedynie, w przypadku obiektów powinno implementować się interfejs Serializable.
Go to the top of the page
+Quote Post
mar1aczi
post
Post #4





Grupa: Zarejestrowani
Postów: 731
Pomógł: 141
Dołączył: 9.05.2011
Skąd: śląskie

Ostrzeżenie: (0%)
-----


Przy okazji: co szybsze - owa serializacja, deserializacja czy json_encode/json_decode?
Go to the top of the page
+Quote Post
Crozin
post
Post #5





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Serializacja, ale jak już wspomniałem: nie powinieneś ręcznie serializować danych trafiających do sesji.
Go to the top of the page
+Quote Post
MarShalL89
post
Post #6





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 17.05.2013

Ostrzeżenie: (0%)
-----


Rozumiem zasadę - chyba rozumiem, ale powiedzmy, ze mam taki kod:
  1. $ItemID = htmlspecialchars($_POST['ItemID']);
  2.  
  3. if(!isset($_SESSION['produkty'])) { // sprawdzasz czy jest już w sesji koszyk, jeśli nie tworzysz pusty
  4. $produkty = array(serialize(''));
  5. $_SESSION['produkty'] = $produkty;
  6. }
  7. if(!empty($ItemID)){
  8. $_SESSION['produkty'][] = $ItemID; // dorzucasz do id produktu do tablicy
  9. }


to efekt wygląda tak:
Array ( [0] => s:0:""; [1] => 1 [2] => 1 [3] => 2 ) Array

Czy to właśnie w taki sposób powinno wyglądać? Czy ja przed każdym dodaniem nowego elementu do tablicy musze użyć unserialize?

Ten post edytował MarShalL89 21.05.2013, 13:39:33
Go to the top of the page
+Quote Post
CuteOne
post
Post #7





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

Ostrzeżenie: (0%)
-----


  1. $ItemID = htmlspecialchars($_POST['ItemID']);
  2.  
  3. if(!isset($_SESSION['produkty'])) { // sprawdzasz czy jest już w sesji koszyk, jeśli nie tworzysz pusty
  4. $_SESSION['produkty'] = array();
  5. }
  6. if(!empty($ItemID)){
  7. $_SESSION['produkty'][] = $ItemID; // dorzucasz do id produktu do tablicy
  8. }
Go to the top of the page
+Quote Post
mar1aczi
post
Post #8





Grupa: Zarejestrowani
Postów: 731
Pomógł: 141
Dołączył: 9.05.2011
Skąd: śląskie

Ostrzeżenie: (0%)
-----


http://www.plus2net.com/php_tutorial/array-session.php
Go to the top of the page
+Quote Post
Crozin
post
Post #9





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


  1. if(!isset($_SESSION['produkty']) {
  2. $_SESSION['produkty'] = array();
  3. }
  4.  
  5. if (!empty($itemId)) {
  6. $_SESSION['prodkty'][] = $itemId;
  7. }
Nic, z żadną serializacją nie powinieneś robić.
Go to the top of the page
+Quote Post
MarShalL89
post
Post #10





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 17.05.2013

Ostrzeżenie: (0%)
-----


Wybaczcie, ale chyba jestem za głupi już na to wszystko, ale w takim razie jak mogę usunąć pojedynczy element z sesji ?
Go to the top of the page
+Quote Post
Crozin
post
Post #11





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


  1. unset($_SESSION['klucz'])
?
Go to the top of the page
+Quote Post
MarShalL89
post
Post #12





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 17.05.2013

Ostrzeżenie: (0%)
-----


Okej, zrozumiałem - dziękuję czyli
  1. unset($_SESSION['produkty']['6']);

Usuwa z sesji produkty element o kluczu 6 (IMG:style_emoticons/default/smile.gif)

Jeszcze raz dziękuję za wyjasnienie
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 12:53