Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Odzyskanie sesji
Forum PHP.pl > Forum > PHP
Adi32
Witajcie.

Mam taki problem: W sklepie nad którym pracuje użytkownik zamawia produkt który wpierw sam w pewnym sensie tworzy za pomocą Flasha (np. przedmiot z wygrawerowanym napisem).
Użytkownik będąc na stronie produktu (np. drewniana deska) może włożyć go do koszyka lub użyć konfiguratora aby za pomocą narzędzia fleszowego zaprojektować jakiś napis.
Gdy użytkownik projektuje napis i zapisuje swój projekt to tworzy się nowy katalog a w nim XML zawierający wszystkie szczegóły techniczne na temat obróbki produktu i pliki IMG.

Działa to w ten sposób, że flash odwołuje się do pliku PHP który w zależności od żądania teorzy katalog/plik xml/plik img a na koniec ma dodawać do sesji:

  1. $_SESSION['konfigurowane']['id_produktu'][] = $nazwa_folderu_z_plikami; // przykład


jednak to nie będzie działać bo jak się kazało plik odpalony przez flasha korzysta z innej sesji - tworzy sobie nową...

Jak to wykastrować?

Potrzebuje dodać to do sesji aby przy składaniu zamówienia to zamówienie było powiązane z zaprojektowanymi produktami ponieważ nie tylko zalogowani użytkownicy mogą to robić.

  1. public zamowienieAction() {
  2. if($zamowione = Library_Zamowienie::getInstance()) {
  3. $zamowienie = new Zamowienie;
  4. $zamowienie->fromArray($zamowione->toArray());
  5. $zamowienie->save();
  6.  
  7. if ($_SESSION['konfigurowane']) {
  8. $id = $zamowienie->getLastId();
  9.  
  10. foreach ($_SESSION['konfigurowane'] as $id_produkt => $aFoldery) {
  11.  
  12. foreach ($aFoldery as $folder) {
  13. # dodawanie do bazy produktów skonfigurowanych powiązanych z zamówieniem
  14. # problem w tym, że nie ma takiej sesji
  15. }
  16. }
  17. }
  18. }
  19. }
nospor
Musisz do flasha przekazywać id sesji a potem gdy flash będzie leciał na serwer to musi ten id sesji przekazywać też do serwera i na tej podstawie serwer będzie wiedział z jakiej sesji korzystać.
Adi32
Cytat(nospor @ 26.06.2012, 15:32:21 ) *
Musisz do flasha przekazywać id sesji a potem gdy flash będzie leciał na serwer to musi ten id sesji przekazywać też do serwera i na tej podstawie serwer będzie wiedział z jakiej sesji korzystać.


Dokładnie to pomyślałem pół godziny temu i zacząłem kombinować jak przywrócić sesję po ID. Gdzieś chyba o tym czytałem i z pewnością wstyd nie wiedzieć ale siedzę w manualu i nie wiem czego użyć...

session_ cache_ expire
session_ cache_ limiter
session_ commit
session_ decode
session_ destroy
session_ encode
session_ get_ cookie_ params
session_ id
session_ is_ registered
session_ module_ name
session_ name
session_ regenerate_ id
session_ register_ shutdown
session_ register
session_ save_ path
session_ set_ cookie_ params
session_ set_ save_ handler
session_ start
session_ status
session_ unregister
session_ unset
session_ write_ close
nospor
Przed session_start() masz wykonać to:
http://in.php.net/manual/en/function.session-id.php
a jako parametr wstawić id przekazane przez flasha
Adi32
Byłem blisko. Działa. Dzięki.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.