Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] W jaki sposób przekazywane są duze ilości danych w Sesji ?, prosze o wyjasnienie w zrozumialy sposob
InosU31
post 2.03.2010, 20:29:32
Post #1





Grupa: Zarejestrowani
Postów: 221
Pomógł: 14
Dołączył: 11.03.2009
Skąd: Lubaczów

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


Witam

Mam taki maly problem bo nie zabardzo rozumiem w jaki sposob sa przekazywane wieksze ilosci danych w sesji, tzn.

dobrym przykladem bylby tu koszyk zakupowy. Powiedzmy ze ktos wchodzi na strone i dodaje do koszyka jakies rzeczy, np. ksiazki. Nastepnie robi nadal zakupy poruszajac sie po stronach a w koszyku dodane pozycje nie znikaja.

I chialbym sie dowiedziec w jaki sposob sie takie cos robi.
czy tak:
  1. $_SESSION['ksiazka1'] = "nazwa_ksiazki_1";
  2. $_SESSION['ksiazka2'] = "nazwa_ksiazki_2";


i te dane z koszyka wendruja w tych zmiennych sesyjnych

czy jakos inaczej bo nie zabardzo rozumiem tego.


Na niektorych stronach pisza ze np. jesli jestes zalogowany to $_SESSION['cokolwiek'] = 1; a jesli nie to jest rowne 0, - ok to rozumiem, jak sesja dziala tez rozumiem ale nie potrafie sobie wyobrazic jak te dane (wieksze ilosci) dodane do tego koszyka wedruja sobie po stronach i nie sa wcale zapisane w bazie ani w plikach.

inny przyklad:

Wysylam sobie cos postem, powiedzmy kilka danych typu imie, nazwisko, wiek, email. Daje na formularzu przycisk "Dalej" i w ten sposob przeladowuje sie na inna strone gdzie jest nastepny formularz z innymi danymi : miejscowosc, kod pocztowy, telefon. I w tym miejscu mam przycisk "Wyslij dane". I chodzi mi o to jak za pomoca sesji przeslac te pierwsze dane do drugiej strony tak aby dopiero po nacisnieciu "Wyslij dane" zapisac je razem w bazie.

moglby mi ktos to w miare prosty sposob wyjasnic i ewentualnie podac jakis przyklad?

z gory dzieki za odpowiedz.

Pozdrawiam
Go to the top of the page
+Quote Post
piotrekkr
post 2.03.2010, 20:37:14
Post #2





Grupa: Zarejestrowani
Postów: 386
Pomógł: 25
Dołączył: 28.09.2005

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


Sesja zazwyczaj zapisuje unikalny identyfikator dla ciebie w ciastku na twoim komputerze. Same dane fizyczne które dodajesz do sesji są zazwyczaj zapisywane na serwerze w pliku np. w /tmp/sess_9743a66f914cc249efca164485a19c5c lub bazie danych. W tych plikach trzymana jest twoja tablica z danymi sesji. Kiedy wchodzisz na stronę wysyłasz info do serwera że masz takie id sesji, on szuka pliku sesyjnego na dysku i jeśli znajdzie plik o nazwie sess_twoje_id to odczytuje jego dane i masz do nich dostęp (zapis / odczyt). Rozumiesz mniej więcej ?smile.gif
Go to the top of the page
+Quote Post
InosU31
post 2.03.2010, 22:01:41
Post #3





Grupa: Zarejestrowani
Postów: 221
Pomógł: 14
Dołączył: 11.03.2009
Skąd: Lubaczów

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


dzieki za odpowiedz:-)

no dobrze ja to rozumiem co napisales ale jak to wyglada teraz w praktyce??

zrobilem cos takiego:

index.php

  1. <?php
  2.  
  3. if (!isset($_SESSION['test']))
  4. {
  5. $_SESSION['test'] = 1;
  6. include_once "form.php";


}

?>

[/php]

form.php

  1. <form enctype="multipart/form-data" action="docelowy.php" method="post">
  2.  
  3. Nazwa wyswietlana:
  4.  
  5. <input type="text" name="wyswietlana" value=""><br><br>
  6. <input type="text" name="numer" value="">
  7. <br>
  8. <input type="submit" name="przycisk" value="Zmien" >
  9. </form>


docelowy.php

  1. <form enctype="multipart/form-data" action="ostatni.php" method="post">
  2.  
  3. Nazwa wyswietlana:
  4.  
  5. <input type="text" name="w" value=""><br><br>
  6. <input type="text" name="n" value="">
  7. <br>
  8. <input type="submit" name="wyslij" value="wyslij" >
  9. </form>


i po wyslaniu wszystkiego dostaje to :

Notice: Undefined index: wyswietlana in D:\_www_kurs\test\ostatni.php on line 3


Notice: Undefined index: numer in D:\_www_kurs\test\ostatni.php on line 4

ola
ula


dane z jednego formularza po przekazaniu do drugiego gina przy przeslaniu innych danych na koncowa strone

i chodzi mi o to ze nie rozumiem w jaki sposob mam napisac powyzszy skrypt zeby on mi tez pamietal dane z indexu : wyswietlana i numer. Gdzies wyczytalem ze dzieki sesji nie musze przekazywac ciagle danych przez POSt, tylko nie wiem wlasnie w jaki sposob to zapisac. Czy kazda dana z posta przypisywac do $_SESSION czy jakos inaczej??

mam nadzieje ze teraz bardziej zrozumiale napisalem o co mi chodzi.

pozdrawiam
Go to the top of the page
+Quote Post
mls
post 2.03.2010, 22:06:57
Post #4





Grupa: Zarejestrowani
Postów: 677
Pomógł: 89
Dołączył: 31.08.2003
Skąd: Warszawa

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


Aby coś zapisać do sesji, trzeba to przypisać do superglobalnej zmiennej $_SESSION. W każdym pliku w którym chcesz korzystać z sesji (czy to zapisywać, czy odczytywać) dodaj na początku session_start();.


--------------------
Go to the top of the page
+Quote Post
InosU31
post 3.03.2010, 22:13:29
Post #5





Grupa: Zarejestrowani
Postów: 221
Pomógł: 14
Dołączył: 11.03.2009
Skąd: Lubaczów

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


ok juz mniejwiecej zalapalem;-)

dziekuje bardzo

Pozdrawiam:-)
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: 5.07.2025 - 03:27