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

Podobne dokumenty
I.Wojnicki, Tech.Inter.

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

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

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

Protokół HTTP. 1. Protokół HTTP, usługi www, model request-response (żądanie-odpowiedź), przekazywanie argumentów, AJAX.

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

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

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

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

Programowanie w Internecie

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

Plan wykładu. 1. Protokół FTP. 2. Protokół HTTP, usługi www, model request-response (żądanie-odpowiedź), przekazywanie argumentów, AJAX.

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

Systemy internetowe Wykład 3 PHP

Internetowe bazy danych

Wybrane działy Informatyki Stosowanej

Aplikacje internetowe - laboratorium

Programowanie współbieżne Wykład 10 Synchronizacja dostępu do współdzielonych zasobów. Iwona Kochańska

Kurs WWW. Paweł Rajba

Bazy Danych i Usługi Sieciowe

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

PHP. i komunikacja klient-serwer PAWEŁ RAJBA

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

Wątek - definicja. Wykorzystanie kilku rdzeni procesora jednocześnie Zrównoleglenie obliczeń Jednoczesna obsługa ekranu i procesu obliczeniowego

Programowanie w Sieci Internet Blok 2 - PHP. Kraków, 09 listopada 2012 mgr Piotr Rytko Wydział Matematyki i Informatyki

Ćwiczenie: JavaScript Cookies (3x45 minut)

Należy ściągnąć oprogramowanie Apache na platformę

The OWASP Foundation Session Management. Sławomir Rozbicki.

Aplikacje WWW - laboratorium

Zaawansowane aplikacje internetowe

Sprawozdanie nr 4. Ewa Wojtanowska

Bezpieczeństwo systemów komputerowych

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

Aplikacje WWW - laboratorium

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

Aplikacje internetowe i rozproszone - laboratorium

Zarządzanie sesją w aplikacjach Internetowych. Kraków, Paweł Goleń

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

Systemy internetowe. Wykład 5 Architektura WWW. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

Dokumentacja fillup - MS SQL

Bezpieczeństwo frameworków WEBowych Java na przykładzie ataku CSRF

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

POLITYKA PRYWATNOŚCI ORAZ POLITYKA PLIKÓW COOKIES W Sowa finanse

Drobne błędy w portalach WWW

Zmienne i stałe w PHP

Sprawozdanie Laboratorium 4

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

PHP: bloki kodu, tablice, obiekty i formularze

Wykład 4. Synchronizacja procesów (i wątków) cześć I. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB

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

FUNKCJONALNOŚ C PORTAL B2B KAMELEON.ŚQL

Wielozadaniowość w systemie Microsoft Windows

PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych:

Gatesms.eu Mobilne Rozwiązania dla biznesu

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

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

Ataki na aplikacje WWW. Łomem, czy wytrychem? Jak dobrać się do aplikacji WWW

Tworzenie aplikacji rozproszonej w Sun RPC

Programowanie współbieżne Wykład 9 Synchronizacja dostępu do współdzielonych zasobów. Iwona Kochańska

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

Technologie sieciowe Sprawozdanie z labolatorium. Lista 5

SMS Kod Automatyczny


Specyfikacja instalacji usługi SMS Premium w Przelewy24.pl

NoSQL Not Only SQL: CouchDB. I.Wojnicki, NoSQL. Apache CouchDB has started. Time to relax. Przetwarzanie dokumentów i widoków.

Cookie Policy. 1. Informacje ogólne.

Zarządzanie systemami informatycznymi. Bezpieczeństwo przesyłu danych

Dlaczego PHP? - zalety

Czym są pliki cookies?

Wprowadzenie do Internetu Zajęcia 5

Przeplot. Synchronizacja procesów. Cel i metody synchronizacji procesów. Wątki współbieżne

O autorze Wprowadzenie...13

Enterprise JavaBeans (EJB)

CGI i serwlety. Plan wykładu. Wykład prowadzi Mikołaj Morzy. Przykład: serwlety vs. szablony. Implementacja logiki prezentacji

Gerard Frankowski, Zespół Bezpieczeństwa PCSS. Nowoczesne technologie bliżej nas Poznań,

Zaawansowane aplikacje internetowe - laboratorium

Sieci komputerowe. Wykład 7: Warstwa zastosowań: DNS, FTP, HTTP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Smarty PHP. Leksykon kieszonkowy

Mechanizmy pracy równoległej. Jarosław Kuchta

Wykład 4. Metody uwierzytelniania - Bezpieczeństwo (3) wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Materiał. Typy zmiennych Instrukcje warunkowe Pętle Tablice statyczne Funkcje Wskaźniki Referencje Tablice dynamiczne Typ string Przeładowania funkcji

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

Oczywiście plik musi mieć rozszerzenie *.php

Polityka prywatności serwisu

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

Dodawanie operacji dodatkowych w WAPRO Mag.

EGZAMIN POTWIERDZAJĄCY KWALIFIKACJE W ZAWODZIE Rok 2019 CZĘŚĆ PRAKTYCZNA

POLITYKA PRYWATNOŚCI

Stworzenie klasy nie jest równoznaczne z wykorzystaniem wielowątkowości. Uzyskuje się ją dopiero poprzez inicjalizację wątku.

NoSQL Not Only SQL, CouchDB. I.Wojnicki, NoSQL. Apache CouchDB has started. Time to relax. Igor Wojnicki

Sprawozdanie Sieci komputerowe i bazy danych Laboratorium nr 4

Polityka plików cookies

Internetowe bazy danych

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

Instrukcja dla instalatora systemu SMDP Enterprise/Professional

Okna, ramki i ciasteczka

POLITYKA PRYWATNOŚCI SERWIS:

AKADEMIA GÓRNICZO-HUTNICZA Wydział Elektrotechniki, Automatyki, Elektroniki i Informatyki

Transkrypt:

Igor Wojnicki (AGH, KIS) 7 kwietnia 2018 1 / 28 Hypertext Preprocessor Igor Wojnicki Ktedra Informatyki Stosowanej Akademia Górniczo-Hutnicza w Krakowie 7 kwietnia 2018

Igor Wojnicki (AGH, KIS) 7 kwietnia 2018 2 / 28 Spis Treści I 1 Ciastka i sesje

Igor Wojnicki (AGH, KIS) 7 kwietnia 2018 3 / 28 Spis Treści Ciastka i sesje 1 Ciastka i sesje

Igor Wojnicki (AGH, KIS) 7 kwietnia 2018 4 / 28 Ciastka i sesje Stan WWW architektura klient-serwer. Bezstanowa. Identyfikacja klienta stanowa: ciastka (cookies), sesja.

Igor Wojnicki (AGH, KIS) 7 kwietnia 2018 5 / 28 Ciastka i sesje Cookies Permanentne przechowywanie informacji po stronie przegladarki. Przesyłane w nagłówku HTTP.

Igor Wojnicki (AGH, KIS) 7 kwietnia 2018 6 / 28 Obsługa cookies Ciastka i sesje $_COOKIE['nazwa_ciastka'] setcookie() można użyć jedynie zanim skrypt wygeneruje wyjście

setcookie() Ciastka i sesje setcookie(string $name [, string $value [, int $expire = 0 [, string $path [, string $domain [, bool $secure = false [, bool $httponly = false ]]]]]] ) Po wywołaniu, wartość przesyłana jest do przegladarki. Przy następnym odczycie jest dostępna w $_COOKIE albo $_REQUEST. name nazwa value wartość (opcjonalnie, domyślnie pusty łańcuch znaków) expire data przydatności do spożycia: time() + liczba_sekund, domyślnie 0 koniec sesji przegladarki path ścieżka w jakiej będzie dostępna (/ w całej domenie, albo dla konkretnej ścieżki na serwerze) Unieważnienie: ustawienie odpowiedniej wartości expire Igor Wojnicki (AGH, KIS) 7 kwietnia 2018 7 / 28

Igor Wojnicki (AGH, KIS) 7 kwietnia 2018 8 / 28 Cookies, dobre rady Ciastka i sesje setcookie() zwraca FALSE jeżeli przesłanie danych w nagłówku HTTP się niepowiodło (wygenerowane wyjście, przed wywołaniem funkcji). htmlspecialchars() oraz htmlspecialchars_decode() do konwersji znaków specjalnych m.in. <, >, apostrof, cudzysłów. jeżeli używana jest lokalizacja np. ścieżka: setcookie( ciasto, wartosc,time()+500, / ) i chcemy zmodyfikować, należy użyć tej samej lokalizaji: setcookie( ciasto, wartosc,time()-3000, / )

Igor Wojnicki (AGH, KIS) 7 kwietnia 2018 9 / 28 Przykład z ciastkami Ciastka i sesje <?php if (isset($_cookie[uzytkownik]) ) { echo 'Witaj:'.$_COOKIE[uzytkownik]; } else { if (isset($_get['imie'])) { setcookie('uzytkownik',$_get['imie']); echo 'Jestes 1-szy raz '.$_GET['imie']; } else { echo 'Tu powinien byc formularz...'; } }?>

Igor Wojnicki (AGH, KIS) 7 kwietnia 2018 10 / 28 Ciastka i sesje Sesja Implementacja stanu aplikacji. Przechowywanie danych pomiędzy wywołaniami skryptów w $_SESSION.

Igor Wojnicki (AGH, KIS) 7 kwietnia 2018 11 / 28 Ciastka i sesje session_start() Tworzy sesje, lub przywraca rozpoczęta. Zwraca FALSE jeżeli operacja się nie udała. Dane zapisane/odczytane z $_SESSION$ będa dostępne dla skryptów. Identyfikator sesji przekazywany przez ciastko (albo GET/POST niezalecane).

Igor Wojnicki (AGH, KIS) 7 kwietnia 2018 12 / 28 Ciastka i sesje Unieważnienie danych w sesji unset($_session['moje_dane']) Dane przechowywane w sesji sa zapisywane po stronie serwera. Fizyczny zapis danych następuje przy zakończeniu działania skrytpu (mozna wymusić wcześniej). Tylko jeden proces może zapisywać/odczytywać dane konkretnej sesji na raz.

Igor Wojnicki (AGH, KIS) 7 kwietnia 2018 13 / 28 Przykład z sesja Ciastka i sesje <?php session_start(); if ($_SESSION['ile']>=10 isset($_get['wyczysc'])) unset($_session['ile']); if (isset($_session['ile'])) $_SESSION['ile']++; else $_SESSION['ile']=0; echo 'Uruchomiłeś mnie '.$_SESSION['ile'].' razy';?>

Igor Wojnicki (AGH, KIS) 7 kwietnia 2018 14 / 28 Spis Treści 1 Ciastka i sesje

Igor Wojnicki (AGH, KIS) 7 kwietnia 2018 15 / 28 Wyścig Problem: Wyścig dwa procesy (lub więcej) żadaj a dostępu do tego samego dzielonego zasobu (pamięć dzielona, plik, obiekt w bazie danych). Tylko jeden może uzyskać dostęp kto pierwszy ten lepszy. Przykłady: dwa procesy zapisuja ten sam plik, atomiczność przy złożonych operacjach odcztytu/zapisu (bazy danych).

Igor Wojnicki (AGH, KIS) 7 kwietnia 2018 16 / 28 Wzajemne wykluczenie Wzajemne wykluczenie Mutual Exclusion jeżeli jeden proces używa dzielonego zasobu, żaden inny proces nie może go używać. Sekcja krytyczna Critical Region/Section: część kodu programu realizujaca dostęp do dzielonego zasobu.

Igor Wojnicki (AGH, KIS) 7 kwietnia 2018 17 / 28 Problemy Zagłodzenie Zakleszczenie.

Igor Wojnicki (AGH, KIS) 7 kwietnia 2018 18 / 28 Warunki dla wzajemnego wykluczenia 1 Tylko jeden proces może realizować sekcje krytyczna. 2 Szybkość sprzętu nie może być brana pod uwagę. 3 Proces poza sekcja krytyczna nie może zablokować innego procesu. 4 Proces nie może w nieskończoność być blokowany przed wejściem do sekcji krytycznej.

Igor Wojnicki (AGH, KIS) 7 kwietnia 2018 19 / 28 Sekcja krytyczna, przykład

Igor Wojnicki (AGH, KIS) 7 kwietnia 2018 20 / 28 Jak zaimplementować wzajemne wykluczenie w? mutex (semafor binarny) semafor (liczacy) semafor na pliku let the others do np. transakcje w bazach danych

Igor Wojnicki (AGH, KIS) 7 kwietnia 2018 21 / 28 Mutex Semafor binarny. Stany: 1 odblokowany, 0 zablokowany. Operacje (atomiczne!): w dół if (stan==1) {stan=0; kontynuuj;} else czekaj w górę stan=1; obudź czekającego

Igor Wojnicki (AGH, KIS) 7 kwietnia 2018 22 / 28 Semafor Stan: licznik. Operacje (atomiczne!): w dół if (stan>0) {stan--; kontynuuj;} else czekaj w górę stan++; obudź czekającego

Igor Wojnicki (AGH, KIS) 7 kwietnia 2018 23 / 28 Przykład: semafory semafory, sekcja krytyczna define(klucz,123456); $sem=sem_get(klucz); if ($sem!= FALSE) { echo 'Wejscie do sekcji krytycznej<br>'; $start=time(); sem_acquire($sem); echo 'Jestem w sekcji krytycznej<br>'; sleep(5); sem_release($sem); echo 'Wyjscie z sekcji krytycznej<br>'; echo 'Czas wykoania: '.(time()-$start).'<br>'; }

Igor Wojnicki (AGH, KIS) 7 kwietnia 2018 24 / 28 File Locking Kontrola dostepu do plików; semafor: flock() echo 'Wejscie do sekcji krytycznej<br>'; $start=time(); $fp = fopen('semafor', 'r+'); if (flock($fp, LOCK_EX)) { echo 'Jestem w sekcji krytycznej<br>'; sleep(5); flock($fp, LOCK_UN); echo 'Wyjscie z sekcji krytycznej<br>'; echo 'Czas wykoania: '.(time()-$start).'<br>'; } else { echo 'Problemy z blokada...<br>';} fclose($fp);

Igor Wojnicki (AGH, KIS) 7 kwietnia 2018 25 / 28 Zakleszczenie, z życia za W.Stallings, Operating Systems

Igor Wojnicki (AGH, KIS) 7 kwietnia 2018 26 / 28 Zakleszczenie, z informatyki za W.Stallings, Operating Systems

Zakleszczenie Zbiór procesów jest zakleszczony jeżeli każdy z nich czeka na zdarzenie, które tylko inny proces ze zbioru może spowodować. Zwykle zdarzeniem jest zwolnienie zasobu. Żaden z procesów nie może: kontynuować wykonania, zwolnić zasobu, zostać odblokowanym. Igor Wojnicki (AGH, KIS) 7 kwietnia 2018 27 / 28

Igor Wojnicki (AGH, KIS) 7 kwietnia 2018 28 / 28 Zakleszczenie, rozwiazanie Dostęp do najwyżej jednego zasobu na raz. Przydział zasobów w określonej (takiej samej) kolejności dla wszystkich procesów.