Wrocław 2006 INTERNETOWE BAZY DANYCH materiały pomocnicze - wykład VII Paweł Skrobanek C-3, pok. 323 e-mail: pawel.skrobanek@pwr.wroc.pl
INTERNETOWE BAZY DANYCH PLAN NA DZIŚ : Cookies Sesje Inne możliwości Przykład
1. Cookies COOKIES (ciasteczka) - porcja informacji przechowywana w komputerze klienta lub pamięci przeglądarki, albo jako plik na dysku
1. Cookies Zastosowania: liczniki, sondy, sklepy internetowe, do uwierzytelniania (np. śledzenie sesji, uprawnienia do przeglądania stron WWW, przekierowania adresów)
1. Cookies Ustawienie setcookie( ) Przechowywanie określony czas, do zamknięcia przeglądarki lub wyczyszczenia przez użytkownika ), udostępnianie wg określonych reguł Usunięcie setcookie(nazwa) lub przez przeglądarkę po wygaśnięciu ważności
1. Cookies Ustawienia cookies w przeglądarce FIREFOX
1. Cookies Przykład informacji dla klienta na temat bezpieczeństwa
1. Cookies Funkcja setcookie(): int setcookie (string nazwa [, string wartość [, int wygasa [, string sciezka [, string domena [, int bezpieczne]]]]])
1. Cookies Funkcja setcookie() - argumenty: value nazwa cookie (analogicznie do nazwy zmiennej), expire określa czas ważności cookie (w sekundach), domyślna wartość 0 oznacza ważność do zamknięcia przeglądarki, path można podać katalog główny serwisu WWW / lub podkatalog w którym cookie obowiązuje
1. Cookies Funkcja setcookie() - argumenty: domain domyślnie nie jest sprawdzana, wartość domena wywoływana przez klienta dla której dostępne jest cookie secure domyślnie 0 (nie wymagamy bezpiecznego połączenia); jeśli ustawimy 1 cookie będzie wysyłane tylko przez zabezpieczone gniazdo (https)
1. Cookies
1. Cookies Funkcja setcookie() - przykład: ustawianie: setcookie ( powitanie, Witaj wodzu!, time() + (60*60*24), /, www.moja.edu.pl, 1 ); odczytywanie: $tu_wpisz_powitanie=$_cookie[ powitanie ];
1. Cookies Uwagi: jeśli chcemy podać późniejsze argumenty, to w poprzednich podajemy wartości domyślne, przeglądarki interpretują w różnej kolejności ustawienie tej samej cookie (kolejno lub w odwrotnej kolejności)! jeśli ustawiamy cookie w skrypcie, to zostanie ono wykonane dopiero po wysłaniu całej strony (na tej stronie posługujemy się zmienną, a ciasteczkiem dopiero później)
1. Cookies Uwagi: ponieważ cookie są zapisane po stronie klienta, to może się do nich dobrać! w ważnych zastosowaniach zastosujemy np. szyfrowanie, cookie musi zostać ustawione zanim wyślemy zawartość strony, dlaczego będzie błąd: <?php setcookie ( cos, tez_cos );?> <HTML> </HTML>
1. Cookies Uwagi: użytkownik zawsze może zablokować obsługę ciasteczek, dwie możliwości: nie obsługujemy takich, implementujemy inną metodę
2. Sesje SESJA (session) nieformalnie, czas od rozpoczęcia pierwszej operacji do zakończenia ostatniej
2. Sesje Zastosowania: zastosowanie w związku z uwierzytelnianiem, wyświetlanie reklam (np. mamy zestaw reklam, ale w każdej sesji dana reklama ma się wyświetlić tylko raz), zbieranie danych operacyjnych (np. śledzenie sposobu korzystania z witryny, jak przechodzą między stronami), e-commerce zbieranie informacji o działaniach, np. wózki z zakupami),
2. Sesje Zastosowania: gry multiuser
2. Sesje Rozpoczęcie sesji Zgłaszanie zmiennych sesji Korzystanie ze zmiennych Podstawowe etapy prostej sesji Suwanie zmiennych i niszczenie sesji
2. Sesje Rozpoczynanie sesji: funkcja bezargumentowa session_start() - jeśli zostanie ustalony identyfikator (został przekazany), to funkcja odczytuje zmienne sesji i udostępnia dla strony, - w przeciwnym razie wygenerowany zostanie nowy identyfikator sesji (rozpoczęta zostanie nowa sesja). ustawienie sessio.auto_start na 1 w pliku php.ini taki sam rezultat miałoby wywołanie we wszystkich skryptach session_start ();
2. Sesje Rozpoczynanie sesji: zgłaszanie zmiennej/zmiennych sesji: session_register( nazwa_zmiennej ); - funkcja ta wywołuje session_start();
2. Sesje Przykłady: użycie zmiennej archiw_top_secret: <?php session_start(); $zmienna_do _zapisania=113; $_SESSION[ archiw_top_secret ]=$zmienna_do_ zapisania;?>
2. Sesje Przykłady: odczytanie tej danej: <?php session_start(); $pobierz_kod_do_sejfu=$_session[ archiw_top _secret ];?>
2. Sesje
2. Sesje Przykłady: kserokopia lub http://pl.php.net/manual/pl/ref.session.php
2. Sesje Uwagi: jeśli zapomnimy wywaołać session_start (), to zmienna sesji będzie traktowana jak niezainicjowana zmienna, wywołanie session_start() nadpisuje wszystkie zmienne o takich samych nazwach jak zmienne sesji, prezentowane przykłady nie obejmują obsługi sesji w wersji PHP poniżej 4.1
3. Inne możliwości Osługiwanie sesji: jeśli cookie są niedostępne, to można skonfigurować PHP, by obsługiwał przekazywanie zmiennych sesji jako alternatywę: --enable-trans-sid, ręczne przekazywanie identyfikatora sesji (wszystkie lokalne łącza), np.: <A HREF= druga_strona?<?php echo(sid);? > > Przejdź dalej </A>
3. Inne możliwości Przekierowanie: przykład <?php if ((IsSet($_GET[ typ ]) && ($_GET[ typ ] == tajny_homo )) { header( Location: http://cos.my.gov/tajne.php ; exit; }?> <HTML>.. </HTML>
4. Zadanie K1: Odtworzyć z kopii bazę danych (plik szkoly.sql), mysql u nazwa p < szkoly.sql, błąd wynika z nieistnienia bazy danych, należy dopisać dwie linie w pliku szkoly.sql: CEATE DATABASE szkoly; USE szkoly;
4. Zadanie K2: Skopiować katalog ze stronami WWW o nazwie szkoly do katalogu głównego serwera WWW (standardowo: /var/www/html) K3: Wprowadzić zmiany: założyć tabelę pracownicy (ID_prac :tekst10 (klucz); login :tekst15; hasło :tekst15); dopisujemy siebie jako pracownika, modyfikujemy plik login_popraw.php K4: testujemy działanie