jak miedzy stronami przesłać zmienne korzystajac z sesji, PHP Skrypty


[PHP] Jak między stronami przesłać zmienne korzystając z sesji?

0x01 graphic

Chcesz przekazywać między stronami zmienne wykorzystując mechanizm sesji.

0x01 graphic

Jeżeli chcesz, aby użytkownik mógł korzystać z wcześniej zainicjalizowanych zmiennych (np. listy zamówionych w sklepie towarów lub loginu i hasła), możesz wykorzystać mechanizm sesji, który jest wygodniejszy niż przesyłanie tych samych zmiennych tylko przez cookies lub tylko jako parametr adresu URL.

Choć sesje bardzo przypominają obsługę cookies i parametry w zmiennych, są w rzeczywistości bardziej rozbudowanym, niezależnym mechanizmem przeznaczonym do przesyłania informacji między stronami w obrębie jednej sesji. Sesje korzystają z cookies i/lub parametrów w adresach URL (gdy cookies nie są włączone), ale wszystko odbywa się automatycznie, bez ingerencji programisty przy minimalnym użyciu kodu.

Jest to bardzo wygodne i proste rozwiązanie, bo nie musisz martwić się o samodzielne przesyłanie zmiennych przypisanych do użytkownika w adresach WWW lub cookies. Tym zajmuje się PHP i np. w razie potrzeby sam dołącza parametr do odnośnika, wyręczając Cię w tworzeniu skomplikowanych linków gdy nie działają cookies.

Użycie sesji jest banalnie proste. Stwórzmy dwie strony i prześlijmy między nimi kilka zmiennych. Na stronie index.php umieść poniższy skrypt:

<?

session_start();

$_SESSION["imie"]="Jan";

$_SESSION["nazwisko"]="Kowalski";

$_SESSION["wiek"]=30;

?>

<a href="strona2.php">kolejna strona</a>

Każda strona, która będzie odwiedzona w ramach jednej sesji, czyli jednego połączenia i przechodzenia między stronami musi zaczynać się od zainicjowania mechanimu sesji za pomocą session_start(). Jeżeli nie chcesz umieszczać w każdej stronie tego polecenia, umieść w pliku php.ini w zmiennej session.auto_start wartość 1.

Do dyspozycji masz tablicę globalną ze zmiennymi $_SESSION, do której możesz "wkładać" różne wartości i przypisane im zmienne. W ten sposób dodaję imię, nazwisko i wiek, które mogłem pobrać np. z bazy danych lub formularza.

Teraz przechodząc do nowej strony, dalej chcę z nich korzystać. A więc na stronie strona2.php odczytuję je i wypisuję na ekranie:

<?

session_start();

echo "imię: ".$_SESSION["imie"];

echo "<br>nazwisko: ".$_SESSION["nazwisko"];

echo "<br>wiek: ".$_SESSION["wiek"];

?>

Pobieram je z tablicy $_SESSION, gdzie zostały wcześniej zapisane.

Łatwe, prawda? Dane, które zapisane zostały do tablicy, w rzeczywistości znajdują się w specjalnym pliku tekstowym na serwerze. Ścieżkę do miejsca na serwerze gdzie umieszczane są pliki sesji dla każdego użytkownika możesz zadeklarować w zmiennej session.save_path, też w pliku php.ini.

Plik z sesją (dla mojej sesji) nazywa się: sess_d9438c5ee47318c996c1ec44df3a6533 (każda sesja ma inny identyfikator) i zawiera następującą treść:

imie|s:3:"Jan";nazwisko|s:8:"Kowalski";wiek|i:30;

Informacja o pliku, w którym znajdują się dane sesji (a więc nasze parametry), przesyłana jest przez mechanizm ciasteczek (cookies), a jeżeli ciasteczka są wyłączone, PHP automatycznie dodaje identyfikator pliku do adresu URL (tylko ustaw w tym celu session.use_trans_sid na 1), np.:

strona2.php?PHPSESSID=d9438c5ee47318c996c1ec44df3a6533

W ten sposób cały czas, pomiędzy stronami, po których się poruszam, przesyłany jest identyfikator aktualnej sesji, gdzie mogą być zapisane moje ustawienia, hasła, lista zakupów czy inne informacje, z których użytkownik korzysta chodząc po stronie WWW.



Wyszukiwarka

Podobne podstrony:
Jak stworzyć zaawansowany test wyboru lub quiz, PHP Skrypty
Jak zrobić licznik pobrań plików ze strony, PHP Skrypty
Jak zrobić przekierowanie z jednej strony na drugą, PHP Skrypty
jak wypisac zawartosc bazy danych dBase (dbf), PHP Skrypty
Jak dopisać dane na początku pliku tekstowego, PHP Skrypty
Jak wygenerować statyczny plik .html z bazy danych, PHP Skrypty
Jak zamienić liczby na kwoty zapisane słownie, PHP Skrypty
jak samodzielnie obliczyc numer dnia w dowolnym roku, PHP Skrypty
Jak odbierać dane pochodzące z różnych pól formularza, PHP Skrypty
Jak wysłać list do grup dyskusyjnych USENET, PHP Skrypty
jak stworzyc licznik klikniec ze statystyka dzienną, PHP Skrypty
Jak cenzurować wypowiedzi i brzydkie słowa na forum, PHP Skrypty
jak w grafice zmienic wybrane kolory na inne, PHP Skrypty
jak wykonac strone z logowaniem do innej strony, PHP Skrypty
Jak automatycznie pokolorować na przemian wiersze tabeli, PHP Skrypty
Jak stworzyć zaawansowany test wyboru lub quiz, PHP Skrypty
Jak pobrać zawartość strony WWW korzystając z biblioteki CURL, PHP Skrypty
jak przeslac dane z pol tekstowych do innych stron, PHP Skrypty
Jak przesłać ręcznie metodą POST dane do skryptu przetwarzającego formularze, PHP Skrypty

więcej podobnych podstron