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



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

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

Ćwiczenie: JavaScript Cookies (3x45 minut)

Serwery aplikacji. dr Radosław Matusik. radmat

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

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

Wysyłanie pliku na serwer. Plik na serwerze.

II. RODZAJE PLIKÓW COOKIES

KUP KSIĄŻKĘ NA: PRZYKŁADOWY ROZDZIAŁ KOMUNIKATY DLA UŻYTKOWNIKA

Stosowanie ciasteczek (cookies)

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

Sesje i logowanie. 1. Wprowadzenie

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

Polityka cookies w serwisie internetowym

Polityka prywatności serwisu

WPROWADZANIE ZLECEŃ POPRZEZ STRONĘ INSTRUKCJA UŻYTKOWNIKA

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

Polityka Prywatności i Cookies

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

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

, NO 556 NATHAN ROAD, MONGKOK, KOWLOON, HONG KONG. KRS: o

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

Zasady Wykorzystywania Plików Cookies

Zmienne i stałe w PHP

Sprawozdanie nr 4. Ewa Wojtanowska

Cookie Policy. 1. Informacje ogólne.

Ciasteczka. Krishna Tateneni Jost Schenck Polskie tłumaczenie: Suse Polska Aktualny opiekun tłumaczenia: Marcin Kocur

Instrukcja wypełniania formularza Ankieta Trwałości

Fiery Remote Scan. Łączenie z serwerami Fiery servers. Łączenie z serwerem Fiery server przy pierwszym użyciu

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

Używamy plików cookies, aby zapamiętać twoje preferencje. Niesie to następujące skutki:

Wykorzystywanie plików cookies

POLITYKA PLIKÓW "COOKIES"

MATERIAŁY - udostępnianie materiałów dydaktycznych w sieci SGH

1. Rejestracja 2. Logowanie 3. Zgłaszanie nowego wniosku projektowego

Instrukcja instalacji PHP-Hypercachera Refresher Standard oraz PHP-Hypercachera Refresher GZIP na Twojej witrynie

Fundacja Ośrodka KARTA z siedzibą w Warszawie, przy ul. Narbutta 29 ( Warszawa),

Dokumentacja systemu NTP rekrut. Autor: Sławomir Miller

Serwis nie zbiera w sposób automatyczny żadnych danych, z wyjątkiem danych zawartych w plikach cookies podczas samego korzystania z Witryny.

jako integralna część Regionalnego Systemu Informacji Przestrzennej (RSIP)

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody

KUP KSIĄŻKĘ NA: PRZYKŁADOWY ROZDZIAŁ KOMUNIKATY DLA UŻYTKOWNIKA I ROLE UŻYTKOWNIKÓW

Instrukcja logowania do systemu Rejestru Unii sprawdzenie identyfikatora użytkownika - URID

II. PRZETWARZANIE DANYCH OSOBOWYCH:

Oświadczenie o plikach cookies

Instrukcja logowania do systemu Rejestru Unii

2014 Electronics For Imaging. Informacje zawarte w niniejszej publikacji podlegają postanowieniom opisanym w dokumencie Uwagi prawne dotyczącym tego

Polityka wykorzystywania plików cookies

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

Klient poczty elektronicznej - Thunderbird

Laboratorium 1 Wprowadzenie do PHP

POLITYKA COOKIES. Definicje. Rodzaje wykorzystywanych Cookies

APLIKACJA SHAREPOINT

Programowanie w Sieci Internet Python - c. d. Kraków, 28 listopada 2014 r. mgr Piotr Rytko Wydział Matematyki i Informatyki

Udaj się na stronę (lub tymczasowy zapewniający połączenie szyfrowane)

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.

wersja 1.0 ośrodek komputerowy uj cm ul. mikołaja kopernika 7e, Kraków tel

Rys Należy zalogować się do systemu poprzez podanie otrzymanego od OKE Loginu i Hasła.

POLITYKA PRYWATNOŚCI W SERWISIE INTERNETOWYM

Instrukcja instalacji programu ARPunktor wraz z serwerem SQL 2005 Express

Polityka prywatności dla strony ELCEN Sp. z o.o. z siedzibą w Gdyni

POLITYKA PRYWATNOŚCI

Czym są pliki cookies?

Logowanie do aplikacji TETA Web. Instrukcja Użytkownika

Synchronizator plików (SSC) - dokumentacja

Korzystanie z edytora zasad grupy do zarządzania zasadami komputera lokalnego w systemie Windows XP

Instrukcja Użytkownika Systemu Zarządzania Tożsamością Wersja. 1.0

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

Serwis nie zbiera w sposób automatyczny żadnych informacji, z wyjątkiem informacji zawartych w plikach cookies.

Polityka bezpieczeństwa.

Regulaminu korzystania z serwisów internetowych i polityka prywatności

Palety by CTI. Instrukcja

Instalacja systemu zarządzania treścią (CMS): Joomla

Wypełnianie protokołów w USOSweb. Instrukcja dla osób prowadzących zajęcia dydaktyczne.

ZPKSoft WDoradca. 1. Wstęp 2. Architektura 3. Instalacja 4. Konfiguracja 5. Jak to działa 6. Licencja

POLITYKA PRYWATNOŚCI SERWIS:

Aplikacje WWW - laboratorium

Polityka prywatności

Opcje Fiery1.3 pomoc (klient)

Nowe zasady dotyczące cookies

POLITYKA PLIKÓW "COOKIES"

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

Języki programowania wysokiego poziomu. Blog

Instrukcja obsługi/instalacji platformy Krok w Przedsiębiorczość Administrator platformy

e-wsparcie Barbara Muszko Aktualizacja Twojej witryny internetowej tak prosta, jak obsługa Worda

Podstawowe informacje na temat usuwania plików cookie dla rożnych typów popularnych przeglądarek internetowych

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

1. Proszę wejść na stronę: poczta.home.pl i zalogować się do nowej skrzynki za pomocą otrzymanych danych.

Obowiązek informacyjny RODO

Jak złożyć wniosek o dotację Fundacji PZU? - instrukcja dla użytkownika

Języki programowania wysokiego poziomu. Ćwiczenia

Instrukcja pozyskania identyfikatora - UID

Instrukcja obsługi programu VisitBook Semieta Lite

Przewodnik Szybki start

Podręcznik Integracji

Instrukcja obsługi portalu wersja dla aptek. Logowanie do portalu:

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

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

Transkrypt:

Sesje, ciasteczka, wyjątki Nie sposób wyobrazić sobie bez nich takich podstawowych zastosowań, jak logowanie użytkowników czy funkcjonowanie koszyka na zakupy. Oprócz tego dowiesz się, czym są wyjątki, jak je stosować oraz nauczysz się obsługiwać pliki wysłane na serwer. Ciasteczka w PHP Czym są ciasteczka (z ang. cookies)? To niewielki fragment informacji, który aplikacja internetowa może zapisać na komputerze użytkownika. Gdy przeglądarka łączy się ze stroną, w pierwszej kolejności szuka lokalnych cookies, odpowiednich dla danej witryny. Jeżeli znajdzie zostaną one przekazane serwerowi. // utworzenie ciasteczka setcookie($nazwa, $wartosc, $koniec, $sciezka, $domena,$bezpieczne); Setcookie() może przyjąć 6 argumentów. Jednak wymagane jest podanie tylko pierwszego, którym jest nazwa ciasteczka. $wartosc to wartość przypisana do ciastka, $koniec wyraża datę wygaśnięcia, $sciezka i $domena mogą być stosowane do określenia adresów, dla których cookie jest ważne. Ostatni argument, $bezpieczne, oznacza, że cookie nie będzie wysyłane przez zwykłe połączenie HTTP. Zastosowanie cookies W praktyce, najczęściej używamy trzech pierwszych argumentów. Wszelkie zapamiętywanie zalogowanego użytkownika, oddania głosu w ankiecie itp. są obsługiwane właśnie z wykorzystaniem cookies. Zasada jest prosta jeśli cookie istnieje, to znaczy, że głos został oddany. Jeżeli nie, można oddać głos, po czym cookie jest tworzone. // zapisanie oddania głosu jednorazowego setcookie('oddano_glos', '1'); // w przypadku gdy głosować można raz dziennie setcookie('oddano_glos', '1', time()+3600*24); Można łatwo zauważyć, że data wygaśnięcia podawana jest w postaci liczby sekund od 1 stycznia 1970 roku. Wygodnie jest zatem użyć funkcji time(), zwracającej liczbę sekund, które upłynęły do chwili obecnej, po czym dodać żądany czas (w naszym przypadku jest to jeden dzień, gdyż 24 godziny = 24 * 1 godzina = 24 * 3600 sekund). Sprawdzanie obecności ciasteczka Wiesz, jak ustawić ciasteczko, jego wartość oraz datę wygaśnięcia. Czas teraz na sprawdzanie, czy

ciastko istnieje. Każde ciasto jest przechowywane w tablicy globalnej $_COOKIES. Sprawdzimy, czy istnieje cookie o nazwie aktywacja : if(isset($_cookie['aktywacja'])) echo "Ciasteczko istnieje"; else echo "Brak ciastecza o nazwie aktywacja"; Wyświetlenie wartości ciasteczka Jeżeli cisteczko istnieje to możemy sprawdzić jego wartość // zapisanie oddania głosu jednorazowego setcookie('beleco', 'pomidor'); if(isset($_cookie['beleco'])) echo $_COOKIE['beleco']; else echo "Brak ciastecza o nazwie beleco"; Sesje w PHP Kontrola sesji udostępnia możliwość śledzenia poczynań odwiedzającego, podczas pojedynczej wizyty na naszej stronie. Innymi słowy, umożliwia rozpoznanie, czy użytkownik dopiero co wszedł na stronę, czy przechodzi z innej podstrony serwisu. Dodatkowo, możemy tworzyć i usuwać zmienne, których istnienie jest ściśle powiązane z pojedynczą sesją (wizytą). Ich żywot kończy się wraz z zamknięciem okna przeglądarki lub przejścia na inną stronę. Przechowywanie zmiennych sesji Domyślnie, zmienne sesyjne są przechowywane na komputerze użytkownika w postaci cookies (poznanych na poprzedniej lekcji). Jeżeli odwiedzający ma zablokowane zapisywanie ciasteczek lub w pliku konfiguracyjnym ustawimy inaczej, możliwe jest dodawanie informacji o sesji do adresu URL. Rozpoczynanie sesji Zanim możliwe będzie tworzenie zmiennych sesji, należy ją zainicjować. Można to zrobić na dwa sposoby. Pierwszym, najprostszym z nich, jest wywołanie funkcji: // inicjacja sesji Działa ona następująco Jeżeli identyfikator sesji nie istnieje, zostanie on utworzony (przez co my otrzymamy możliwość tworzenia zmiennych sesji). Jeśli natomiast takowy identyfikator już

istnieje, funkcja pobierze wartości wszystkich zmiennych obecnej sesji. Tworzenie zmiennych sesji Po wywołaniu funkcji start_session(), PHP udostępnia nam tablicę superglobalną $_SESSION. Od tej pory możemy tworzyć tymczasowe zmienne, które będą przechowywane w tej właśnie tablicy. Jej wartości pobierane są przez funkcję start_session() za każdym razem, gdy odświeżamy stronę. // inicjacja sesji // utworzenie zmiennej sesji $_SESSION['zm_sesji'] = 1; Powyższy skrypt najpierw inicjuje obsługę sesji, po czym tworzy zmienną, o nazwie zm_sesji. Podczas kolejnych wyświetleń strony, w tablicy superglobalnej $_SESSION, będzie przechowywany rekord z indeksem zm_sesji, posiadający wartość 1. Gdy wejdziemy na inną podstronę i wywołamy kod: // użycie zmiennej if(isset($_$_session['zm_sesji'])) echo $_SESSION['zm_sesji']; Wyświetli się wartość zmiennej, zapisanej w poprzednim skrypcie. Jeżeli natomiast najpierw odwiedzimy tę podstronę, $_SESSION[ zm_sesji ] nie będzie posiadała żadnej wartości. Nie zapamięta zapisanej wartości z poprzedniej wizyty. Na tym właśnie polegają zmienne sesyjne istnieją wyłącznie podczas trwania jedej wizyty. Z każdą następną zmienne należy utworzyć ponownie. Zakańczanie sesji Czasem zachodzi potrzeba, by zakończyć sesję manualnie, zanim użytkownik skończy zwiedzać naszą stronę. Wyobraźmy sobie, że sesja przechowuje dane o zalogowanym użytkowniku. W momencie wylogowania, należy tę sesję zamknąć, mimo iż dana osoba może wciąż przeglądać stronę jako niezalogowana. Można to osiągnąć poprzez wywołanie funkcji usuwającej id sesji: // zniszczenie sesji session_destroy();

Usuwanie zmiennych sesji Zanim jednak usuniemy identyfikator sesji, co zniszczy ją zupełnie, powinniśmy usunąć wszystkie zmienne z tablicy $_SESSION. Zmienne sesyjne usuwamy za pomocą funckji: // usuwanie zmiennej unset($_session['nazwa_zmiennej']); Jeśli zmiennych jest naprawdę dużo, można zastosować pewien trik, który usunie je wszystkie. Wystarczy wywołać: // usuwanie wszystkich zmiennych z $_SESSION $_SESSION = array(); Na tym kończę omawianie sesji w PHP. Znasz już najważniejsze zagadnienia, w podsumowaniu poćwiczysz praktykę. Teraz czas na wyjątki. Czym są wyjątki? Wyjątki służą do wyłapywania błędów w wykonywaniu skryptu. Przykładowo, gdy chcemy otworzyć jakiś plik, który nie istnieje, skrypt się sypie. Wtedy do akcji wkraczają wyjątki. Zamiast zakończyć program, zwracany jest wyjątek. Dzięki temu możemy wyświetlić odpowiedni komunikat o błędzie użytkownikowi. Wyrzucanie wyjątków W przypadku, gdy wystąpi błąd i chcemy wyrzucić pewien wyjątek, posługujemy się poleceniem throw. Wyrzucać, jak napisałem powyżej, możemy obiekty klasy Exception. W praktyce wygląda to tak: if(!wykonaj_funkcje()) throw new Exception('Funkcja nie mogła być wykonana', 5); Powyższy skrypt wyrzuci wyjątek w wypadku, gdy funkcja wykonaj_funkcje() zwróci false. Wyjątek o kodzie 5 i komunikacie Funkcja nie mogła być wykonana. Łapanie wyjątków Skrypt będzie wyłapywać wyjątki jedynie w bloku try. Dlatego wszystkie podejrzane funkcje, które chcemy obsłużyć wyjątkami, musimy umieścić w:

// bezpieczne funkcje try // podejrzane funkcje Następnie, jeżeli któraś z podejrzanych funkcji wyrzuci wyjątek, trzeba go złapać i odpowiednio obsłużyć. Wyjątki łapiemy za pomocą instrukcji catch. Poniżej przykład w praktyce: // bezpieczne funkcje try // podejrzane funkcje catch (Exception $e) echo 'Wystąpił wyjątek nr '.$e->getcode().', jego komunikat to: '.$e->getmessage(); $e->getcode() zawiera kod wyrzuconego wyjątku, a $e->getmessage()komunikat. Jeżeli zastosowalibyśmy wyjątek z początku tej lekcji, $e->getcode() miałoby wartość 5, a $e- >getmessage() to Funkcja nie mogła być wykonana. W ten sposób użytkownik będzie wiedział, dlaczego pojawia się błąd i będzie mógł powiadomić o tym administratora. Ćwiczenia: 1. Napisz formularz który będzie służył do tworzenia ciasteczek na stronie o dowolnej nazwie dowolnej wartości. 2. Napisz formularz któremu podamy nazwę ciasteczka a on wyświetli jego wartość (nie zapomnieć o użyciu isset). 3. napisz formularz który będzie zliczał kliknięcia guzika na stronie z wykorzystaniem cookies (będzie się wyświetlała liczba dotychczasowych kliknięć na stronie). 4. napisz formularz który będzie zliczał kliknięcia guzika na stronie z wykorzystaniem zmiennych sesyjnych (będzie się wyświetlała liczba dotychczasowych kliknięć na stronie). 5. Dodaj do 2 formularza obsługę wyjątków (używając trow() ) 6. Napisz formularz logowania: podajemy login hasło jak są zgodne z wartością wpisaną w skrypcie to przenosi nas na stronę gdzie będzie psiało jesteś zalogowany jako.. login ma być zapisany w zmiennej sesyjnej jak na tą stronę się wejdzie bez podania loginu i hasła to ma pisać NIEZALOGOWANY. *** dodaj do punktu 6 żeby po czasie 5 minut nas wylogowywało (wykorzystaj zamiast cookies sesje).