Przekazywanie danych. Dane zewnętrzne mogą pochodzić z róŝnych źródeł:



Podobne dokumenty
Zajęcia 10 obsługa formularzy w PHP

INTERNETOWE BAZY DANYCH materiały pomocnicze - wykład VII

Kontrola sesji w PHP HTTP jest protokołem bezstanowym (ang. stateless) nie utrzymuje stanu między dwoma transakcjami. Kontrola sesji służy do

Języki programowania wysokiego poziomu. PHP cz.3. Formularze

Sesje, ciasteczka, wyjątki. Ciasteczka w PHP. Zastosowanie cookies. Sprawdzanie obecności ciasteczka

Menu główne. Przedmiot: Programowanie usług internetowych - Delphi Przygotował: K. Strzałkowski Rok V. Semestr IX. Wydział ZiMK

Kontrola sesji w PHP HTTP jest protokołem bezstanowym (ang. stateless) nie utrzymuje stanu między dwoma transakcjami. Kontrola sesji służy do

Systemy internetowe. Wykład 3 PHP. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

BAZY DANYCH. Obsługa bazy z poziomu języka PHP. opracowanie: Michał Lech

Aplikacje internetowe - laboratorium

Języki skryptowe - PHP. PHP i bazy danych. Paweł Kasprowski. pawel@kasprowski.pl. vl07

Aplikacje WWW - laboratorium

Sklep internetowy wtspartner.pl dokłada wszelkich starań, aby prowadzony serwis ułatwiał każdemu użytkownikowi

Internetowy moduł prezentacji WIZYT KLIENTA PUP do wykorzystania np. na stronie WWW. Wstęp

Aplikacje WWW - laboratorium

Stosowanie ciasteczek (cookies)

SZKOLENIA I STUDIA PODYPLOMOWE DOFINANSOWANE Z EUROPEJSKIEGO FUNDUSZU SPOŁECZNEGO

I.Wojnicki, PHP. PHP PHP Hypertext Preprocessor. Igor Wojnicki. Ktedra Informatyki Stosowanej Akademia Górniczo-Hutnicza w Krakowie.

Wprowadzenie do Internetu Zajęcia 5

Zmienne powłoki. Wywołanie wartości następuje poprzez umieszczenie przed nazwą zmiennej znaku dolara ($ZMIENNA), np. ZMIENNA=wartosc.

Systemy internetowe Wykład 3 PHP

Podręcznik Integracji

Konta uŝytkowników. Konta uŝytkowników dzielą się na trzy grupy: lokalne konta uŝytkowników, domenowe konta uŝytkowników, konta wbudowane

Procedura zamawiania licencji.

Ćwiczenie: JavaScript Cookies (3x45 minut)

Serwery aplikacji. dr Radosław Matusik. radmat

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar)

SSK - Techniki Internetowe

I.Wojnicki, Tech.Inter.

Konfiguracja programu pocztowego Outlook Express i toŝsamości.

Cookie Policy. 1. Informacje ogólne.

SYSTEM ZARZĄDZANIA TREŚCIĄ (CMS) STRONY INTERNETOWEJ SZKOŁY PRZEWODNIK

Komunikator internetowy w C#

0.1 Logowanie do serwisu

Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w

1. Instalacja systemu Integra 7

Internetowe bazy danych

Dane - pobieranie, przekazywanie i przechowywanie. dr Beata Kuźmińska-Sołśnia

Zakres tematyczny dotyczący kursu PHP i MySQL - Podstawy pracy z dynamicznymi stronami internetowymi

Podstawowe informacje o obsłudze pliku z uprawnieniami licencja.txt

Cemarol Sp. z o.o. Polityka prywatności (pliki cookies) 1. Informacje ogólne.

11. PROFESJONALNE ZABEZPIECZENIE HASŁEM

Serwis realizuje funkcje pozyskiwania informacji o użytkownikach i ich zachowaniach w następujący sposób:

Polityka prywatności serwisu

II. PRZETWARZANIE DANYCH OSOBOWYCH:

Program do obsługi ubezpieczeń minifort

Wysyłanie pliku na serwer. Plik na serwerze.

Instrukcja zarządzania kontami i prawami

Lekcja 10. Uprawnienia. Dołączanie plików przy pomocy funkcji include() Sprawdzanie, czy plik istnieje przy pmocy funkcji file_exists()

Internetowy moduł prezentacji ofert pracy do wykorzystania na stronie WWW lub panelu elektronicznym. Wstęp

Sesje i logowanie. 1. Wprowadzenie

Zmienne i stałe w PHP

Współpraca Integry z programami zewnętrznymi

Certyfikat niekwalifikowany zaufany Certum Silver. Instrukcja dla uŝytkowników Windows Vista. wersja 1.1 UNIZETO TECHNOLOGIES SA

Zagrożenia trywialne. Zagrożenia bezpieczeństwa aplikacji internetowych. Parametry ukryte. Modyfikowanie parametrów wywołania

Załącznik 2 z dnia do Zarządzenie Nr 8 Rektora UW z dnia 31 sierpnia 2004

POLITYKA PRYWATNOŚCI SERWIS:

Polityka Prywatności i Cookies

Instrukcja uŝytkownika

Komunikacja między klientem, a skryptem PHP, oraz operacje na plikach

Obsługa serwisu kształcenie kwalifikacyjne w zawodzie - nowa formuła egzaminu zawodowego

Punkt dystrybucji recept

Rys. 1. Widok uruchomienia polecenia apt-get install build-essential. Rys. 2. Widok uruchomienia polecenia apt-get install apache2

W oknie na środku, moŝna wybrać język, który będzie językiem domyślnym dla TC. Wybierzmy zatem język polski:

ZASADY KORZYSTANIA Z PLIKÓW COOKIES ORAZ POLITYKA PRYWATNOŚCI W SERWISIE INTERNETOWYM PawłowskiSPORT.pl

POLITYKA COOKIES. Definicje. Rodzaje wykorzystywanych Cookies

Autor: Joanna Karwowska

Laboratorium 7 Blog: dodawanie i edycja wpisów

Instalacja i opis podstawowych funkcji programu Dev-C++

Komunikaty statystyczne medyczne

Czym są pliki cookies?

Przedmiot: Programowanie usług internetowych - Delphi Przygotował: K. Strzałkowski Rok V. Semestr IX. Wydział ZiMK

Instrukcja automatycznego tworzenia pozycji towarowych SAD na podstawie danych wczytywanych z plików zewnętrznych (XLS).

1. Wymagania techniczne Uruchomienie aplikacji Zasady pracy z aplikacją Interfejs aplikacji formularza elektronicznego...

Serwer WWW Apache. Plik konfiguracyjny httpd.conf Definiujemy m.in.: Aktualne wersje 2.4.6, , zakończony projekt

Wykład 5: PHP: praca z bazą danych MySQL

Instrukcja zarządzania kontem przedsiębiorstwa w serwisie internetowym

Wypełnianie protokołów systemie USOSweb

Instrukcja zarządzania kontem jednostki samorządu terytorialnego w serwisie internetowym

1 Powłoka programu Windows PowerShell Skrypty programu Windows PowerShell Zarządzanie dziennikami... 65

Dokumentacja systemu NTP rekrut. Autor: Sławomir Miller

Instrukcja składania wniosku o dofinansowanie w systemie informatycznym IP na potrzeby konkursu nr 1/1.1.1/2015

POLITYKA PRYWATNOŚCI

wersja dokumentacji 1.00 Opis programu TeleTokenEdit

REGULAMIN KORZYSTANIA Z INTERNETOWEGO SYSTEMU OBSŁUGI KLIENTÓW

Skrócona instrukcja pracy z Generatorem Wniosków

Paczki przelewów w ING BankOnLine

Aplikacje WWW - laboratorium


SZYBKI START. Tworzenie nowego połączenia w celu zaszyfrowania/odszyfrowania danych lub tekstu 2. Szyfrowanie/odszyfrowanie danych 4

Dokumentacja instalacji aktualizacji systemu GRANIT wydanej w postaci HotFix a

KaŜdy z formularzy naleŝy podpiąć do usługi. Nazwa usługi moŝe pokrywać się z nazwą formularza, nie jest to jednak konieczne.

Instrukcja użytkownika. Aplikacja dla WF-Mag

Kalipso wywiady środowiskowe

Instalacja. Jak skonfigurować Twój e-podpis?

Podstawy obsługi aplikacji Generator Wniosków Płatniczych

Teoretyczne wprowadzenie do programu pocztowego Microsoft Outlook 2007

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

Transkrypt:

Przekazywanie danych Dane zewnętrzne mogą pochodzić z róŝnych źródeł: - ze środowiska systemu - z parametrów adresu (przekazywane metodą GET) - z formularza przekazywane metodą GET - z formularza przekazywane metodą POST - pozostawiane w ciasteczkach cookies - pozostawiane w zmiennych sesji Wszystkie te dane dostępne są w tablicach globalnych, a dodatkowo mogą być dostępne w zmiennych automatycznie tworzonych przez php. Istnieje moŝliwość blokowania bezpośredniego tworzenia zmiennych automatycznych. NaleŜy w pliku php.ini ustawić dyrektywę: register_globals = off Zmiana tej dyrektywy na on spowoduje dołączenie mechanizmu automatycznego tworzenia zmiennych dla danych zewnętrznych. Zalecane jest korzystanie z danych zewnętrznych tylko z wykorzystaniem tablic. Jako powód takiego postępowania wskazuje się moŝliwość przeprowadzania ataków hakerskich poprzez zastępowanie zmiennych sesji przez zmienne tworzone parametrami adresu przekazywanymi metodą GET. Php nie odróŝnia nazwy zmiennej sesji od zmiennej utworzonej na podstawie parametru. W stosowanym w laboratorium interpreterze xampp dyrektywa jest wyłączona. Odbieranie danych z adresu: Plik DANE.PHP o zawartości: <h1>dane z formularza</h1> <h2> Za pomocą zmiennych </h2> if ($nazwa=="") echo "<b>brak danych o uŝytkowniku</b>"; else echo "UŜytkownik wyświetlający stronę to <b>$nazwa</b><br><br> ", "Hobby uŝytkownika <b>$hobby</b>"; <br> <h2> Za pomocą tablicy _GET </h2> $ile=count($_get); echo "Tablica _GET zawiera $ile elementów <br><br>";

foreach($_get as $indeks=>$element) echo "_GET[ $indeks ] = $element<br>"; <br><br> <a href="<?=$http_referer">powrót do poprzedniej strony</a> <br><br><br> </html> Wpisanie adresu: http://localhost/dane.php?nazwa=nowak&hobby=skoki narciarskie powoduje wyświetlenie wartości parametrów: - za pośrednictwem nazw zmiennych o nazwa identycznych z nazwami parametrów jeśli ustawiono opcję interpretera register_globals - pobieranych z tablicy _GET zawsze Dane z formularza metoda GET Zapisany wyŝej skrypt php moŝe odbierać dane przesyłane z formularza. Np. dla formularza zapisanego w pliku Form.Html: <h1>wprowadzanie danych uŝytkownika</h1> <FORM ACTION="dane.php" METHOD="GET"> Nazwa uzytkownika: <INPUT TYPE="TEXT" NAME="nazwa"> <P> Hobby: <INPUT TYPE="TEXT" NAME="hobby"> <P> <INPUT TYPE="SUBMIT" VALUE="Prześlij dane uŝytkownika"> </FORM> <br> </html> Dane z formularza metoda POST PowyŜszy formularz moŝe być wykorzystany do przekazywania parametrów metodą POST po zmianie atrybutu METHOD: <FORM ACTION="dane.php" METHOD="POST">

Oczywiście poŝądane jest uzupełnienie zapisu w skrypcie Dane.Php: $ile=count($_post); echo "Tablica _POST zawiera $ile elementów <br><br>"; foreach($_post as $indeks=>$element) echo "_POST[ $indeks ] = $element<br>"; MoŜliwe jest wyświetlanie formularza przy pomocy skryptu php. PoniŜej zawartość skryptu Mnoz.PHP, który słuŝy do wyświetlania formularza i jednocześnie do odbierania wpisywanych danych: <h1>test na mnoŝenie</h1> <FORM ACTION="Mnoz.php" METHOD="GET"> if(!isset($x) ) { $X=rand(1, 10); $Y=rand(1, 10); $W=''; $kom=''; else { if ($X*$Y==$W) $kom='dobrze'; else $kom='błąd! Popraw się'; echo " <b>$kom </b><br><br>"; echo '<INPUT TYPE="TEXT" NAME="X" VALUE="'.$X.'">'; echo '* <INPUT TYPE="TEXT" NAME="Y" VALUE="'.$Y.'">'; echo '= <INPUT TYPE="TEXT" NAME="W" VALUE="'.$W.'">'; <br><br><input TYPE="SUBMIT" VALUE="Sprawdź"> </FORM> <br> </html> Przydatne funkcje php to: empty($zm) false jeśli zmienna nie istnieje lub jest pusta lub false (to teŝ pusta) isset($zm) false jeśli zmienna nie istnieje

JeŜeli automatyczne kreowanie zmiennych jest wyłączone zapis powinien być zmieniony: if(!isset($_get['x']) ) { $_GET['X']=rand(1, 10); $_GET['Y']=rand(1, 10); $_GET['W']=''; $kom=''; else { if ($_GET['X']*$_GET['Y']==$_GET['W']) $kom='dobrze'; else $kom='błąd! Popraw się'; echo " <b>$kom </b><br><br>"; echo '<INPUT TYPE="TEXT" NAME="X" VALUE="'.$_GET['X'].'">'; echo '* <INPUT TYPE="TEXT" NAME="Y" VALUE="'.$_GET['Y'].'">'; echo '= <INPUT TYPE="TEXT" NAME="W" VALUE="'.$_GET['W'].'">'; MoŜliwe jest inne rozwiązanie wstawienie na początku skryptu zapisu tworzenia zmiennych o tych samych nazwach co indeksy elementów tablicy _GET: if( isset($_get['x']) ) { $X = $_GET['X'] $y = $_GET['Y'] $W = $_GET['W'] Pozostała część skryptu pozostaje bez zmian. Ciekawym rozwiązaniem jest utworzenie tych zmiennych w nieco inny sposób: foreach($_get as $indeks=>$element) $$indeks = $element; Podana wyŝej pętla tworzy tyle zmiennych ile jest elementów w tablicy _GET. Wszystkie mają nazwy takie same jak indeksy tablicy. Kluczowe znaczenie ma wykonywana w pętli instrukcja przypisania: $$indeks = $element; Odwołanie do zmiennej postaci $$indeks (nazwa poprzedzona podwójnym $$) oznacza zmienną o nazwie równej wartości zmiennej $indeks. Np. w wyniku zapisu: $zm2='przykladowy napis' $zm1 = 'zm2'; echo $$zm2; Wydrukowany będzie tekst: Przykladowy napis

Dla sprawdzenia poprawności przytoczonego wyŝej zapisu pętli moŝna wypróbować: $tab['i1']='ala'; $tab['i2']='ola'; $tab['i3']='ula'; foreach($tab as $indeks=>$element) $$indeks = $element; echo "i1=$i1 i2=$i2 i3=$i3 "; Uruchomienie strony Mnoz.php z zastosowaniem metody POST wymaga tylko niewielkich zmian. Ciasteczka - cookies Wszystkie zmienne "pamięciowe" mają czas Ŝycia kończony w momencie wyświetlenia strony. Przechowywania wartości pomiędzy kolejnymi "odsłonami" stron wymaga zapisywania ich w pamięci dyskowej. Jeśli są to wartości które mają być dostępne na stronach wyświetlanych przez wszystkich uŝytkowników naleŝy je zapisywać w plikach lub tabelach bazy danych po stronie serwera. Jeśli wartości mają być dostępne tylko na stronach otwieranych przez konkretnego uŝytkownika, to wygodnie jest zapisać je w plikach na dysku po stronie klienta. PHP udostępnia implementację takiego zapisu znaną jako "cookies". PHP w duŝym stopniu automatyzuje obsługę cookies. Do ustanowienia jednego ciasteczka naleŝy wywołać funkcję o składni: int SetCookie(string $nazwa, string $wartosc, int $czas, string $ścieŝka, string $domena,... ) Funkcja moŝe mieć do 7 argumentów lecz tylko pierwszy (nazwa ciasteczka) jest obowiązkowy. Parametr drugi naleŝy podać jeśli ciasteczko ma mieć wartość. Parametr trzeci określa czas waŝności ciasteczka. Jego brak oznacza waŝność do zamknięcia przeglądarki. Dwa następne parametry określają adres, z którego moŝna będzie korzystać z cookie. Parametr ścieŝka moŝe określać podkatalog (a takŝe jego podkatalogi) z którego strony maja prawo do cookie. Parametr opuszczony to dostęp jak przy /. Parametr domena określa nazwę domenową komputera dla którego ma być dostępne cookie. Parametr opuszczony to dostęp z komputera który ustawia cookie. Ustawianie parametru czas wymaga specjalnego formatowania. Wygodnie jest wykorzystywać funkcję time() zwracająca czas bieŝący. Np. dla ustalenia czasu na godzinę od chwili obecnej parametr powinien wynosić: time()+3600 dla dnia: time()+86400. Opuszczenie parametru lub wysłanie 0 spowoduje waŝność cookie do zamknięcia przeglądarki.

Dla usunięcia cookie naleŝy go ponownie wygenerować przy wartości czasu mniejszej niŝ chwila obecna np.: time()-3600. Polecenie usuwania - powtórnego generowania cookie powinno mieć te same pozostałe parametry tj. nazwę, ścieŝkę, domenę,... PoniewaŜ wywołanie funkcji SetCookie powoduje utworzenie nagłówka dlatego funkcję tę moŝna wywoływać tylko na samym początku dokumentu - przed znacznikiem Przykład Plik Nowa1.php zawiera zapis: if(!isset($licznik)) $licznik=0; $licznik++; SetCookie("licznik", $licznik); <h1>strona z ustawionym cookie</h1> Strona zawiera następujący kod:<br><br><b> if(!isset($licznik)) $licznik=0;<br> $licznik++;<br> SetCookie("licznik", $licznik);<br><br></b> Kod ten powoduje ustawienie cookie licznik o wartości zwiększającej się przy kaŝdym wyświetleniu strony<br><br> Wartość zmiennej=<b> echo $licznik; </b><br><br> Spróbuj kilkakrotnie wyświetlić stronę. Spróbuj takŝe zamknąć przeglądarkę i ponownie wyświetlić stronę. <br><br> echo '<a href="'.$http_referer.'">powrót do poprzedniej strony</a>'; <br><br> Umieszczony przed znacznikiem kod: if(!isset($licznik)) $licznik=0; $licznik++; SetCookie("licznik", $licznik);

powoduje sprawdzenie czy istnieje zmienna $licznik - jeśli nie to utworzenie jej z wartością 0. W dalszej kolejności zmienna jest zwiększana o jeden oraz generowane jest cookie o nazwie licznik i wartości pobranej ze zmiennej $licznik. Zapis wykorzystuje fakt, Ŝe php automatycznie generuje zmienne na podstawie ciasteczek napotkanych u klienta. Jeśli automatyczne generowanie zmiennych jest wyłączone zapis powinien być zmieniony: if(!isset($_cookie['licznik'])) $licznik=0; $_COOKIE['licznik']++; SetCookie("licznik", $_COOKIE['licznik']); Oraz konsekwentnie: echo $_COOKIE['licznik']; Wykorzystanie cookie przy przykładowym logowaniu Strona główna przykładowego serwisu zawiera dwa odsyłacze: Logowanie Wiadomości tajne Odsyłacz pierwszy wyświetla formularz umoŝliwiający uŝytkownikowi zalogowanie w serwisie. Odsyłacz drugi wyświetla stronę z tajnymi informacjami, które powinny być dostępne jedynie dla uŝytkowników uprzywilejowanych, co powinno być potwierdzone przez zalogowanie się z odpowiednim hasłem. Strona ta nie powinna być wyświetlana jeśli uŝytkownik nie podał odpowiedniego loginu i hasła. Po poprawnym zalogowaniu uŝytkownika zachodzi konieczność przekazanie odpowiedniej informacji na stronę wiadomości tajnych, potrzebne jest więc cookie. Przykładowy zapis strony Tajne.Php wyświetlającej wiadomości tajne <h1>wiadomości tajne</h1> if (empty($_cookie['log'])) echo "<b>niestety strona jest niedostępna dla uŝytkowników". "niezalogowanych! </b><br><br>"; else echo "Wszystko OK!<br><br>DuŜa tajemnica! Dostęp do tej strony ma tylko". "uŝytkownik <b>fasola</b>. Hasło= <b>groszek</b><br><br>"; <br> echo '<a href="'.$http_referer.'">powrót do poprzedniej strony</a>';

<br><br><br> </html> Jak widać zastosowano kod który wyświetla wiadomości tajne tylko wtedy gdy jest wykreowane i ustawione nie pustą wartością cookie o nazwie log. W przeciwnym przypadku wyświetlana jest tylko informacja odmowna. Druga strona serwisu o nazwie Logowanie.Php wyświetla formularz logowania sprawdza poprawność logowanie i w pozytywnym przypadku tworzy cookie o nazwie log i wartości jest. Zapis tego pliku: $komunikat=""; SetCookie("log"); if ( isset($_get['login']) ) { $komunikat="zły login lub hasło! Spróbuj jeszcze raz"; if ($_GET['login']=="") $komunikat="błędne logowanie! Nie podano Nazwy uŝytkownika"; elseif ($_GET['haslo']=="") $komunikat="błędne logowanie! Nie podano Hasła uŝytkownika"; elseif ($_GET['login']=="fasola" && $_GET['haslo']=="groszek") { SetCookie("log", "jest"); die('<meta http-equiv="refresh" content="0; URL=index.php">'); <h1>logowanie uŝytkownika</h1> if ($komunikat!="") echo "<b>$komunikat</b>"; <FORM ACTION="logowanie.php" METHOD="GET"> Nazwa uzytkownika: <INPUT TYPE="TEXT" NAME="login"> <P> Hasło: <INPUT TYPE="TEXT" NAME="haslo"> <P> <INPUT TYPE="SUBMIT" VALUE="Sprawdź dane uŝytkownika"> </FORM> <br> <a href="index.php">powrót do strony głównej</a> <br><br><br> </html>

Wyświetlany jest dwu-polowy formularz logowania poprzedzony komunikatem. Przy pierwszym wyświetlaniu komunikat jest pusty. Zatwierdzenie wpisanych danych powoduje ponowne wyświetlenie tej samej strony przy ustawionych parametrach GET. Tym razem początkowy skrypt php spowoduje sprawdzenie czy uŝytkownik wprowadził poprawne wartości jeśli nie to formularz zostanie wyświetlony powtórnie poprzedzony komunikatem błędu. Poprawne wypełnienie formularza Login=fasola oraz Hasło=groszek spowoduje wykonanie dwu czynności: SetCookie("log", "jest") - ustanowienie cookie log o wartości jest z terminem waŝności do końca sesji przeglądarki die('<meta http-equiv="refresh" content="0; URL=index.php">') - porzucenie strony bieŝącej z wymuszeniem wyświetlenia strony index.php Przydatne funkcje void: exit() - natychmiastowe zakończenie skryptu i porzucenie strony. die(string $tekst) - natychmiastowe zakończenie skryptu z przesłaniem do przeglądarki komunikatu określonego przez parametr $tekst. W skrypcie wykorzystano funkcję die do przesłania do przeglądarki znacznika <meta> wymuszającego wyświetlenie strony głównej index.php. Zmienne sesji Zmienne sesji stanowią alternatywne rozwiązanie problemu przechowywania wartości pomiędzy kolejnymi "odsłonami" stron. W odróŝnieniu od cookies zmienne sesji są przechowywane na serwerze. Sesja kaŝdego klienta posiada oryginalny identyfikator pozwalający identyfikować miejsce (schowek) przechowywania zmiennych tego uŝytkownika. Wywołania funkcji inicjującej sesję podobnie jak funkcje kreujące cookies trzeba umieszczać tylko na samym początku dokumentu - przed znacznikiem Zmienne sesji moŝna rejestrować w dowolnym miejscu. Zmienne te zaraz po zarejestrowaniu stają się superglobalne, tj. dostępne takŝe z innych stron (skryptów) Przykład session_start(); session_register("liczba"); $liczba=$liczba+1; # moŝe bezpieczniej $liczba=@$liczba+1;

<h1>strona z ustawioną zmienną sesji</h1> Strona zawiera następujący kod:<br><br><b> session_start();<br> session_register("liczba");<br> $liczba=$liczba+1;<br><br></b> Kod ten powoduje ustawienie zmiennej <b>liczba</b> o wartości zwiększającej się przy kaŝdym wyświetleniu strony<br><br> Wartość zmiennej=<b> echo $liczba; </b><br><br> Spróbuj kilkakrotnie wyświetlić stronę. Spróbuj takŝe zamknąć przeglądarkę i ponownie wyświetlić stronę. <br><br> echo '<a href="'.$http_referer.'">powrót do poprzedniej strony</a>'; <br><br> Początkowy zapis: session_start(); session_register("liczba"); $liczba=$liczba+1; # moŝe bezpieczniej $liczba=@$liczba+1; zawiera wywołanie funkcji: session_start() Bezparametrowa funkcja odczytuje z cookie (lub z parametrów GET lub POST) identyfikator sesji i na jego podstawie odtwarza wszystkie zarejestrowane wcześniej zmienne sesji. Są one udostępniane w dalszej części skryptu pod swoimi nazwami i/lub w tablicy _SESSION. session_register() Rejestruje zmienną określoną parametrem (sama nazwa bez $). JeŜeli nie wywołano wcześniej funkcji session_start(), session_register() niejawnie ją wywołuje. Lepiej oczywiście odwoływać się do tablicy _SESSION np.: $_SESSION['liczba']=$_SESSION['liczba']+1; Zmienne mogą być rejestrowane takŝe bez funkcji session_register() wystarczy zwykłe uŝycie tablicy _SESSION z nowym indeksem nazwą zmiennej. Inne przydatne funkcje: session_unregister() - Usuwa z listy zarejestrowanych zmiennych zmienną o nazwie przekazanej parametrem. Od tej chwili zmienna nie będzie juŝ przesyłana. Nazwa zmiennej nie powinna zawierać początkowego znaku '$'. session_is_registered() - zwraca TRUE jeśli zmienna określona parametrem jest dostępna (zarejestrowana).

session_destroy() Usuwa wszystkie zapamiętane dane sesji (identyfikator sesji zostaje). Wywołanie tej funkcji nie zmienia wartości Ŝadnych zmiennych w bieŝącym skrypcie. session_name() - wywołana bez parametrów zwraca nazwę bieŝącej sesji. Jest to zwykle nazwa domyślna: 'PHPSESSID'. JeŜeli podano parametr to nazwa sesji jest zmieniana na czas działania skryptu. Nazwa ta jest uŝywana przez php jako klucz do odszukania identyfikatora sesji w cookie lub parametrach GET, POST. session_id() - Bez parametrów zwraca identyfikator sesji. Z parametrem ustawia wartość identyfikatora. W treści strony moŝna umieścić w róŝnych miejscach wstawki kreujące kolejne zmienne sesji postaci: $_SESSION['nowa zmienna 1']='wartość tekstowa'; lub dla zarejestrowania zmiennej bez wartości: session_register('nowa zmienna 2'); Z innej strony zawierającej na początku wywołanie session_start() moŝna w dalszej treści zapisać polecenia wyświetlania zmiennych np. w postaci: echo '<hr><h1>tablica _SESSION</h1>'; $ile=count($_session); echo "Tablica _SESSION zawiera $ile elementów <br><br>"; foreach($_session as $indeks=>$element) echo "_SESSION[ $indeks ] = $element<br>"; MoŜna obserwować, Ŝe zmienne są dostępne takŝe na innych stronach.