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

Podobne dokumenty
Skopiuj plik do katalogu macierzystego serwera Apache (C:/xampp/htdocs). Uruchom przeglądarkę i wpisz w polu adresowym następujący ciąg:

W kodzie modułu Unit1 zdefiniuj dwie metody - składowe komponentu formatki TForm1:

Aplikacje internetowe - laboratorium

Aplikacje WWW - laboratorium

Laboratorium 1 Wprowadzenie do PHP

Ćwiczenie: JavaScript Cookies (3x45 minut)

Laboratorium 7 Blog: dodawanie i edycja wpisów

Aplikacje WWW - laboratorium

Kierunek: ETI Przedmiot: Programowanie w środowisku RAD - Delphi Rok III Semestr 5. Ćwiczenie 5 Aplikacja wielo-okienkowa

Podstawy JavaScript ćwiczenia

Problemy techniczne. Jak wyłączyć obsługę plików cookie w przeglądarkach internetowych? Przeglądarka Internet Explorer

ZAAWANSOWANE BAZY DANYCH I HURTOWNIE DANYCH MySQL, PHP

Problemy techniczne. Jak wyłączyć obsługę plików cookie w przeglądarkach internetowych? Przeglądarka Internet Explorer

Wprowadzenie do Internetu Zajęcia 5

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

Wykład 03 JavaScript. Michał Drabik

Zaawansowane aplikacje internetowe

Instrukcja użytkownika. Aplikacja dla WF-Mag

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

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

Budowa aplikacji ASP.NET współpracującej z bazą dany do przeprowadzania ankiet internetowych

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

Budowa aplikacji ASP.NET współpracującej z bazą dany do przeprowadzania ankiet internetowych

Cel: Zastosowanie okien pytającychwyświetlających pytania i komunikaty (MessageBox). Klub IKS

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

Instrukcja użytkownika. Aplikacja dla Comarch Optima

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

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

Internetowe bazy danych

Aplikacje WWW - laboratorium

Ćwiczenie 10 Generowanie plików HTML. Przygotuj program wyświetlający formatkę jak na rysunku (w fazie projektowania):

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

Programowanie w języku Python. Grażyna Koba

Wykład 6: PHP: praca z bazą danych MySQL, cz.2

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

Aplikacje WWW - laboratorium

Instrukcja użytkownika. Aplikacja dla Comarch ERP XL

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

Zdarzenia Zdarzenia onload i onunload

Tworzenie stron internetowych z wykorzystaniem HTM5, JavaScript, CSS3 i jquery. Łukasz Bartczuk

Oracle Application Express

Ćwiczenie 4 Aktualizacja tabel. 1. Skopiuj aplikację przygotowaną na poprzednich zajęciach w katalogu SKOKI1 do nowego katalogu SKOKI2.

Podręcznik użytkownika

Instrukcja użytkownika. Aplikacja dla Comarch Optima

Zajęcia 10 obsługa formularzy w PHP

Umieszczanie kodu. kod skryptu

Instrukcja konfiguracji programu Fakt z modułem lanfakt

Rejestracja faktury VAT. Instrukcja stanowiskowa

Obiektowe bazy danych

Pracownia internetowa w szkole ZASTOSOWANIA

Snifery wbudowane w Microsoft Windows

Aplikacje WWW - laboratorium

UONET+ Jak po raz pierwszy zalogować się do witryny systemu UONET+ lub odzyskać hasło dostępu? Tworzenie/odzyskiwanie hasła dostępu do witryny UONET+

Wybrane działy Informatyki Stosowanej

Rejestracja nowego kontrahenta. Instrukcja stanowiskowa

Budowa aplikacji z graficznym interfejsem użytkownika - GUI (Graphic User Interface)

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

Zaawansowane bazy danych i hurtownie danych studia zaoczne II stopnia, sem. I

CMS- kontakty (mapa)

Rozpocznijmy ten odcinek od rozwiązania problemu postawionego w poprzednim odcinku:

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione

Formularze HTML. dr Radosław Matusik. radmat

Praca w programie dodawanie pisma.

SSK - Techniki Internetowe

Rejestracja dokumentu MMW i MMP. Instrukcja stanowiskowa

instrukcja użytkownika terminala ARGOX PA-20 SYSTEMY AUTOMATYCZNEJ IDENTYFIKACJI

Instrukcja konfiguracji programu Fakt z modułem lanfakt

Kierunek: ETI Przedmiot: Programowanie w środowisku RAD - Delphi Rok III Semestr 5

INSTRUKCJA OBSŁUGI PROGRAMU PRZEDSZKOLE (CZ.1)

Rejestracja dokumentu WZ. Instrukcja stanowiskowa

CGI (Common Gateway Interface)

Pierwsze logowanie do systemu Uczniowie Optivum NET

(wersja robocza) Spis treści:

Rejestracja dokumentu PZ. Instrukcja stanowiskowa

Forte Zarządzanie Produkcją Instalacja i konfiguracja. Wersja B

Instrukcja programu mam wersja 1.02.

ELEKTRONICZNA KSIĄŻKA ZDARZEŃ

Poprawne opisanie szkoły dla dorosłych w module Administrowanie. 1. Zaloguj się do systemu jako administrator i uruchom moduł Administrowanie.

Opis modułu pl.id w programie Komornik SQL-VAT

Polityka cookies w serwisie internetowym

Format HTML. Wybrane działy Informatyki Stosowanej. Definicja i przeznaczenie Struktura dokumentu Znaczniki Formularze i komponenty

UMOWY INSTRUKCJA STANOWISKOWA

Przewodnik po Notowaniach Statica mdm 4

Płace Optivum. Konfiguracja skrzynki nadawczej, z której wysyłane będą paski do pracowników

UONET+ moduł Dziennik. Dokumentowanie lekcji w systemie UONET+

Wymagania systemowe po stronie serwera

Moduł Handlowo-Magazynowy Przeprowadzanie inwentaryzacji z użyciem kolektorów danych

Diagnoza Szkolna Pearsona. Instrukcja obsługi

Program powinien otworzyć się z pierwszym formularzem. Jeśli nie, otwórz pierwszy formularz, wybierając go z listy - Shift+F12.

Instrukcja korzystania z systemu poczty NetMail (wersja skrócona)

Instrukcja obsługi do programu i-monitallegro GT

Dokumentacja Skryptu Mapy ver.1.1

Finanse VULCAN. Jednostki dodaje i konfiguruje administrator główny platformy (w aplikacji Zarządzanie platformą).

Dodawanie operacji dodatkowych w WAPRO Mag.

1 Moduł Konfigurowanie Modułu

Procedury i funkcje - powtórzenie i uzupełnienia. Przykład funkcji potęgowanie przy wykładniku naturalnym

Wprowadzenie do systemu Delphi

Pobieranie komunikatów GIF

Dodatek dla InsERT nexo

Rejestracja nowego kontrahenta. Instrukcja stanowiskowa

Transkrypt:

Przedmiot: Programowanie usług internetowych - Delphi Przygotował: K. Strzałkowski Rok V. Semestr IX. Wydział ZiMK Ćwiczenie 3 Przekazywanie danych do programu CGI 1. Odbieranie w programie wartości zmiennych systemowych Opracuj program o nazwie Srod.Exe którego zadaniem jest wyświetlenie na stronie wartości niektórych zmiennych systemowych. Proponowana postać pliku projektu Srod.Dpr: program Srod; uses SysUtils; const listazm: array [1..20] of String [30] = ( 'SERVER_NAME', 'SERVER_PROTOCOL', 'SERVER_PORT', 'SERVER_SOFTWARE', 'GATEWAY_ITERFACE', 'REQUEST_METHOD', 'DOCUMENT_ROOT', 'PATH_TRANSLATED', 'HTTP_REFERER', 'SCRIPT_NAME', 'PATH_INFO', 'QUERY_STRING', 'CONTENT_TYPE', 'HTTP_ACCEPT','CONTENT_LENGTH','REMOTE_HOST','REMOTE_USER', 'REMOTE_IDENT', 'HTTP_FROM', 'HTTP_USER_AGENT') ; var i: integer; for i:= Low(listaZm) to High(listaZm) do writeln(listazm[i] + ' = ' + GetEnvironmentVariable(listaZm[i]) + '<BR>'); Uzupełnij program o definicje procedur PoczatekHTML i KoniecHTML przeznaczonych do wyprowadzania początku i końca zapisu strony. Procedury umieść bezpośrednio w pliku projektu lub w dołączonym module. Skompiluj program. Plik wynikowy Srod.Exe skopiuj do podkatalogu \CGI-BIN serwera. Przetestuj działanie programu dla różnych wywołań wpisywanych w polu adresowym przeglądarki. 2. Pobieranie danych z formularza Zapisz w pliku o nazwie Form.HTML zapis strony wyświetlający formularz: <HTML><HEAD> <TITLE>Przyklad obslugi formularza </TITLE> </HEAD><BODY> <H1>Przyklad obslugi formularza</h1> <HR> <FORM ACTION="http://localhost/cgi-bin/Form.Exe" METHOD="GET"> Nazwisko: <INPUT TYPE="TEXT" NAME="Nazwisko"> <P> Imie: <INPUT TYPE="TEXT" NAME="Imie"> <P> <INPUT TYPE="SUBMIT" VALUE= Wyslij dane > </FORM> <HR> <I>Strona wygenerowana przez HTML<I> </BODY></HTML> 1

Plik skopiuj do katalogu macierzystego serwera i przetestuj wyświetlanie strony. Zaobserwuj jaki adres wyświetlany jest w polu adresowym przeglądarki po naciśnięciu przycisku Wyślij dane. Opracuj program CGI o nazwie Form.Exe odbierający dane z formularza. Proponowana postać pliku projektu: program Form; uses SysUtils; var Dane: String; Dane:= GetEnvironmentVariable('CONTENT_LENGTH'); writeln('metoda : ' + GetEnvironmentVariable('REQUEST_METHOD')+ '<BR>'); writeln('dl ciagu na wejsciu : ' + Dane + '<BR>'); writeln('dane w zmiennej srodowiska: ' + GetEnvironmentVariable ('QUERY_STRING') + '<BR>'); Skopiuj plik wykonywalny programu do odpowiedniego katalogu, uzupełnij program o definicje procedur PoczatekHTML i KoniecHTML oraz przetestuj współdziałanie strony i programu. Opracuj samodzielnie (poprzez odpowiednią adaptację programu Form.Dpr) program odbierający dane wysyłane z wykorzystaniem metody POST. Wskazówka: Należy odpowiednio zmienić atrybut METHOD w znaczniku FORM formularza. Ponieważ metoda POST przesyła dane poprzez standardowy strumień wyjściowy StdOut, a nie przez zmienną QUERY_STRING to należy w programie Form.Dpr dodać instrukcje odczytujące znaki w ilości wyznaczanej zmienną CONTENT_LENGTH. Na przykład: dl:=strtoint(getenvironmentvariable('content_length')); if dl>0 then Dane:= ; for i:=1 to dl do read(znak); Dane:=Dane+znak; Rozbuduj program Form.Dpr (lub jego wersję zmodyfikowaną) o część dodatkową wycinającą z ciągu danych wartości wpisane w polach formularza. Zastosuj funkcję pomocniczą: function Pole(Dane:string; NazwaPola:string):string; var Napisy: TStringList; Napisy:=TStringList.Create; Dane:=StringReplace(Dane,'&', #10, [rfreplaceall]); {zamiana & na #10 } Napisy.Text:=Dane; Pole:=Napisy.Values[NazwaPola]; Napisy.Free; 2

Zastosowany w funkcji typ TStringList jest zdefiniowany w module Classes, dlatego należy odpowiednio rozszerzyć specyfikację uses. Przetestuj działanie programu. 3. Przykład programu zapisującego Cookie Opracuj program CGI o nazwie Imie.Exe używającego cookie do zapamiętania imienia użytkownika. Proponowana postać pliku projektu: program Imie; uses SysUtils, Classes; var kok, dane, imie: String; kok:=getenvironmentvariable('http_cookie'); if kok<>'' then kok:=pole(kok, 'Imie'); dane:=getenvironmentvariable('query_string'); if dane<>'' then imie:=pole(dane, 'Imie'); writeln('set-cookie: imie=',imie); // ustawienie cookie imie o // wartosci wczytanej if imie<>'' then writeln('<hr><b> Dziękuję. Zapamietalem Twoje imie ',imie) else if kok<>'' then writeln('<hr><b>witaj ', kok, '. Fajnie ze tu znowu zagladasz.</b>') else writeln( '<hr><b>witaj. Jestes tu po raz pierwszy. Podaj imie </b><hr>'); writeln( '<form method="get" action="http://localhost/cgi-bin/imie.exe">'); writeln('imie: <input type="text" name="imie">'); writeln('<input type="submit" value="ok">'); writeln(' </form>'); Uzupełnij program o definicje procedur PoczatekHTML i KoniecHTML oraz definicję funkcji Pole przeznaczonej do wycinania wartości danych ze zmiennych QUERY_STRING i HTTP_COOKIE. W zmiennej HTTP_COOKIE ciasteczka są przechowywane w postaci: nazwa1=wartosc1;nazwa2=wartosc2;nazwa3=wartosc3;... Opisy zmiennych cookie rozdzielane są średnikami odmiennie jak w zmiennej QUERY_STRING gdzie znakiem separującym jest &. Z tego powodu definicja funkcji Pole powinna być uzupełniona instrukcją: Dane:=StringReplace(Dane,';', #10, [rfreplaceall]); {zamiana ; na #10 } 3

Skopiuj plik wykonywalny programu do odpowiedniego katalogu i przetestuj działanie programu. Przy pierwszym uruchomieniu programu po umieszczeniu w polu adresowym przeglądarki wywołania: http://localhost/cgi-bin/imie.exe program wyświetla formularz z pytaniem o imię. Po wpisaniu imienia i kliknięciu przycisku OK program jest ponownie automatycznie wywoływany zgodnie z wartością atrybutu ACTION formularza. Tym razem wywołanie jest uzupełniane parametrem Imie o wartości podanej przez użytkownika. Wykrycie w programie tej zmiany adresu powoduje, że tym razem wyświetlana jest jedynie informacja o zapamiętaniu imienia. Jednocześnie program tworzy cookie Imie. Fakt utworzenia cookie można sprawdzić (w przeglądarce Firefox) w opcji menu: Narzędzia Opcje zakładka Prywatność ramka Ciasteczka Wyświetl ciasteczka Na liście ciasteczek należy odszukać i rozwinąć witrynę localhost i kliknąć wiersz ciasteczka by wyświetlić jego dane. Przy ponownym wpisaniu w polu adresowym przeglądarki wywołania jak zamieszczone powyżej program działa inaczej. Następuje ustalenie istnienia ciasteczka z zapisem imienia, odczytanie jego wartości, a następnie wyświetlenie tego imienia. Formularz nie jest wyświetlany. Ponowne wyświetlenie formularza nastąpi dopiero po zamknięciu przeglądarki i ponownym jej uruchomieniu. Powodem takiego działania jest fakt że ważność cookie została domyślnie określona jako do końca pracy przeglądarki. 4. Zastosowanie formularza HTML do rejestracji nowego użytkownika serwisu. Opracuj formularz HTML do wprowadzania nazwy użytkownika (Login) i hasła dla nowo-rejestrowanego użytkownika. Zastosuj następujący nagłówek formularza: <FORM ACTION="http://localhost/cgi-bin/Form2.Exe" METHOD="GET"> Opracowaną stronę zapisz w pliku Form2.HTML, skopiuj do katalogu macierzystego serwera i przetestuj Opracuj program Form2.Exe odbierający dane z formularza, sprawdzający ich poprawność i zapisujący nowy rekord w tabeli Użytkownicy. Program powinien wyświetlać stronę z komunikatem o powodzeniu lub braku powodzenia rejestracji. Do zapisywania rekordu w tabeli wykorzystaj zapytanie SQL ustawiane we właściwości CommandText komponentu SQLDataSet. Proponowana postać instrukcji: SQLDataSet1.CommandText:= 'INSERT INTO Uzytkownicy (Login, Haslo) VALUES (' +#39+Login1+#39+ ', '+#39+Haslo1+#39+')'; Gdzie: Login1 i Haslo1 - zmienne do których przypisano wartości wpisane w polach formularza, natomiast #39 znak apostrofu. Skopiuj plik wykonywalny programu do odpowiedniego katalogu i przetestuj współdziałanie strony i programu. Sprawdź także poprawność wpisu w tabeli Uzytkownicy. 4

ZADANIA 1. Opracuj stronę i aplikację do rejestracji nowych zapisów w tabeli Katalog. 2. Opracuj aplikację wyświetlającą na stronie internetowej tabelę Katalog w taki sposób by wartości wyświetlane w kolumnie JM miały postać odsyłaczy do innego programu Wartosc.Exe. Każdy odsyłacz powinien zawierać parametr określający nazwę wybranej jednostki miary. Opracuj także program Wartosc.Exe który wyświetla na stronie wartość wszystkich towarów dla wybranej (i przekazanej parametrem w adresie wywołującym) jednostki miary. 5