Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> No i znowu sesje...
kliszaq
post 14.09.2003, 19:50:00
Post #1





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 11.09.2003
Skąd: Giżycko/Wawa

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


Napisalem sobie ostatnio klase koszyka internetowego (no comments), ale jaskos nie udaje mi sie zarejestowac go w sesji. Any ideas? :?:


--------------------
WWJD?
GG 4004548
Go to the top of the page
+Quote Post
BzikOS
post 14.09.2003, 19:54:30
Post #2





Grupa: Przyjaciele php.pl
Postów: 660
Pomógł: 0
Dołączył: 28.08.2002
Skąd: Starachowice

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


Ja to zrobiłem tak:
[php:1:28a3987f23]<?php
// jesli obiektu koszyka nie ma w sesji to tworzy nowy obiekt klasy koszyk, a jesli jest to unserializujemy go
$koszyk = (isset($_SESSION['koszyk'])) ? unserialize($_SESSION['koszyk']) : new Koszyk();

// a tak wrzucam obiekt do sesji
$_SESSION['koszyk'] = serialize($koszyk);
?>[/php:1:28a3987f23]
Go to the top of the page
+Quote Post
kliszaq
post 14.09.2003, 19:58:47
Post #3





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 11.09.2003
Skąd: Giżycko/Wawa

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


okej.
Ale jezeli mam kilka stron, i na poczatku dam session_start();, to jesli chcem wywolac funkcje klasy np.: (na samym poczatku $zamow = new koszyk()) czyli $zamow->dodaj("Ram 128", 90, 1), gdzie 1 to nazwa produktu, 2 to cena, a 3 to ilosc, w takim ukladzie wyskoczy blad o tym ze nie mozna wywolac tej funkcji?


--------------------
WWJD?
GG 4004548
Go to the top of the page
+Quote Post
BzikOS
post 14.09.2003, 20:00:27
Post #4





Grupa: Przyjaciele php.pl
Postów: 660
Pomógł: 0
Dołączył: 28.08.2002
Skąd: Starachowice

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


Dlatego nie ma ponieważ nie ma takiego obiektu - musisz go unserializować, co też Ci podałem.
Go to the top of the page
+Quote Post
kliszaq
post 14.09.2003, 20:04:51
Post #5





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 11.09.2003
Skąd: Giżycko/Wawa

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


poswiruje troche i jak nie bede jeszcze czegos wiedzial, to jeszcze sie zapytam aaevil.gif


--------------------
WWJD?
GG 4004548
Go to the top of the page
+Quote Post
BzikOS
post 14.09.2003, 20:19:54
Post #6





Grupa: Przyjaciele php.pl
Postów: 660
Pomógł: 0
Dołączył: 28.08.2002
Skąd: Starachowice

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


Masz tu mały schemacik tak postępować:

plik1.php
[php:1:bbc7518c1e]<?php
session_start();

// tworzymy nowy obiekt koszyka, ale sprawdzamy czy nie ma go już czasem w zmiennej sesyjnej
$zamow = (isset($_SESSION['zamow'])) ? unserialize($_SESSION['zamow']) : new Koszyk();

// załóżmy że w sesji go nie było więc wykonywane jest new Koszyk();

// przeprowadzamy jakieś operacje na obiekcie, np.
$zamow->dodaj("Ram 128", 90, 1);

// jeśli wykonaliśmy wszystkie operacje to możemy wrzucić obiekt $zamow z powrotem do sesji:
$_SESSION['zamow'] = serialize($zamow);

// i przchodzimy sobie na jakąś inną stronę
Header('Location: strona2.php');
?>[/php:1:bbc7518c1e]

strona2.php
[php:1:bbc7518c1e]<?php
session_start();

// w tej chwili nie ma żadnego obiektu więc żadna metoda nie może zostać wywołana, więc tworzymy obiekt:
$zamow = (isset($_SESSION['zamow'])) ? unserialize($_SESSION['zamow']) : new Koszyk();

// tym razem obiekt jest w sesji więc wykona się unserialize($_SESSION['zamow']);

// i teraz już normalnie możesz odwoływać się do obiektu, tylko pamiętaj o wrzuceniu go do sesji jeśli wykonasz w nim jakieś zmiany
?>[/php:1:bbc7518c1e]

Jaśniej się nie dało smile.gif
Go to the top of the page
+Quote Post
kliszaq
post 14.09.2003, 20:26:44
Post #7





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 11.09.2003
Skąd: Giżycko/Wawa

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


okej thx smile.gif


--------------------
WWJD?
GG 4004548
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 28.06.2025 - 12:33