Cache przeglądarki internetowej

Wielkość: px
Rozpocząć pokaz od strony:

Download "Cache przeglądarki internetowej"

Transkrypt

1 CakePHP Buforowanie stron Cache jest mechanizmem umożliwiającym zredukowanie opóźnienia w dostarczaniu danych do użytkownika oraz zmniejszenia obciążenia serwera. W aplikacjach internetowych często zachodzi konieczność wyświetlania tych samych informacji wielokrotnie. Np. sklep internetowy wyświetla listę dostępnych produktów w odpowiedzi. na każde żądanie potencjalnych klientów. Dowiesz się... Poznasz różne techniki buforowania stron WWW oraz możliwość ich praktycznego zastosowania w CakePHP. Poziom trudności Powinieneś wiedzieć... Wymagana jest znajomość framework Cake- PHP. Przydatna będzie znajomość języka SQL i umiejętność administrowania bazą danych MySQL. Wielokrotne generowanie stron, których zawartość nie zmienia się, powoduje zbędne obciążenie serwera WWW i bazy danych. Każde żądanie od użytkownika musi zostać przetworzone, a wynik skierowany do przeglądarki internetowej, jednak za każdym razem serwer pobiera te same dane. Nie stanowi to problemu, gdy strony przegląda kilku użytkowników, ale kłopoty mogą się pojawić wraz ze wzrostem popularności serwisu. Im więcej użytkowników, tym bardziej serwer będzie obciążony wykonywaniem zadań, które prowadzą do wyświetlenia stron nieróżniących się od siebie wcale lub różniących się tylko w niewielkim stopniu. Naturalnym rozwiązaniem problemu spadku wydajności jest zapisywanie na boku generowanych stron i udostępnianie ich innym użytkownikom. Zamiast za każdym razem generować tą samą zawartość strony wystarczy przy pierwszym wyświetleniu zapamiętać ją i używać przy kolejnych wywołaniach. Technika ta nazywa się page caching (pol. buforowanie stron) i jest najprostszą metodą przyspieszania działania serwisu. Przy pierwszym wyświetleniu strona zostaje zapisana do pliku HTML. Każde następne odwołanie do tej samej strony powoduje, iż do przeglądarki użytkownika zostanie wysłana zawartość bezpośrednio z cache z pominięciem wszystkich etapów, dzięki którym strona została pierwotnie wygenerowana. W praktyce odbywa się to prawie tak szybko jak udostępnianie statycznych stron HTML. Cache przeglądarki internetowej Zamiast za każdym razem generować tę samą zawartość strony wystarczy przy pierwszym wyświetleniu zapamiętać ją i używać przy kolejnych wywołaniach Rysunek 1. Właściwie w każdej nowoczesnej przeglądarce internetowej znajdują się ustawienia związane z cache. Najczęściej jest to parametr określający miejsce zarezerwowane na pliki tymczasowe przeglądanych stron WWW. Zasady aktualizacji cache są proste. Przeglądarka za pomocą znaczników HTTP sprawdza, czy przechowywane dane są aktualne Listing 1. i w miarę możliwości korzysta z nich zamiast pobierać dane z Internetu. Dzięki temu powrót do poprzednio wyświetlanej strony WWW w przeglądarce (przycisk wstecz ) powoduje szybkie wyświetlenie informacji, najczęściej bez konieczności pobierania danych z sieci. Kontrola aktualności cache odbywa się za pomocą znaczników: Cache - Control, Expires, Last-Modified oraz ETag przesyłanych w nagłówku stron WWW: Expires: DATA_GMT Znacznik określa termin możliwej zmiany lub wygaśnięcia ważności dokumentu. Po upływie określonego czasu (liczonego względem GMT) dokument może ulec zmianie lub zostać usunięty. Najprostszym sposobem wymuszenia, by plik nie został umieszczony w cache, jest przypisanie daty, która minęła. Znacznik idealnie nadaje się do określania polityki tworzenia cache plików graficznych, które bardzo rzadko ulegają zmianie Listing 1. Cache-Control: DYREKTYWA Znacznik określa sposób zachowania mechanizmu buforowania plików (zarówno serwera WWW, jak i serwerów proxy) mówiącego, co powinno być buforowane i co może być przechowywane w cache. Najbardziej przydatne są poniższe dyrektywy: max-age=[sekundy] określa maksymalny czas, w którym dane są traktowane jako aktualne (liczony względem daty określonej przez znacznik Last-Modified); public wymusza buforowane (przydatne dla stron, które w normalnych warunkach nie są umieszczane w cache); Listing 1. Przykładowe żądanie i odpowiedź serwera WWW HEAD / HTTP/1.1 HOST: localhost HTTP/ OK Date: Mon, 02 Jul :24:12 GMT Server: Apache Accept-Ranges: bytes X-Powered-By: PHP/4.2.2 Set-Cookie: PHPSESSID= path=/ ac35d9b842215f4fb23ca419337af4b8; Expires: Thu, 19 Nov :52:00 GMT Cache-Control: no-store, no-cache, must-revalidate Pragma: no-cache Connection: close Content-Type: text/html Content-Language: pl 50

2 CakePHP no-cache wymusza pominięcie cache (przeglądarki i serwerów proxy) i pobieranie danych bezpośrednio z Internetu; no-store wymusza usunięcie danych z cache zaraz po przesłaniu ich do użytkownika; must-revalidate wymusza sprawdzanie stanu przedawnionych dokumentów znajdujących się w cache. Last-Modified: DATA _ GMT Znacznik określa datę ostatniej modyfikacji dokumentu Listing 1. ETag: ZNACZNIK Znacznik jest unikalnym identyfikatorem strony generowanym przez serwer WWW, który zmienia się za każdym razem, gdy przesyłane dane ulegną modyfikacji. Znaczniki możemy wysyłać do przeglądarki za pomocą funkcji header() Listing 2. Page cache Mechanizm page cache jest powiązany z adresem URL. To na jego podstawie w kontrolerze zapada decyzja, czy strona ma być wygenerowana dynamicznie, czy też ma być użyty cache. Jeżeli użytkownik już wcześniej odwoływał się do określonego adresu WWW, to został wygenerowany plik cache o ile prezentowane informacje nie uległy zmianie, to ponowne odwołanie do tego samego adresu spowoduje udostępnienie danych wcześniej wygenerowanych. Z tego faktu wynikają pewne ograniczenia. Strony zależące od parametrów przekazywanych w URL lub od informacji przechowywanych w sesji nie będą mogły skorzystać z page cache, podobnie jak strony, których zawartość jest uzależniona od czasu. Adres WWW takich witryn może być za każdym razem inny i w ten sposób ciągle byłyby tworzone kolejne pliki cache. Sposób działania page cache (buforowanie całej strony) doskonale sprawdza się w przypadku stron, których zawartość nie zmienia się często. Jest to trudne do osiągnięcia, jeżeli prezentowanych jest wiele danych z różnych źródeł. Jeżeli zajdą zmiany w dowolnym źródle danych, plik cache będzie musiał zostać ponownie wygenerowany, co przy częstych zmianach stawia pod znakiem zapytania sens używania tej technologii. W praktyce jednak strony WWW można podzielić na fragmenty, które są statyczne, oraz na takie, które zmieniają się często, i poddać buforowaniu tylko te ostatnie. Wynikowa strona jest wtedy składana z mniejszych bloków, z których część będzie znajdowała się w cache. Jest to bardzo intuicyjne w przypadku sklepu internetowego lista produktów jest fragmentem, który najrzadziej ulega zmianom, a z kolei koszyk zakupów klienta może zmieniać się dynamicznie. Wykorzystanie page cache w CakePHP zaczniemy od zapoznania się konfiguracją serwera. Domyślnie cache widoków jest zablokowane. By je aktywować, musimy zmienić na TRUE wartość stałej CACHE_CHECK w pliku /app/config/core.php. define ('CACHE_ CHECK', true); W kontrolerze powiązanym z widokiem, dla którego włączamy cache, musimy dodać CacheHelper przez umieszczenie kodu: var $helpers = array('cache'); Następnie należy określić, co chcemy umieścić w cache. Do zmiennej $cacheaction musimy przypisać tablicę zawierającą akcje, które mają być buforowane, oraz czas (w sekundach), przez który cache ma być aktualny (można używać liczb lub zapisów 1 day czy 60 seconds ) Listing 3. W praktyce zdarza się, że pewne fragmenty strony są wypełniane dynamicznymi danymi i nie mogą znaleźć się w cache ze względu na wyświetlane dane. Wystarczy wówczas, że Listing 2. Przykładowe znaczniki wysyłane do przeglądarki za pomocą funkcji header() // strona nie będzie umieszczona w cache przeglądarki // wymaga obsługi protokołu HTTP/1.1 header("cache-control: no-cache, must-revalidate"); // data z przeszłości header("expires: Mon, 26 Jul :00:00 GMT"); Lisgin 3. Definiowanie akcji, które mają zostać buforowane przez CakePHP // Możemy zdefiniować cache dla wszystkich parametrów akcji var $cacheaction = array('view/' => 86400); // lub dla każdego parametru oddzielnie. var $cacheaction = array( ); 'view/23/' => 21600, 'view/48/' => QUERY-CACHE Nowoczesne bazy danych są najczęściej wyposażone w mechanizm QUERY-CACHE powodujący zapamiętanie zapytań kierowanych do bazy oraz skojarzonych z nimi wyników. Takie samo zapytanie SQL do bazy danych spowoduje przekazanie wyników przechowanych w QUERY-CACHE bez konieczności odczytu informacji z plików bazodanowych. Cache jest czyszczony w przypadku zmian w tabelach do których zapytania się odwołują. MySQL4 posiada błąd, który powoduje czyszczenie całego QUERY-CA- CHE w przypadku zmian w dowolnej tablicy, co niekorzystnie wpływa na czas odpowiedzi serwera na te same zapytania. Rysunek 1. Przesyłanie do użytkowników stron WWW 51

3 fragment kodu, który nie powinien być buforowany, określimy za pomocą znaczników <cake:nocache> oraz </cake:nocache> Listing 4. Listing 4. Przykład wyłączenia buforowania fragmentu kodu widoku <h1> Ostatnie 10 wiadomości! </h1> <cake:nocache> <ul> <?php foreach($recentmessages as $message):?> <li>$message['title']</li> <?endforeach;?> </ul> </cake:nocache> Listing 5. Funkcja clearcache() usuwająca nieaktualne pliki cache // Usuń wszystkie strony z cache, bazując na nazwie kontrolera clearcache('controller'); // Usuń wszystkie strony z cache, bazując na nazwie kontrolera i nazwie akcji clearcache('controller_action/'); // Usuń wszystkie strony z cache, bazując na nazwie kontrolera, nazwie akcji // i parametrze // Do funkcji clearcache() można przekazywać wiele parametrów clearcache(array('controller_action_params','controller2_action_params)); Memcached System cache przechowujący dane w pamięci RAM, umożliwiający zapisywanie danych i obiektów. Wysoce wydajny i skalowalny umożliwia łączenie serwerów działających w oparciu o różne architektury systemowe. Stosowany m.in. w serwisach LiveJournal i Wikipedia. System memcached jest dostępny w repozytoriach wielu dystrybucji Linuksa (kod źródłowy można pobrać z adresu Obsługę memcached w PHP zapewnia binarne rozszerzenie, dostępne na pecl.php.net. Krótki przegląd metod API: Memcache::add dodaje element do serwera. Memcache::addServer ddodaje serwer memcached do listy wykorzystywanych serwerów. Memcache::close zamyka połączenie. Memcache::decrement zmniejsza wartość elementu. Memcache::delete usuwa element z serwera. Memcache::flush usuwa wszystkie elementy z serwera. Memcache::get zwraca element z serwera. Memcache::getExtendedStats statystyki wszystkich serwerów memcached. Memcache::getServerStatus zwraca stan serwerów memcached. Memcache::getStats statystyki serwerów. Memcache::getVersion zwraca wersję serwera memcached. Memcache::increment inkrementuje wartość elementu. Memcache::pconnect otwiera stałe połączenie. Memcache::replace zmienia wartość podanego elementu. Memcache::set zapisuje dane na serwerze. Memcache::setCompressThreshold włącza automatyczną kompresję dużych wartości. Memcache::setServerParams zmienia parametry i stan serwera. Czyszczenie cache Przy korzystaniu z cache kluczowym momentem w funkcjonowaniu serwisu jest sposób reakcji na zmiany w prezentowanych danych. Jeżeli nie będzie sprawnego mechanizmu informowania aplikacji, które pliki cache należy usunąć, to użytkownikowi zostaną zaprezentowane błędne nieaktualne dane. W najprostszym przypadku w reakcji na zmiany możemy usunąć wszystkie pliki cache. Rozwiązanie to ma jednak tę wadę, że nawet niewielka zmiana spowoduje konieczność czasochłonnego generowania cache na nowo. Zdecydowanie lepiej jest usuwać tylko te pliki cache, które prezentują dane, które uległy zmianie. CakePHP wykorzystuje fakt, że prezentowane na stronach WWW dane są powiązane z modelem danych, a cache jest związany z widokiem (który z kolei może wyświetlać dane z różnych modeli danych). Zmiana danych dowolnego modelu spowoduje więc automatyczne usunięcie cache dla całego widoku. CakePHP automatycznie usuwa cache, gdy nastąpi zmiana w stanie aplikacji. Jeżeli użytkownik spowoduje działanie, które będzie skutkowało zmianami w bazie danych (INSERT, UPDATE, DELETE), zostanie usunięte cache dla widoku powiązanego z kontrolerem odwołującym się do modeli danych, które uległy zmianie. Istnieje możliwość ręcznego sterowania cache i usuwania nieaktualnych danych za pomocą funkcji clearcache(). Jako parametr przekazujemy nazwę kontrolera, kontrolera i akcji lub kontrolera, akcji i parametrów identyfikujących plik cache Listing 5. W prosty sposób można zaimplementować dodatkowy scenariusz czyszczenia cache sprawdzający się w sytuacjach, gdy nie możemy zapobiec cyklicznemu tworzeniu się nowych plików cache, ale jednocześnie chcemy uniknąć ciągłego usuwania plików. Zamiast spowalniać działanie aplikacji ciągłym testowaniem aktualności cache możemy uruchomić dodatkowy proces działający w tle. Proces ten będzie odpowiedzialny za cykliczne czyszczenie cache co określony (konfigurowalny) przedział czasowy niezależnie od obciążenia aplikacji. Składowanie danych Najprostszym sposobem przechowywania cache są pliki umieszczone bezpośrednio w systemie operacyjnym (jest to jedyny sposób przechowywania cache obsługiwany automatycznie przez CakePHP w wersji 1.1.xx). Wygenerowana strona HTML zostanie umieszczona w publicznie dostępnym obszarze serwera (w miejscu określonym ścieżką dostępu wskazywaną przez stałą $CACHE) każde odwołanie do tej samej strony będzie wówczas przekierowywane na plik cache. Rozwiązanie takie oprócz oczywistych zalet, takich jak prostota implementacji czy dobra wydajność, ma podstawową wadę: nie jest rozwiązaniem skalowalnym. Jeżeli nasz serwis będzie się rozwijał i zajdzie konieczność uruchomienia dodatkowego serwera WWW, to staniemy przed problemem związanym z dystrybucją plików cache i ich synchronizacją. Zapytania od użytkowników mogą być kierowane do dowolnego serwera, każdy będzie więc z nich tworzył pliki cache niezależnie. Poza tym usunięcie cache z jednego serwera nie spowoduje usunięcia plików z pozostałych serwerów. Można co prawda utworzyć jeden wspólny sieciowy filesystem na potrzeby cache wszystkich serwerów, ale rozwiązanie traci wtedy swoją prostotę. Innym rozwiązaniem jest umieszczanie danych cache w bazie danych. Jest to elastyczniejsze od plików cache w systemie operacyjnym głównie kosztem dodatkowego obciążenia zasobów serwe- 52

4 CakePHP Listing 6. Struktury danych wykorzystane do przechowywania cache mysql> desc dbcache; mysql> desc dbcache; Field Type Null Key Default Extra key int(10) unsigned NO PRI NULL value text YES NULL expires_at datetime YES NULL // przykładowy model danych obsługujący buforowanie stron // w bazie danych klasa Cache class MyCache extends AppModel // jeżeli używamy PHP4, musimy zdefiniować zmienną // zawierającą nazwę klasy var $name = 'MyCache'; // korzystamy z bazy danych tabeli o nazwie cache // metoda usuwająca z bazy danych wszystkie dane, // których termin ważności minął function purge() return $this->query("delete * from cache where expires_at < NOW()"); // przykładowy kontroler wykorzystujących cache // klasa MessagesControler wyświetlająca wiadomości // internetowego forum class MessagesController extends AppController var $name = 'Messages'; var $helpers = array('html','time'); var $layout = 'default'; var $uses = array('forum','topic','comment','message', 'MyCache'); function view($id) // pobierz informacje o temacie dyskusji i powiązaną // z nim listę komentarzy jeżeli temat nie istnieje, // ponownie wyświetl listę działów var $usetable = cache ; // metoda wyszukująca wartość skojarzoną z kluczem // i zwracająca dane jako zmienną PHP function find($key) $rc = $this->query("select * from cache where key = '$key' and expires_at < NOW() limit 1"); return unserialize($rc['cache'][0]['value']); // metoda przechowująca w bazie danych klucz razem // z wartością function store($key, $value, $expires=null) // jutro if (is_null($expires)) $expires = time()+(24 * 60 * 60)); $expires = date('y-m-d H:i:s', $expires); $value = serialize($value); return $this->query("replace cache set value = '$value', $expires_at = '$expires' where key = '$key'); $topic = $this->mycache->find('topic'.$id); if (empty($topic)) $topic = $this->topic->find(array('topic.id'=> $id, 'Topic.topic_id'=>0)); if (! empty($topic)) // przechowuj przez tydzień $this->mycache->store('topic'.$id, $topic, time() + (7 * 24 * 60 * 60)); else $this->redirect('/forums/index'); exit(); // przekaż zmienną $topic do widoku $this->set('topic', $topic); function remove($id) // metoda usuwająca przechowywane dane na podstawie klucza // wyszukiwania // usuń temat dyskusji wraz ze wszystkimi wiadomościami // usuń zbędne pliki z cache function delete($key) return $this->query("delete * from cache where key = '$key'"); if ($this->topic->drop($id, true)) $this-> MyCache->delete('topic'.$id); $this->redirect('/forums/index'); exit(); 53

5 Listing 7. Wykorzystanie memcached z poziomu PHP // utworzenie puli dostępnych serwerów memcached // każdy z nich będzie wykorzystywany proporcjonalnie // do listy wag przekazanych jako prametr do metody Mamcache::addServer() $memcache = new Memcache; $memcache->addserver('memcache_host1', 11211, 50); $memcache->addserver('memcache_host2', 11211, 25); $memcache->addserver('memcache_host3', 11211, 25); $memcache = new Memcache; $memcache->connect('localhost', 11211) or die ('Nie mogę się połączyć'); if ($get_result = $memcache->get('key')) else // jeżeli obiekt jest w cache, to skorzystaj z niego echo '<b>dane z serwera</b>:<br/>'; echo $get_result->str_attr.'<br />'; echo $get_result->int_attr; // w cache nie ma żądanych danych, zapisz dane $tmp_object = new stdclass; $tmp_object->str_attr = 'test'; $tmp_object->int_attr = time(); $memcache->set('key', $tmp_object, false, 10) or die ( 'Nie udało się zapisać elementu'); echo 'Zapisane dane zostaną usunięte po 10 sekundach<br/>'; echo 'Odśwież stronę, by zobaczyć dane zapisane na serwerze memcached'; ra mechanizmami zapisu i odczytu danych (zobacz ramka QUERY-CACHE). Oczywiście istnieje możliwość skalowania takiego rozwiązania, jednak nie jest ono proste ponieważ wymaga żmudnej konfiguracji (replikacja baz danych) i nie jest standardowo obsługiwane przez CakePHP 1.1.xx. Przykładowy model danych obsługujący przechowywanie cache w bazie danych został przedstawiony w Listingu 6. Najbardziej elastycznym sposobem przechowywania danych jest mechanizm memcached przechowujący dane w pamięci RAM serwera (zobacz ramka). W miarę, jak dane będą zapełniały przydzieloną pamięć, system będzie automatycznie usuwał te, które były najrzadziej używane (można też usuwać dane za pomocą odpowiednich wywołań systemowych). Memcached został także wyposażony w mechanizmy równoważące obciążenie, gdy wykorzystywanych jest kilka serwerów, które można w prosty sposób przyłączać (lub odłączać) bez konieczności przerywania działania serwisu (obsługa memcached zostanie włączona do CakePHP począwszy od wersji 1.2.xx). Typowa sesja połączenia z memcached z poziomu PHP została przedstawiona na Listingu 7. W pierwszej kolejności następuje zdefiniowanie puli dostępnych serwerów pracujących pod kontrolą memcached. Każdy z nich będzie wykorzystywany proporcjonalnie do wagi określonej podczas inicjalizacji połączenia i w razie awarii zastąpiony przez kolejny serwer z listy. Każdy dostęp do danych poprzedzony jest testem, czy informacje są dostępne w cache. Tylko w przypadku negatywnym nastąpi konieczność wykonania czasochłonnych obliczeń, po których wynik zostanie zapisany w cache (kolejne zapytania będą więc korzystały z bufora). Memcached sam zatroszczy się o usunięcie zbędnych (przestarzałych) danych z pamięci w naszym przykładzie po 10 sekundach. Memcached ma jeszcze jedną zaletę można go użyć jako mechanizm przechowujący dane nie tylko na potrzeby buforowania całych stron (page cache). Możemy w cache umieszczać dowolne dane (wyniki obliczeń, dynamicznie zmieniające się relacje między danymi) i na ich podstawie generować strony WWW. Podobnie jak w przypadku page cache problemem jest określenie, czy strony na których były prezentowane dane, które uległy modyfikacji, znajdują się w cache. Memcached umożliwia przechowywanie wyników obliczeń, więc nie możemy polegać na prostej zależności mówiącej, że w przypadku zmian w modelu danych należy usunąć cache związany z widokiem prezentującym dane.zamiast tego można posłużyć się sztuczką polegającą na powiązaniu przechowywanych danych przechowywanych w cache ze znacznikiem sygnalizującym zmiany. Wystarczy, że utworzymy model danych, który będzie dostarczał informacje o stanie aplikacji, np. unikalny numer, niezmienny tak długo, jak długo nie nastąpiły zmiany w bazie danych lub innych obliczeniach. Jeżeli tym numerem będziemy posługiwali się przy obsłudze cache, to jego zmiana wymusi ponowne przeliczenie zmienionych danych. Jeżeli przestrzeń przeznaczona na bufor będzie się zmniejszać, memcached automatycznie usunie dane, które przez określony czas nie były aktywne. Rozwiązanie takie sprawdzi się przede wszystkim przy skomplikowanych stronach WWW opartych o przechowywane w cache dane pochodzące z czasochłonnych obliczeń. Koszt zaangażowania zasobów serwera w wykrycie zmian w stanie aplikacji będzie wówczas zrównoważony przez oszczędności wynikające z braku potrzeby wykonywania czasochłonnej generacji strony. Podsumowanie Mechanizm page cache w CakePHP w połączeniu z umiejętnym wykorzystaniem cache przeglądarki internetowej może zredukować opóźnienia w dostarczaniu danych do użytkownika oraz zmniejszyć obciążenie serwera WWW i bazy danych. Warto zwrócić szczególną uwagę na technologię memcached, która zapewnia szybki dostęp do danych zawartych w cache, jest elastyczna i skalowalna, dzięki czemu może rosnąć razem z naszym serwisem. PIOTR GAPIŃSKI Autor w wolnych chwilach zajmuje się programowaniem w różnych językach (głównie Rebol, Ruby, PHP i AmigaE). Kontakt z autorem: narg@polbox.com 54

Sprawozdanie Sieci komputerowe i bazy danych Laboratorium nr 4

Sprawozdanie Sieci komputerowe i bazy danych Laboratorium nr 4 03.04.2017r AGH, WIMIR, Inżynieria Mechatroniczna Dawid Furdzik Nr albumu: 279671 Sprawozdanie Sieci komputerowe i bazy danych Laboratorium nr 4 Po wywołaniu polecenia odpowiedź serwera wygląda następująco:

Bardziej szczegółowo

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

Pawel@Kasprowski.pl Języki skryptowe - PHP. PHP i bazy danych. Paweł Kasprowski. pawel@kasprowski.pl. vl07 PHP i bazy danych Paweł Kasprowski pawel@kasprowski.pl Użycie baz danych Bazy danych używane są w 90% aplikacji PHP Najczęściej jest to MySQL Funkcje dotyczące baz danych używają języka SQL Przydaje się

Bardziej szczegółowo

Wprowadzenie do Doctrine ORM

Wprowadzenie do Doctrine ORM Wprowadzenie do Doctrine ORM Przygotowanie środowiska Do wykonania ćwiczenia konieczne będzie zainstalowanie narzędzia Composer i odpowiednie skonfigurowanie Netbeans (Tools->Options->Framework & Tools->Composer,

Bardziej szczegółowo

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

Wykład 5: PHP: praca z bazą danych MySQL Wykład 5: PHP: praca z bazą danych MySQL Architektura WWW Podstawowa: dwuwarstwowa - klient (przeglądarka) i serwer WWW Rozszerzona: trzywarstwowa - klient (przeglądarka), serwer WWW, serwer bazy danych

Bardziej szczegółowo

Podstawy technologii WWW

Podstawy technologii WWW Podstawy technologii WWW Ćwiczenie 11 PHP, MySQL: więcej, więcej!, więcej!!. tabel i funkcjonalności. Na dzisiejszych zajęciach zdefiniujemy w naszej bazie kilka tabel powiązanych kluczem obcym i zobaczymy,

Bardziej szczegółowo

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

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar) Tworzenie witryn internetowych PHP/Java (mgr inż. Marek Downar) Rodzaje zawartości Zawartość statyczna Treść statyczna (np. nagłówek, stopka) Layout, pliki multimedialne, obrazki, elementy typograficzne,

Bardziej szczegółowo

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 Sesje i ciasteczka Kontrola sesji w PHP HTTP jest protokołem bezstanowym (ang. stateless) nie utrzymuje stanu między dwoma transakcjami. Kontrola sesji służy do śledzenia użytkownika podczas jednej sesji

Bardziej szczegółowo

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

Zakres tematyczny dotyczący kursu PHP i MySQL - Podstawy pracy z dynamicznymi stronami internetowymi Zakres tematyczny dotyczący kursu PHP i MySQL - Podstawy pracy z dynamicznymi stronami internetowymi 1 Rozdział 1 Wprowadzenie do PHP i MySQL Opis: W tym rozdziale kursanci poznają szczegółową charakterystykę

Bardziej szczegółowo

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

Sesje, ciasteczka, wyjątki. Ciasteczka w PHP. Zastosowanie cookies. Sprawdzanie obecności ciasteczka 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,

Bardziej szczegółowo

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

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody Obiektowy PHP Czym jest obiekt? W programowaniu obiektem można nazwać każdy abstrakcyjny byt, który programista utworzy w pamięci komputera. Jeszcze bardziej upraszczając to zagadnienie, można powiedzieć,

Bardziej szczegółowo

Internetowe bazy danych

Internetowe bazy danych Wyższa Szkoła Technologii Teleinformatycznych w Świdnicy Internetowe bazy danych wykład 6 dr inż. Jacek Mazurkiewicz e-mail: Jacek.Mazurkiewicz@pwr.wroc.pl Kontrola dostępu

Bardziej szczegółowo

Podstawy technologii WWW

Podstawy technologii WWW Podstawy technologii WWW Ćwiczenie 8 PHP, czyli poczatki nowej, dynamicznej znajomosci Na dzisiejszych zajęciach rozpoczniemy programowanie po stronie serwera w języku PHP. Po otrzymaniu żądania serwer

Bardziej szczegółowo

Kurier DPD dla Subiekt GT

Kurier DPD dla Subiekt GT Dane aktualne na dzień: 20-01-2018 12:11 Link do produktu: http://www.strefalicencji.pl/kurier-dpd-dla-subiekt-gt-p-123.html Kurier DPD dla Subiekt GT Cena Dostępność 199,00 zł Dostępny Numer katalogowy

Bardziej szczegółowo

Administracja i programowanie pod Microsoft SQL Server 2000

Administracja i programowanie pod Microsoft SQL Server 2000 Administracja i programowanie pod Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 9 Optymalizacja zapytań Pobieranie planu wykonania Indeksy i wydajność - 1 - Zadania optymalizatora

Bardziej szczegółowo

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

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych Języki programowania wysokiego poziomu PHP cz.4. Bazy danych PHP i bazy danych PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych: MySQL moduł mysql albo jego nowsza wersja mysqli (moduł

Bardziej szczegółowo

Technologie internetowe

Technologie internetowe Protokół HTTP Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Spis treści Protokół HTTP Adresy zasobów Jak korzystać z telnet? Metody protokołu HTTP Kody odpowiedzi Pola nagłówka HTTP - 2 - Adresy

Bardziej szczegółowo

Baza danych sql. 1. Wprowadzenie

Baza danych sql. 1. Wprowadzenie Baza danych sql 1. Wprowadzenie Do tej pory operowaliście na listach. W tej instrukcji pokazane zostanie jak stworzyć bazę danych. W zadaniu skorzystamy z edytora graficznego struktury bazy danych, który

Bardziej szczegółowo

Aplikacje internetowe - laboratorium

Aplikacje internetowe - laboratorium Aplikacje internetowe - laboratorium PHP Celem ćwiczenia jest przygotowanie prostej aplikacji internetowej opartej o język PHP. Aplikacja ilustruje takie mechanizmy jak: obsługa formularzy oraz obsługa

Bardziej szczegółowo

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych PAŃSTWOWA WYŻSZA SZKOŁA ZAWODOWA W ELBLĄGU INSTYTUT INFORMATYKI STOSOWANEJ Sprawozdanie z Seminarium Dyplomowego Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Bardziej szczegółowo

Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości

Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości część 2 Zaprojektowaliśmy stronę dodaj_dzial.aspx proszę jednak spróbować dodać nowy dział nie podając jego nazwy

Bardziej szczegółowo

Instrukcja obsługi programu

Instrukcja obsługi programu Instrukcja obsługi programu directintegrator ST5 wersja dla WF-Mag (SOTE 5) Spis treści 1. Wstęp...3 2. Instalacja...3 2.1. Przebieg Instalacji...3 2.1.1. Generowanie klucza aplikacji...8 2.1.2. Zakładka

Bardziej szczegółowo

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

INTERNETOWE BAZY DANYCH materiały pomocnicze - wykład VII 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

Bardziej szczegółowo

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

PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych: PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych: MySQL moduł mysql albo jego nowsza wersja mysqli (moduł mysqli ma dwa interfejsy: proceduralny i obiektowy) PostgreSQL Oracle MS

Bardziej szczegółowo

E-commerce. Genialnie proste tworzenie serwisów w PHP i MySQL.

E-commerce. Genialnie proste tworzenie serwisów w PHP i MySQL. E-commerce. Genialnie proste tworzenie serwisów w PHP i MySQL. Autor: Larry Ullman Poznaj zasady wirtualnego handlu i zarabiaj prawdziwe pieniądze Jak stworzyć doskonałą witrynę sklepu internetowego? Jak

Bardziej szczegółowo

DECLARE VARIABLE zmienna1 typ danych; BEGIN

DECLARE VARIABLE zmienna1 typ danych; BEGIN Procedury zapamiętane w Interbase - samodzielne programy napisane w specjalnym języku (właściwym dla serwera baz danych Interbase), który umożliwia tworzenie zapytań, pętli, instrukcji warunkowych itp.;

Bardziej szczegółowo

PHP: bazy danych, SQL, AJAX i JSON

PHP: bazy danych, SQL, AJAX i JSON 1 PHP: bazy danych, SQL, AJAX i JSON SYSTEMY SIECIOWE Michał Simiński 2 Bazy danych Co to jest MySQL? Jak się połączyć z bazą danych MySQL? Podstawowe operacje na bazie danych Kilka dodatkowych operacji

Bardziej szczegółowo

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

ZPKSoft WDoradca. 1. Wstęp 2. Architektura 3. Instalacja 4. Konfiguracja 5. Jak to działa 6. Licencja ZPKSoft WDoradca 1. Wstęp 2. Architektura 3. Instalacja 4. Konfiguracja 5. Jak to działa 6. Licencja 1. Wstęp ZPKSoft WDoradca jest technologią dostępu przeglądarkowego do zasobów systemu ZPKSoft Doradca.

Bardziej szczegółowo

Projektowanie aplikacji w modelu MVC opartej o framework CodeIgniter

Projektowanie aplikacji w modelu MVC opartej o framework CodeIgniter Projektowanie aplikacji w modelu MVC opartej o framework CodeIgniter Konfiguracja i przygotowanie przykładowej aplikacji opartej o model Model-View- Controller Konfiguracja frameworka Zainstaluj na serwerze

Bardziej szczegółowo

Podstawy technologii WWW

Podstawy technologii WWW Podstawy technologii WWW Ćwiczenie 14 AJAX, czyli jak odświeżyć bez odświeżania, część trzecia Na dzisiejszych zajęciach będziemy kontynuować realizację serwisu do wymiany wiadomości z wykorzystaniem technologii

Bardziej szczegółowo

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie Część X C++ Typ znakowy służy do reprezentacji pojedynczych znaków ASCII, czyli liter, cyfr, znaków przestankowych i innych specjalnych znaków widocznych na naszej klawiaturze (oraz wielu innych, których

Bardziej szczegółowo

W3 Total Cache. Skuteczne przyśpieszanie WordPressa. Bartosz Romanowski

W3 Total Cache. Skuteczne przyśpieszanie WordPressa. Bartosz Romanowski W3 Total Cache Skuteczne przyśpieszanie WordPressa Bartosz Romanowski http://wpzen.pl WordCamp Wrocław, 28-29 września 2013 Co robi W3 Total Cache? cache całych stron (Page Cache) cache obiektów (Object

Bardziej szczegółowo

IIIIIIIIIIIIIIIMMIMMIII

IIIIIIIIIIIIIIIMMIMMIII IIIIIIIIIIIIIIIMMIMMIII O programie Program Itelix itender Manager przeznaczony jest do zarządzania zapytaniami ofertowymi przesyłanymi za pomocą poczty elektronicznej przez firmy korzystające z systemu

Bardziej szczegółowo

Wdrożenie modułu płatności eservice. dla systemu Zen Cart 1.3.9 1.5

Wdrożenie modułu płatności eservice. dla systemu Zen Cart 1.3.9 1.5 Wdrożenie modułu płatności eservice dla systemu Zen Cart 1.3.9 1.5 - dokumentacja techniczna Wer. 01 Warszawa, styczeń 2014 1 Spis treści: 1 Wstęp... 3 1.1 Przeznaczenie dokumentu... 3 1.2 Przygotowanie

Bardziej szczegółowo

Wdrożenie modułu płatności eservice. dla systemu Magento 1.4 1.9

Wdrożenie modułu płatności eservice. dla systemu Magento 1.4 1.9 Wdrożenie modułu płatności eservice dla systemu Magento 1.4 1.9 - dokumentacja techniczna Wer. 01 Warszawa, styczeń 2014 1 Spis treści: 1 Wstęp... 3 1.1 Przeznaczenie dokumentu... 3 1.2 Przygotowanie do

Bardziej szczegółowo

PHP. Tematyka wykładów: Język PHP PHP i bazy danych Rozszerzenia PHP

PHP. Tematyka wykładów: Język PHP PHP i bazy danych Rozszerzenia PHP PHP Tematyka wykładów: Język PHP PHP i bazy danych Rozszerzenia PHP PHP i bazy danych Plan wykładu: Wprowadzenie Buforowanie stron Uwierzytelnianie Sesje Baza danych COM, DLL XML Podsumowanie Wprowadzenie

Bardziej szczegółowo

Wdrożenie modułu płatności eservice. dla systemu oscommerce 2.3.x

Wdrożenie modułu płatności eservice. dla systemu oscommerce 2.3.x Wdrożenie modułu płatności eservice dla systemu oscommerce 2.3.x - dokumentacja techniczna Wer. 01 Warszawa, styczeń 2014 1 Spis treści: 1 Wstęp... 3 1.1 Przeznaczenie dokumentu... 3 1.2 Przygotowanie

Bardziej szczegółowo

INFRA. System Connector. Opis systemu

INFRA. System Connector. Opis systemu INFRA System Connector Opis systemu Spis treści Opis składników systemu... 3 Bezpieczeństwo systemu... 4 Bezpieczeństwo komunikacji... 4 Zabezpieczenie dostępu do serwisów... 4 Autoryzacja użytkowników...

Bardziej szczegółowo

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych Laboratorium Technologii Informacyjnych Projektowanie Baz Danych Komputerowe bazy danych są obecne podstawowym narzędziem służącym przechowywaniu, przetwarzaniu i analizie danych. Gromadzone są dane w

Bardziej szczegółowo

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

Programowanie w Sieci Internet Python - c. d. Kraków, 28 listopada 2014 r. mgr Piotr Rytko Wydział Matematyki i Informatyki Programowanie w Sieci Internet Python - c. d. Kraków, 28 listopada 2014 r. mgr Piotr Rytko Wydział Matematyki i Informatyki Co dziś będziemy robić Uwierzytelnianie użytkowników, Obiekt session, Silniki

Bardziej szczegółowo

Instrukcja do programu Do7ki 1.0

Instrukcja do programu Do7ki 1.0 Instrukcja do programu Do7ki 1.0 Program Do7ki 1.0 pozwala w prosty sposób wykorzystać dane z systemu sprzedaży Subiekt GT do generowania listów przewozowych dla firmy kurierskiej SIÓDEMKA w połączeniu

Bardziej szczegółowo

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV Piotr Jarosik, Kamil Jaworski, Dominik Olędzki, Anna Stępień Dokumentacja wstępna TIN Rozproszone repozytorium oparte o WebDAV 1. Wstęp Celem projektu jest zaimplementowanie rozproszonego repozytorium

Bardziej szczegółowo

Programowanie zorientowane obiektowo. Mateusz Kołecki

Programowanie zorientowane obiektowo. Mateusz Kołecki Programowanie zorientowane obiektowo Mateusz Kołecki Plan MVC Wstęp Separacja odpowiedzialnośći Antyprzykład Dobry przykład Wady/zalety MVC MVC to tylko początek - wzorce projektowe Dlaczego chcemy używać

Bardziej szczegółowo

Backend Administratora

Backend Administratora Backend Administratora mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011 W tym celu korzystając z konsoli wydajemy polecenie: symfony generate:app backend Wówczas zostanie stworzona

Bardziej szczegółowo

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

Gerard Frankowski, Zespół Bezpieczeństwa PCSS. Nowoczesne technologie bliżej nas Poznań, 04.03.2010 Bezpieczeństwo interoperacyjnego hostingu Gerard Frankowski, Zespół Bezpieczeństwa PCSS 4. Konferencja MIC Nowoczesne technologie bliżej nas Poznań, 04.03.2010 1 Agenda Wprowadzenie Zespół Bezpieczeństwa

Bardziej szczegółowo

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 Sesje i ciasteczka Kontrola sesji w PHP HTTP jest protokołem bezstanowym (ang. stateless) nie utrzymuje stanu między dwoma transakcjami. Kontrola sesji służy do śledzenia użytkownika podczas jednej sesji

Bardziej szczegółowo

Smarty PHP. Leksykon kieszonkowy

Smarty PHP. Leksykon kieszonkowy IDZ DO PRZYK ADOWY ROZDZIA SPIS TREœCI KATALOG KSI EK KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG Smarty PHP. Leksykon kieszonkowy Autor: Daniel Bargie³ ISBN: 83-246-0676-9 Format: B6, stron: 112 TWÓJ KOSZYK

Bardziej szczegółowo

Specyfikacja 1.2.1. Płatności CashBill. Instrukcja podłączenia płatności elektronicznych do typowych zastosowań.

Specyfikacja 1.2.1. Płatności CashBill. Instrukcja podłączenia płatności elektronicznych do typowych zastosowań. Specyfikacja 1.2.1 Płatności CashBill Instrukcja podłączenia płatności elektronicznych do typowych zastosowań. CashBill Spółka Akcyjna ul. Rejtana 20, 41-300 Dąbrowa Górnicza Tel.: +48 032 764-18-42 Fax:

Bardziej szczegółowo

Wdrożenie modułu płatności eservice. dla systemu Gekosale 1.4

Wdrożenie modułu płatności eservice. dla systemu Gekosale 1.4 Wdrożenie modułu płatności eservice dla systemu Gekosale 1.4 - dokumentacja techniczna Wer. 01 Warszawa, styczeń 2014 1 Spis treści: 1 Wstęp... 3 1.1 Przeznaczenie dokumentu... 3 1.2 Przygotowanie do integracji...

Bardziej szczegółowo

Dokumentacja systemu NTP rekrut. Autor: Sławomir Miller

Dokumentacja systemu NTP rekrut. Autor: Sławomir Miller Dokumentacja systemu NTP rekrut Autor: Sławomir Miller 1 Spis treści: 1. Wstęp 1.1 Wprowadzenie 1.2 Zakres dokumentu 2. Instalacja 2.1 Wymagania systemowe 2.2 Początek 2.3 Prawa dostępu 2.4 Etapy instalacji

Bardziej szczegółowo

Plan. Raport. Tworzenie raportu z kreatora (1/3)

Plan. Raport. Tworzenie raportu z kreatora (1/3) 3 Budowa prostych raportów opartych o bazę danych Plan Co to jest raport? Tworzenie za pomocą kreatora Tworzenie opartego o polecenie SQL Edycja atrybutów Atrybuty regionu Atrybuty Atrybuty kolumn 2 Raport

Bardziej szczegółowo

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

Instrukcja instalacji PHP-Hypercachera Refresher Standard oraz PHP-Hypercachera Refresher GZIP na Twojej witrynie Instrukcja instalacji PHP-Hypercachera Refresher Standard oraz PHP-Hypercachera Refresher GZIP na Twojej witrynie 1. Instalacja w zwykłym skrypcie PHP Instalacja PHP Hypercachera Refresher Standard i PHP

Bardziej szczegółowo

Ćwiczenie: JavaScript Cookies (3x45 minut)

Ćwiczenie: JavaScript Cookies (3x45 minut) Ćwiczenie: JavaScript Cookies (3x45 minut) Cookies niewielkie porcje danych tekstowych, które mogą być przesyłane między serwerem a przeglądarką. Przeglądarka przechowuje te dane przez określony czas.

Bardziej szczegółowo

emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym Magento (plugin dostępny w wersji ecommerce)

emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym Magento (plugin dostępny w wersji ecommerce) emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym Magento (plugin dostępny w wersji ecommerce) Zastosowanie Rozszerzenie to przeznaczone jest dla właścicieli sklepów internetowych opartych

Bardziej szczegółowo

Baza danych do przechowywania użytkowników

Baza danych do przechowywania użytkowników System logowania i rejestracji jest bardzo przydatną funkcjonalnością na każdej stronie. Umożliwia sprawną identyfikację i zarządzanie użytkownikami. Strona ze skryptem logowania nabiera dużej wartości.

Bardziej szczegółowo

CREATE USER

CREATE USER Temat: Administrowanie użytkownikami bazy danych. Po instalacji serwera MYSQL dostępne jest konto o nazwie root. Domyślnie nie ma ono przypisanego hasła, aczkolwiek podczas procesu konfiguracji jest możliwość

Bardziej szczegółowo

Wykład 5. SQL praca z tabelami 2

Wykład 5. SQL praca z tabelami 2 Wykład 5 SQL praca z tabelami 2 Wypełnianie tabel danymi Tabele można wypełniać poprzez standardową instrukcję INSERT INTO: INSERT [INTO] nazwa_tabeli [(kolumna1, kolumna2,, kolumnan)] VALUES (wartosc1,

Bardziej szczegółowo

API transakcyjne BitMarket.pl

API transakcyjne BitMarket.pl API transakcyjne BitMarket.pl Wersja 20140402 1. Sposób łączenia się z API... 2 1.1. Klucze API... 2 1.2. Podpisywanie wiadomości... 2 1.3. Parametr tonce... 2 1.4. Limity zapytań... 3 1.5. Odpowiedzi

Bardziej szczegółowo

Programowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika

Programowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika Programowanie w SQL procedury i funkcje UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika 1. Funkcje o wartościach skalarnych ang. scalar valued

Bardziej szczegółowo

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 2. Przygotowanie środowiska pracy

Bardziej szczegółowo

Platforma.NET laboratorium 4 Aktualizacja: 15/11/2013. Visual Basic.NET dostęp do bazy danych. Baza Microsoft SQL Server Compact

Platforma.NET laboratorium 4 Aktualizacja: 15/11/2013. Visual Basic.NET dostęp do bazy danych. Baza Microsoft SQL Server Compact Platforma.NET laboratorium 4 Aktualizacja: 15/11/2013 Prowadzący: mgr inż. Tomasz Jaworski Strona WWW: http://tjaworski.kis.p.lodz.pl/ Visual Basic.NET dostęp do bazy danych Baza Microsoft SQL Server Compact

Bardziej szczegółowo

Instrukcja użytkownika

Instrukcja użytkownika Instrukcja użytkownika Zandro 1.5.5 1 Metryka dokumentu Autor: Tomasz Krówczyński Liczba stron: 14 Data utworzenia: 21-07-2014 Rewizja: 67 HISTORIA ZMIAN Data Autor Wersja Zmiany 21-07-2014 Tomasz Krówczyński

Bardziej szczegółowo

Aplikacje WWW - laboratorium

Aplikacje WWW - laboratorium Aplikacje WWW - laboratorium PHP. Celem ćwiczenia jest przygotowanie prostej aplikacji internetowej wykorzystującej technologię PHP. Aplikacja pokazuje takie aspekty, obsługa formularzy oraz zmiennych

Bardziej szczegółowo

Bazy danych i strony WWW

Bazy danych i strony WWW Bazy danych i strony WWW Obsługa baz danych poprzez strony WWW Niezbędne narzędzia: serwer baz danych np. MySQL serwer stron WWW np. Apache przeglądarka stron WWW interpretująca język HTML język skryptowy

Bardziej szczegółowo

emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym PrestaShop (plugin dostępny w wersji ecommerce)

emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym PrestaShop (plugin dostępny w wersji ecommerce) emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym PrestaShop (plugin dostępny w wersji ecommerce) Zastosowanie Rozszerzenie to dedykowane jest sklepom internetowych zbudowanym w oparciu

Bardziej szczegółowo

Instrukcja do programu DoGLS 1.0

Instrukcja do programu DoGLS 1.0 Instrukcja do programu DoGLS 1.0 Program DoGLS 1.0 pozwala w prosty sposób wykorzystać dane z systemu sprzedaży Subiekt GT do generowania listów przewozowych dla firmy kurierskiej GLS w połączeniu z bezpłatnym

Bardziej szczegółowo

Autor: Joanna Karwowska

Autor: Joanna Karwowska Autor: Joanna Karwowska Wygodniejszym i wydajniejszym sposobem przechowywania i korzystania z dużej ilości danych zapisanych na serwerze jest współpraca z relacyjną bazą danych. 2 1. Utworzyć bazę danych.

Bardziej szczegółowo

E.14 Bazy Danych cz. 18 SQL Funkcje, procedury składowane i wyzwalacze

E.14 Bazy Danych cz. 18 SQL Funkcje, procedury składowane i wyzwalacze Funkcje użytkownika Tworzenie funkcji Usuwanie funkcji Procedury składowane Tworzenie procedur składowanych Usuwanie procedur składowanych Wyzwalacze Wyzwalacze a ograniczenia i procedury składowane Tworzenie

Bardziej szczegółowo

Baza danych sql. 1. Wprowadzenie. 2. Repozytaria generyczne

Baza danych sql. 1. Wprowadzenie. 2. Repozytaria generyczne Baza danych sql 1. Wprowadzenie Do tej pory operowaliście na listach. W tej instrukcji pokazane zostanie jak stworzyć bazę danych. W zadaniu skorzystamy z możliwości utworzenia struktury bazy danych z

Bardziej szczegółowo

Sprawdzenie czy połączenie przebiegło poprawnie if (mysqli_connect_errno()) { echo Błąd; Połączenie z bazą danych nie powiodło się.

Sprawdzenie czy połączenie przebiegło poprawnie if (mysqli_connect_errno()) { echo Błąd; Połączenie z bazą danych nie powiodło się. Za operacje na bazie odpowiada biblioteka mysqli (i jak improved). Posiada ona interfejs obiektowy jak i proceduralny. Podłączenie do bazy (obiektowo) mysqli:: construct() ([ string $host [, string $username

Bardziej szczegółowo

Sesje i logowanie. 1. Wprowadzenie

Sesje i logowanie. 1. Wprowadzenie Sesje i logowanie 1. Wprowadzenie Żądania od nawet tego samego użytkownika na serwerze nie są domyślnie w żaden sposób łączone ze sobą. Każde jest w pewnym sensie nowe i serwer nie jest w stanie stwierdzić,

Bardziej szczegółowo

Technologie sieciowe Sprawozdanie z labolatorium. Lista 5

Technologie sieciowe Sprawozdanie z labolatorium. Lista 5 Politechnika Wrocławska Wydział Podstawowych Problemów Techniki Technologie sieciowe Sprawozdanie z labolatorium Lista 5 Autor: Piotr Kosytorz IIrokInf. indeks: 166174 Prowadzący: dr inż. Łukasz Krzywiecki

Bardziej szczegółowo

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

BAZY DANYCH. Obsługa bazy z poziomu języka PHP. opracowanie: Michał Lech BAZY DANYCH Obsługa bazy z poziomu języka PHP opracowanie: Michał Lech Plan wykładu 1. PHP - co to jest? 2. Bazy danych obsługiwane przez PHP 3. Podstawowe polecenia 4. Sesje 5. Przykład - dodawanie towaru

Bardziej szczegółowo

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

Języki programowania wysokiego poziomu. PHP cz.3. Formularze Języki programowania wysokiego poziomu PHP cz.3. Formularze Formularze Sposób przesyłania danych formularza do serwera zależy od wybranej metody HTTP: Metoda GET

Bardziej szczegółowo

Programowanie obiektów

Programowanie obiektów Programowanie obiektów lokalne tabele tymczasowe, globalne tabele tymczasowe, zmienne lokalne, zmienne globalne przypisane wartości zmiennym 1 T-SQL Transact SQL (T-SQL), tak jak inne języki programoawania

Bardziej szczegółowo

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

Internetowy moduł prezentacji WIZYT KLIENTA PUP do wykorzystania np. na stronie WWW. Wstęp Internetowy moduł prezentacji WIZYT KLIENTA PUP do wykorzystania np. na stronie WWW. Wstęp Prezentujemy Państwu propozycję modułu aplikacji internetowej słuŝącej do prezentacji zaplanowanych wizyt klienta

Bardziej szczegółowo

Specyfikacja techniczna. mprofi Interfejs API

Specyfikacja techniczna. mprofi Interfejs API Warszawa 09.04.2015. Specyfikacja techniczna mprofi Interfejs API wersja 1.0.2 1 Specyfikacja techniczna mprofi Interfejs API wersja 1.0.2 WERSJA DATA STATUTS AUTOR 1.0.0 10.03.2015 UTWORZENIE DOKUMENTU

Bardziej szczegółowo

Paweł Rajba

Paweł Rajba Paweł Rajba pawel@cs.uni.wroc.pl http://www.itcourses.eu/ Wprowadzenie Używanie kursorów Rodzaje kursorów Praca z kursorami Co to jest kursor? Cykl życia kursora utworzenie pobieranie wartości ewentualnie

Bardziej szczegółowo

Instrukcja do programu DoDHL 1.5

Instrukcja do programu DoDHL 1.5 Instrukcja do programu DoDHL 1.5 Program DoDHL 1.5 pozwala w prosty sposób wykorzystać dane z systemu sprzedaży Subiekt GT do generowania listów przewozowych dla firmy kurierskiej DHL w połączeniu z bezpłatnym

Bardziej szczegółowo

Opcje Fiery1.3 pomoc (klient)

Opcje Fiery1.3 pomoc (klient) 2015 Electronics For Imaging. Informacje zawarte w niniejszej publikacji podlegają postanowieniom opisanym w dokumencie Uwagi prawne dotyczącym tego produktu. 28 stycznia 2015 Spis treści 3 Spis treści...5

Bardziej szczegółowo

PHP: bloki kodu, tablice, obiekty i formularze

PHP: bloki kodu, tablice, obiekty i formularze 1 PHP: bloki kodu, tablice, obiekty i formularze SYSTEMY SIECIOWE Michał Simiński 2 Bloki kodu Blok if-else Switch Pętle Funkcje Blok if-else 3 W PHP blok if i blok if-else wyglądają tak samo i funkcjonują

Bardziej szczegółowo

Laboratorium 7 Blog: dodawanie i edycja wpisów

Laboratorium 7 Blog: dodawanie i edycja wpisów Laboratorium 7 Blog: dodawanie i edycja wpisów Dodawanie nowych wpisów Tworzenie formularza Za obsługę formularzy odpowiada klasa Zend_Form. Dla każdego formularza w projekcie tworzymy klasę dziedziczącą

Bardziej szczegółowo

Instrukcja użytkownika. Aplikacja Smart Paczka DPD

Instrukcja użytkownika. Aplikacja Smart Paczka DPD Instrukcja użytkownika Aplikacja Smart Paczka DPD Instrukcja użytkownika Aplikacja Smart Paczka DPD Wersja 2.0 Warszawa, Wrzesień 2015 Strona 2 z 9 Instrukcja użytkownika Aplikacja Smart Paczka DPD Spis

Bardziej szczegółowo

Aplikacje WWW - laboratorium

Aplikacje WWW - laboratorium Aplikacje WWW - laboratorium PHP + bazy danych Celem ćwiczenia jest przygotowanie prostej aplikacji internetowej wykorzystującej technologię PHP. Aplikacja pokazuje takie aspekty, współpraca PHP z bazami

Bardziej szczegółowo

OPIEKUN DORADCY: KONTO FIRMY ZARZĄDZANIE KLIENTAMI

OPIEKUN DORADCY: KONTO FIRMY ZARZĄDZANIE KLIENTAMI Portalami Opiekun Doradcy / Opiekun Zysku zarządza firma Opiekun Inwestora z siedzibą w Poznaniu, NIP: 972 117 04 29 KONTAKT W SPRAWIE WSPÓŁPRACY W RAMACH PROJEKTU OPIEKUN DORADCY pomoc@opiekundoradcy.pl,

Bardziej szczegółowo

ShopGold Integrator by CTI. Instrukcja

ShopGold Integrator by CTI. Instrukcja ShopGold Integrator by CTI Instrukcja Spis treści 1. Opis programu... 3 2. Konfiguracja połączenia... 4 3. Eksport grup towarowych... 6 4. Eksport towarów... 7 5. Eksport zdjęć... 9 6. Pobieranie zamówień...

Bardziej szczegółowo

Bazy Danych i Usługi Sieciowe

Bazy Danych i Usługi Sieciowe Bazy Danych i Usługi Sieciowe Ćwiczenia I Paweł Daniluk Wydział Fizyki Jesień 2011 P. Daniluk (Wydział Fizyki) BDiUS ćw. I Jesień 2011 1 / 15 Strona wykładu http://bioexploratorium.pl/wiki/ Bazy_Danych_i_Usługi_Sieciowe_-_2011z

Bardziej szczegółowo

Polityka prywatności Spółdzielni Mieszkaniowej Słoneczny Stok

Polityka prywatności Spółdzielni Mieszkaniowej Słoneczny Stok Polityka prywatności Spółdzielni Mieszkaniowej Słoneczny Stok Spółdzielnia Mieszkaniowa Słoneczny Stok szanuje prawo do prywatności Użytkowników serwisu sm-slonecznystok.pl. W szczególności dba o ochronę

Bardziej szczegółowo

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik Technologia Przykłady praktycznych zastosowań wyzwalaczy będą omawiane na bazie systemu MS SQL Server 2005 Wprowadzenie

Bardziej szczegółowo

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

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar) Tworzenie witryn internetowych PHP/Java (mgr inż. Marek Downar) Co narzuca MVC? Architekturę aplikacji wykonaną w konwencji Model Widok - Kontroler Model reprezentacja danych i dostępu do nich Widok elementy

Bardziej szczegółowo

Win Admin Monitor Instrukcja Obsługi

Win Admin Monitor Instrukcja Obsługi Win Admin Monitor Instrukcja Obsługi czerwiec 2019 wersja dokumentu 1.7 dla wersji aplikacji 2.1.1.0 Spis treści: I. Wstęp 3 II. Wymagania systemowe 4 III. Ograniczenia funkcjonalne wersji demo 5 IV. Instalacja

Bardziej szczegółowo

Sprawozdanie Sieci komputerowe i bazy danych Laboratorium nr 4 Wojciech Kaczmarski

Sprawozdanie Sieci komputerowe i bazy danych Laboratorium nr 4 Wojciech Kaczmarski Sprawozdanie Sieci komputerowe i bazy danych Laboratorium nr 4 Wojciech Kaczmarski Zad.2 GET /~s279680/ HTTP/1.1 Host: mts.wibro.agh.edu.pl HTTP/1.1 200 OK Date: Wed, 29 Mar 2017 08:15:01 GMT Server: Apache/2.4.7

Bardziej szczegółowo

(aktualizacja 30 kwietnia 2018)

(aktualizacja 30 kwietnia 2018) Weryfikacja użytkownika, lista i prawa użytkowników (aktualizacja 30 kwietnia 2018) Abstrakt W poradniku opisano możliwości programu w zakresie zabezpieczania dostępu do programu hasłem, tworzenia listy

Bardziej szczegółowo

GS2TelCOMM. Rozszerzenie do TelCOMM 2.0. Opracował: Michał Siatkowski Zatwierdził: IMIĘ I NAZWISKO

GS2TelCOMM. Rozszerzenie do TelCOMM 2.0. Opracował: Michał Siatkowski Zatwierdził: IMIĘ I NAZWISKO GS2TelCOMM Rozszerzenie do TelCOMM 2.0 Opracował: Michał Siatkowski 29-03-2017 Zatwierdził: IMIĘ I NAZWISKO DATA TEL-STER 2017 Spis treści Wprowadzenie... 3 Architektura... 3 Instalacja... 3 Współpraca

Bardziej szczegółowo

15. Funkcje i procedury składowane PL/SQL

15. Funkcje i procedury składowane PL/SQL 15. Funkcje i procedury składowane PLSQL 15.1. SQL i PLSQL (Structured Query Language - SQL) Język zapytań strukturalnych SQL jest zbiorem poleceń, za pomocą których programy i uŝytkownicy uzyskują dostęp

Bardziej szczegółowo

Wykład 8: klasy cz. 4

Wykład 8: klasy cz. 4 Programowanie obiektowe Wykład 8: klasy cz. 4 Dynamiczne tworzenie obiektów klas Składniki statyczne klas Konstruktor i destruktory c.d. 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD

Bardziej szczegółowo

Rys.2.1. Drzewo modelu DOM [1]

Rys.2.1. Drzewo modelu DOM [1] 1. CEL ĆWICZENIA Celem ćwiczenia jest przedstawienie możliwości wykorzystania języka JavaScript do tworzenia interaktywnych aplikacji działających po stronie klienta. 2. MATERIAŁ NAUCZANIA 2.1. DOM model

Bardziej szczegółowo

EXSO-CORE - specyfikacja

EXSO-CORE - specyfikacja EXSO-CORE - specyfikacja System bazowy dla aplikacji EXSO. Elementy tego systemu występują we wszystkich programach EXSO. Może on ponadto stanowić podstawę do opracowania nowych, dedykowanych systemów.

Bardziej szczegółowo