TECHNIKI MULTIMEDIALNE

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

Download "TECHNIKI MULTIMEDIALNE"

Transkrypt

1 Instytut Techniki Z a k ł a d E l e k t r o t e c h n i k i i I n f o r m a t y k i U N I W E R S Y T E T R Z E S Z O W S K I INSTRUKCJE DLA STUDENTÓW TECHNIKI MULTIMEDIALNE Tematyka: 1. Technologia języka skryptowego PHP 2. Moduł integrujący PHP4 i MySQL 3. Administracja i zarządzanie RSZBD w PHP Rzeszów 2004

2 Laboratorium 1 PHP jest językiem skryptowym, wykonywanym po stronie serwera, a pisane w nim skrypty są umieszczane w kodzie HTML. Dokumenty zawierające skrypty PHP (pliki zazwyczaj mają rozszerzenie.php,.php3,.php4) to pomieszanie kodu HTML i tekstu programu. W rzeczywistości w kodzie HTML tekst programu jest wydzielony znacznikiem z tego kodu (choć może też być odwrotnie: kod HTML-owy może być zawarty w skrypcie PHP!). Początek i koniec programu mogą być oznaczone odpowiednio przez: <?php?> <??> <SCRIPT LANGUAGE= php > </SCRIPT> Komentarz jest fragmentem kodu pomijanym przez interpreter. Musimy oczywiście odpowiednio ów opis zaznaczyć: // - interpreter pominie wszystko co znajdzie za tymi znakami aż do końca linii /* i */ - oznaczają odpowiednio początek i koniec komentarza obejmującego jedną lub więcej linii dla kodu HTML komentarz zaznaczamy poprzez użycie znaczników <!-- i -->. Ćwiczenie 1.1. Utwórz w PHP program, który wypisze Twoje imię i nazwisko. Musimy zapoznać się z funkcją, która pozwala na wypisanie tekstu. print echo printf Najprostsza funkcja wypisująca podaną wartość. Funkcja wypisująca podaną wartość, podobna do print. Funkcja pozwalająca na wypisanie wartości po jej wcześniejszym sformatowaniu. Jest bardzo przydatna, a zapoznamy się z nią w ćwiczeniu 3.5. Napiszmy teraz program: //Listing 1-1.php <HTML> <HEAD> <META HTTP-EQUIV="Content- Type"CONTENT="text/html;charset=iso ">

3 <TITLE>Moje imi ę i nazwisko</title> </HEAD> <BODY> <??> // Wypisujemy imi ę i nazwisko, używając funkcji "print" print ("Nazywam si ę Mariusz Dymek"); </BODY> </HTML> Po umieszczeniu pliku na serwerze (nie jest ważne, czy to obcy serwer w Internecie, gdzie mamy konto, czy też zainstalowany Apache na naszym komputerze) i wpisaniu adresu dokumentu uzyskamy wynik działania pierwszego napisanego skryptu PHP (rysunek 1.1). Rys Wynik działania pierwszego skryptu PHP Ćwiczenie 1.2. Utwórz skrypt, który wypisze Ci informacje o konfiguracji PHP na serwerze. Wykorzystamy funkcję, która zwraca stronę informacyjną o konfiguracji serwera. phpinfo Funkcja zwracająca stronę informacyjną o konfiguracji PHP i o bieżącym połączeniu i zmiennych systemowych Oto skrypt:

4 //Listing 1-2.php <? // Wykorzystujemy funkcj ę "phpinfo" w celu uzyskania // informacji o konfiguracji PHP. phpinfo();?> W przeglądarce wyświetli się strona z informacjami (rysunek 1.2). Rys Strona informacyjna wygenerowana za pomocą funkcji phpinfo. Funkcja phpinfo wyświetla kompletny tekst HTML strony informacyjnej. W sekcji Environment znajduje się lista zmiennych środowiskowych, np.: - HTTP_HOST, w której jest zapisana jego nazwa; - REQUEST_URI, pamiętająca nazwę skryptu; - SERVER_ADMIN, z której można odczytać adres administratora serwera; - REMOTE_ADDR, która określa adres IP odwiedzającego; - HTTP_USER_AGENT, z której można wyczytać, z jakiego systemu operacyjnego korzysta i jaką posługuje się przeglądarką. Zmienne, stałe, operatory. Nazwy zmiennych mogą składać się z liter, cyfr i znaków podkreślenia, jednak nie mogą zaczynać się od cyfry. W programie poprzedza sieje znakiem dolara ($). W PHP nie jest wymagane wcześniejsze deklarowanie ich przed użyciem, a więc wcześniejsze określanie jej typu

5 Zmienne w PHP dzielą się na typy, np.: - łańcuchy znakowe; - liczby całkowite; - liczby zmiennopozycyjne. Ćwiczenie 1.3. Utwórz zmienne, w których zapamiętasz swoje imię i nazwisko i wypisz je. Skrypt realizujący to zadanie: //Listing 1-3.php <HTML> <HEAD> <META HTTP-EQUIV="Content- Type"CONTENT="text/html;charset=iso "> <TITLE>Moje imi ę i nazwisko</title> </HEAD> <BODY> <??> // Imi ę i nazwisko, zapamiętujemy w zmiennych // a następnie wypisujemy funkcj ą print. $imie = 'Mariusz'; $nazwisko = "Dymek"; print ("Nazywam si ę ". $imie. " ". $nazwisko); </BODY> </HTML> Ważnym elementem są znaki kropki w instrukcji print, pomiędzy poszczególnymi łańcuchami. Znak kropki jest operatorem połączenia dwóch łańcuchów. Łańcuch tekstowy może być zawarty w pojedynczych lub podwójnych cudzysłowach. " " W łańcuchach w podwójnych cudzysłowach następuje tak zwana interpolacja zmiennych interpolacja zmiennych. Oznacza to, że nazwy zmiennych zawartych w takich łańcuchach są zastępowane przez ich

6 wartości. ' ' W łańcuchach w pojedynczych cudzysłowach taka zmiana nie następuje. Różnice w użyciu podwójnych i pojedynczych cudzysłowów. $tekst = "Nazywam si ę $imie $nazwisko"; Nazywam się Mariusz Dymek $tekst = Nazywam si ę $imie $nazwisko ; Nazywam się $imie $nazwisko Ćwiczenie 1.4. Napisz skrypt, który wypisze obwód i pole prostokąta o zadanych bokach. //Listing 1-4.php <HTML> <HEAD> <META HTTP-EQUIV="Contenttype"CONTENT="text/html;charset=iso "> <TITLE>Pole i obwód prostok±ta</title> </HEAD> <BODY> <? // W zmiennych zapamiętamy boki prostok±ta, a // następnie obliczymy pole i obwód kwadratu. $boka = 5; $bokb = 7; print ("Pole prostok±ta o bokach $boka i $bokb $boka*$bokb. " a obwód: ". 2*($bokA+$bokB) ); wynosi:".?> </BODY> </HTML>

7 Efekt w przeglądarce widać na rysunku 1.3. Rys Wyniki obliczeń programu. Stałymi. nazywamy pewne obiekty, które mają z góry określoną wartość, która nie ulega zmianie podczas wykonywania programu. Jako stałe możesz definiować nie tylko liczby, ale także teksty. Musisz je wtedy zawrzeć w cudzysłowach. Stałe definiuje się za pomocą funkcji define. define Oto przykład definicji: Definiowanie wartości stałej. define ("STAWKA_PODATKOWA", 0.19) Funkcja posiada dwa argumenty: nazwę stałej i jej wartość. Ćwiczenie 1.5 Napisz skrypt, który wyświetli wartość podatku od dochodu 5000 zł w 2001 roku. Użyj stałych do zapamiętania kwoty wolnej od podatku i stawki procentowej. Podatek należy obliczyć w następujący sposób: od dochodu trzeba odjąć kwotę wolną od podatku i następnie wynik pomnożyć przez stawkę procentową. //Listing 1-5.php <HTML> <HEAD> <META HTTP-EQUIV="Content- Type"CONTENT="text/html;charset=iso ">

8 <TITLE>Podatek od dochodu 5000 PLN w 2001 roku </TITLE> </HEAD> <BODY> <? define ("KWOTA_DO_ODJECIA", ); define ("STAWKA_PODATKOWA", 0.19); // czyli 19% print ("Podatek od dochodu 5000 PLN w 2001 roku wynosi: "); printf ("%0.2f", (5000*STAWKA_PODATKOWA - KWOTA_DO_ODJECIA)); print (' PLN');?> </BODY> </HTML> Rys Wynik działania programu po obliczeniu podatku. Funkcją printf pozwala na formatowanie wypisywanego tekstu. Funkcja wymaga argumentu, określającego sposób formatowania, po którym wpisuje się informacje do wyświetlenia, oddzielając je przecinkami. Poniżej znajduje się lista operatorów arytmetycznych i operatorów przypisania. Operatory arytmetyczne Operator Opis + dodawanie - odejmowanie

9 * mnożenie / dzielenie % reszta z dzielenia Operatory przypisania Operator Opis = liczba stojąca po lewej stronie operatora przyjmuje wartość liczby stojącej po prawej stronie operatora += liczba stojąca po lewej stronie operatora przyjmuje wartość będącą sumą jej samej i liczby stojącej po prawej stronie operatora -= liczba stojąca po lewej stronie operatora przyjmuje wartość będącą różnicą jej samej i liczby stojącej po prawej stronie operatora *= liczba stojąca po lewej stronie operatora przyjmuje wartość będącą iloczynem jej samej i liczby stojącej po prawej stronie operatora /= liczba stojąca po lewej stronie operatora przyjmuje wartość będąca ilorazem jej samej i liczby stojącej po prawej stronie operatora %= liczba stojąca po lewej stronie operatora przyjmuje wartość będąca resztą z dzielenia (modulo) jej samej i liczby stojącej po prawej stronie operatora.= przypisuje do wyniku (będącego łańcuchem) jego połączenie z łańcuchem (będącym argumentem) == operator równości!= operator różności! operator zaprzeczenia (negacji), stosowany przed argumentem ++ operator zwiększenia o 1 (czyli inkrementacja) -- operator zmniejszenia o 1 (czyli dekrementacja) Ćwiczenie 1.6 Napisz skrypt, który wypisze Twoje informacje adresowe, używając operatora.= (przypisującego połączenie wyniku z argumentem). Poszczególne informacje będziemy gromadzić w kolejnych poleceniach skryptu. //Listing 1-6.php <HTML> <HEAD> <META HTTP-EQUIV="Content- Type"CONTENT="text/html;charset=iso "> <TITLE>Moje dane</title> </HEAD> <BODY>

10 <? //Kolejne informacje zostaj ą zbierane przy użyciu operatora.= //(przypisującego połączenie wyniku z argumentem).?> $tekst = 'Mariusz'; $tekst.= ' Dymek'; $tekst.= '<BR>'; $tekst.= 'Rzeszów'; $tekst.= '<BR>'; $tekst.= 'tel. (502) '; print ($tekst); </BODY> </HTML> Poniżej znajduje się wynik działania skryptu: Rys Wynik działania programu w przeglądarce.

11 Zadania: 1. Napisz skrypt, żeby wyniki obliczeń z ćwiczenia 1.4 były wyróżnione pogrubieniem. Efekt w przeglądarce widać na rysunku 1.6. Rys Wyniki obliczeń zostały wyróżnione pogrubieniem. 2. Posługując się programem z zadania 1.5. napisz program wstawiając w nim drugą instrukcję, wypisującą podatek dla dochodu zł. 3. Napisz skrypt, który obliczy pole i obwód okręgu.

12 Laboratorium 2 Instrukcja warunkowa Instrukcja warunkowa w PHP ma następującą formę: if (warunek1) { blok instrukcji 1 elseif (warunek2) { blok instrukcji 2 elseif (warunek3) { blok instrukcji 3... else { blok instrukcji n lub formę uproszczoną: if (warunek) { blok instrukcji 1 Oto przykład wykorzystania instrukcji warunkowej: if ($i>0) { print ('zmienna i jest większa od 0 ' ) ) else ( print ('zmienna i jest mniejsza lub równa 0 )

13 Powyższy przykład można nieco rozbudować, w celu odróżnienia wartości zmiennej $i równej i mniejszej od zera: if ($i>0) { print ('zmienna i jest większa od 0 ') elseif ($i ==0) { print ( zmienna i jest równa 0 ) else { print ('zmienna i jest mniejsza lub równa 0 ) Ćwiczenie 2.1. Napisz skrypt, który wypisze większą wartość z dwóch określonych liczb. //Listing 2-1.php <HTML> <HEAD> <META HTTP-EQUIV="Content- Type"CONTENT="text/html;charset=iso "> <TITLE>Większa z dwóch liczb</title> </HEAD> <BODY> <? // W instrukcji if sprawdzamy, czy większe jest $a czy $b. $a = 2; $b = 3; print ("<B>a</B> ma warto ść $a<br>");

14 print ("<B>b</B> ma warto ść $b<br>"); if ($a>$b) { print ("Większ ą liczb ą jest a, ma warto ść $a"); elseif ($a==$b) { print ("Liczby a i b s ą sobie równe, obie maj ą warto ść $a"); else { print ("Większ ą liczb ą jest b, ma warto ść $b");?> </BODY> </HTML> Poniżej znajduje się efekt działania skryptu. Rys Wynik działania skryptu.

15 Ćwiczenie 2.2 Wylicz pierwiastki równania kwadratowego o współczynnikach A, B i C. Aby obliczyć pierwiastki równania kwadratowego najpierw należy wyliczyć deltę: B2-4AC 4AC. W zależności od jej znaku, równanie posiada zero, jedno lub dwa rozwiązania. //Listing 2-2.php <HTML> <HEAD> <META HTTP-EQUIV="Content- Type"CONTENT="text/html;charset=iso "> <TITLE>Pierwiastki równania kwadratowego</title> </HEAD> <BODY> <? // Pierwiastki równania kwadratowego obliczamy zgodnie // ze wzorem. $a = -1; $b = -2; $c = 1; print ("a = $a, b = $b, c = $c<br>"; $delta = $b*$b-4*$a*$c; if ($delta < 0) { print ('Równanie nie ma pierwiastków rzeczywistych'); elseif ($delta == 0) { $xl = -$b/(2 * $a); print ("Równanie ma jeden pierwiastek rzeczywisty: $xl"); else {

16 $xl = (-$b-sqrt($delta)) / (2*$a); $x2 = (-$b+sqrt($delta)) / (2*$a); print ("Równanie ma dwa pierwiastki rzecz.: $xl i $x2");?> </BODY> </HTML> Rys Efekt programu. Pętla for W PHP mamy do dyspozycji kilka możliwości zapętlania", czyli wielokrotnego wykonywania bloku instrukcji. Najprostszą jest pętla for, która ma postać: for (ustalenie_poczatku; warunek_petli; zwiększenie_licznika) { blok instrukcji W sekcji pierwszej (ustalenie początku) nadajemy zmiennej sterującej w pętli wartość początkową. Druga sekcja (warunek pętli) to wyrażenie określające warunek, przy którego spełnieniu pętla ma być wykonywana. W trzeciej sekcji (zwiększanie licznika) określamy sposób zwiększania zmiennej sterującej przy każdym przebiegu pętli. Ćwiczenie 2.3

17 Napisz program, który wypisze liczby od 1 do 10, a następnie od 10 do 1. //Listing 2-3.php <HTML> <HEAD> <META HTTP-EQUIV="Content- Type"CONTENT="text/html;charset=iso "> <TITLE>Odliczamy</TITLE> </HEAD> <BODY> <??> // Wykorzystujemy dwie pętle - "w gór ę" i "w dó ł". for ($i=1; $i<=10; $i++) { print ("$i<br>") ; print ( '<BR>' ) ; for ($i=10; $i>=1; $i-- ) { </BODY> </HTML> print ("$i<br>");

18 Rys Efekt działania programu. Pętle while i do...while Pętla while ma postać: while (warunek) { blok instrukcji Pętla do...while ma postać:

19 do { blok instrukcji while (warunek) Istotę tych instrukcji dobrze oddaje ich przetłumaczenie na język polski: 1. Dopóki jest spełniony warunek, wykonuj instrukcje. 2. Wykonuj instrukcje, dopóki jest spełniony warunek. Ćwiczenie 2.4 Napisz program, który znajdzie najmniejszy wspólny podzielnik dwóch liczb: A i B. //Listing 2-4.php <HTML> <HEAD> <META HTTP-EQUIV="Content- Type"CONTENT="text/html;charset=iso "> <TITLE>NWD</TITLE> </HEAD> <BODY> <? // Największy wspólny podzielnik liczb a i b znajdziemy // stosując odmian ę algorytmu Euklidesa. $a = 32; $b = 12; print ("Największy wspólny podzielnik liczb $a i $b to: "); while ($a!= $b) { if ($a < $b){ $pora = $a; $a = $b; $b = $pora;

20 $a = $a - $b; print ("$a");?> </BODY> </HTML> Rys Efekt programu w przeglądarce. Ćwiczenie 2.5 Napisz program, który sprawdzi, ile kolejnych liczb naturalnych, zaczynających się od 1, daje sumę większą od 100. Do napisania skryptu wykorzystamy funkcję do..while, w której będą sumowane kolejne wyrazy ciągu, aż do uzyskania sumy 100. //Listing 2-5.php <HTML> <HEAD> <META HTTP-EQUIV="Content- Type"CONTENT="text/html;charset=iso "> <TITLE>Suma ciągu</title>

21 </HEAD> <BODY> <? // Szukamy najmniejszego i takiego, że suma liczb od // l do i przekracza 100. $i = 0; $suma = 0; do { $suma += ++$i; while ($suma < 100); print ("Suma liczb od l do $i daje $suma.");?> </BODY> </HTML> Rys Efekt programu.

22 Instrukcja wyboru [switch] Instrukcja wyboru switch umożliwia rozgałęzienie działania programu w zależności od wartości wyrażenia. Oto postać tej instrukcji: switch (wyrazenie) { case wartosc1: dzialanie1; break; case wartosc2: dzialanie2; break;... default dzialanie; Wartości wartość1, wartosc2,... (zwane wyrażeniami wyboru) służą do określenia, które działanie ma zostać podjęte (to, dla którego warunek odpowiada wartości). W przypadku, gdy nie jest to spełnione dla żadnej wartości, wykonywane są instrukcje z bloku default. Ćwiczenie 2.6 Napisz program, który wypisze bieżącą datę z miesiącem w języku polskim. //Listing 2-6.php <HTML> <HEAD> <META HTTP-EQUIV="Content- Type"CONTENT="text/html;charset=iso "> <TITLE>Data</TITLE> </HEAD> <BODY> <? // Polska nazwa miesiąca określona w funkcji switch // do uzyskania dnia, miesiąca i roku używamy funkcji date. $dzien = date("d");

23 $miesiac = date("m"); $rok = date("y"); switch ($miesiac) { case '01': $miesiac = 'stycznia'; break; case '02': $miesiac = 'lutego'; break; case '03': $miesiac = 'marca'; break; case '04': $miesiac = 'kwietnia'; break; case '05': $miesiac = 'maja'; break; case '06': $miesiac = 'czerwca'; break; case '07': $miesiac = 'lipca'; break; case '08': $miesiac = 'sierpnia'; break; case '09': $miesiac = 'września'; break; case '10': $miesiac = 'października'; break; case '11': $miesiac = 'listopada'; break; case '12': $miesiac = 'grudnia'; break; default: $miesiac = 'niezidentyfikowany'; break; print "$dzien $miesiac $rok";?> </BODY> </HTML>

24 Rys Efekt programu. Podając format daty można użyć następujących znaków specjalnych: Znak Opis D dzień tygodnia w skróconym zapisie tekstowym, na przykład "Fri" I dzień tygodnia w zapisie tekstowym, na przykład "Monday" w dzień tygodnia w postaci numerycznej od "0" (Niedziela) do "6" (Sobota) z dzień w roku od "0" do "365" d dzień miesiąca w zapisie numerycznym od "01" do "31" F miesiąc w zapisie tekstowym np.: "January" M miesiąc w skróconym zapisie tekstowym, na przykład "Jan" m miesiąc w zapisie numerycznym od "01" do " 12" t liczba dni w miesiącu od "28" do "31 " h godzina, format 12-godzinowy od "01" do "12" H godzina, format 24-godzinowy od "00" do "23" a "am", czy "pm" A "AM", czy "PM" i minuty, od "00" do "59" s sekundy od "00" do "59" Y rok w zapisie 4-cyfrowym, na przykład "2002" y rok w zapisie 2-cyfrowym, na przykład "02 ". Zadania

25 1. Dobierz takie wartości zmiennych $a, $b i $c w ćwiczeniu 2.2., by uzyskać równanie bez, z jednym i z dwoma rozwiązaniami rzeczywistymi. 2. Napisz skrypt, który wyświetli powitanie wraz z aktualną datą. 3. Napisz program, który obliczy i wyświetli N!. 4. Napisz program, który sprawdzi, czy n jest liczbą pierwszą.

26 Laboratorium 3 Funkcje Definicja funkcji musi nastąpić przed jej wywołaniem i ma postać: function nazwa (lista_paramertów) { blok instrukcji Parametry, czyli dane przekazane do funkcji, są widoczne wewnątrz niej pod odpowiednimi nazwami (takimi, jakie zadeklarowaliśmy w nagłówku funkcji) i można na nich operować tak jak na zmiennych. Jeżeli chcesz, by funkcja zwróciła jakąś wartość, należy posłużyć się instrukcją return. Powoduje ona zakończenie działania funkcji i zwrócenie jako wyniku wartości wyrażenia występującego w instrukcji return. Ćwiczenie 3.1. Napisz funkcją, która oblicza silnię liczby, i program sprawdzający jej działanie. Zwróć uwagę, że do napisanej już funkcji możesz się odwołać tak, jak do standardowej. //Listing 3-1.php <HTML> <HEAD> <META HTTP-EQUIV="Content- Type"CONTENT="text/html;charset=iso "> <TITLE>Silnia</TITLE> </HEAD> <BODY> <? function silnia ($n) { $silnia = 1;

27 for ($i=1; $i<=$n; $i++) { $silnia *= $i; return $silnia; print ("10! = ".silnia(10));?> </BODY> </HTML> Zmienne $i oraz $silnia, używane w funkcji silnia są na zewnątrz niewidoczne. Noszą one nazwę zmiennych lokalnych funkcji. Z kolei taka, która jest używana w głównym bloku programu, to zmienna globalna. Istnieje możliwość użycia w funkcji zmiennych lokalnych o takich samych nazwach, jak zmienne globalne. Rys Wynik działania skryptu. Jeżeli chciałbyś skorzystać ze zmiennej globalnej, możesz użyć instrukcji global. Powoduje ona, że na zmiennej będzie można operować tak samo, jak na lokalnej, a jeżeli funkcja zmieni jej wartość, po zakończeniu działania pozostanie ona zmieniona. Ćwiczenie 3.2. Napisz funkcję, która łańcuch sformatuje pogrubieniem.

28 //Listing 3-2.php <HTML> <HEAD> <META HTTP-EQUIV="Content- Type"CONTENT="text/html;charset=iso "> <TITLE>Pogrubienie</TITLE> </HEAD> <BODY> <? function pogrubienie ($lancuch) { return "<B>".$lancuch."</B>"; print ("To jest tekst zwykły,<br>"); print pogrubienie("a to jest tekst pogrubiony.");?> </BODY> </HTML> Rys Efekt działania funkcji.

29 Ćwiczenie 3.3. Napisz funkcję, która oblicza największy wspólny dzielnik dwóch liczb, i program sprawdzający jej działanie. //Listing 3-3.php <HTML> <HEAD> <META HTTP-EQUIV="Content- Type"CONTENT="text/html;charset=iso "> <TITLE>NWD</TITLE> </HEAD> <BODY> <? function nwd ($a, $b) { // Funkcja znajduje największy wspólny podzielnik liczb // a i b znajdziemy stosując odmian ę algorytmu Euklidesa. $a = 32; $b = 12; while ($a!= $b) ( if ($a < $b) { $pora = $a; $a = $b; $b = $pom; $a = $a - $b; return $a;

30 $a = 32; $b = 8; print ("Największy wspólny podzielnik liczb $a i $b to: "); print nwd ($a, $b) ;?> </BODY> </HTML> Rys Wynik działania funkcji. Ćwiczenie 3.4. Napisz funkcję, która dla parametru będącego imieniem, zgaduje płeć osoby. Zgadywanie niestety nie będzie skuteczne w 100%. Metoda będzie polegać na tym, że jeżeli ostatnią literą imienia będzie a", ocenimy, że mamy do czynienia z kobietą, jeżeli nie - z mężczyzną. Aby zrealizować ćwiczenie należy skorzystać z dwóch predefiniowanych funkcji. Funkcja substr pozwoli nam uzyskać dowolny podciąg tekstu. Aby jednak otrzymać ostatnią literę, musisz też znać jego długość. W tym celu wykorzystaj funkcję strlen. //Listing 3-4.php <HTML> <HEAD>

31 <META HTTP-EQUIV="Content- Type"CONTENT="text/html;charset=iso "> <TITLE>NWD</TITLE> </HEAD> <BODY> <? function plec ($imie) { // Funkcja próbuje zgadn ąć płe ć osoby na podstawie // ostatniej litery jej imienia. $ostatnialitera = substr($imie, strlen($imie)-1, 1); if ($ostatnialitera =='a') { return 'kobieta'; else { return 'mężczyzna'; print ("Mariusz - ".plec ('Mariusz'));?> </BODY> </HTML> Rys.3.4. Efekt działania skryptu.

32 Najczęściej używane gotowe funkcje: substr zwraca podłańcuch pierwszego parametru, zaczynający się od znaku o numerze określonym drugim parametrem i długości określonej trzecim. Należy pamiętać, że znaki są liczone od 0 strlen zwraca długości łańcucha określonego parametrem require włączenie pliku - argumentu do dokumentu include wykonanie instrukcji z pliku - argumentu pow($a, $b) podnosi $a do potęgi $b

33 Zadania 1. Napisz funkcję, która oblicza N! w sposób rekurencyjny. 2. Napisz funkcję, która oblicza metodą rekurencyjną naturalną potęgę (n) liczby całkowitej c, i program sprawdzający jej działanie. 3. Napisz program, który wypisuje wszystkie podzbiory zbioru liczb naturalnych mniejszych lub równych N.

34 Laboratorium 4 Tablice to złożone typy danych, które mogą zawierać wiele wartości indeksowanych przy użyciu liczb lub łańcuchów znaków. Dla przykładu, tablicę łańcuchów znaków można stworzyć w poniższy sposób: $var[0]="mariusz"; $var[1]="dymek"; Ćwiczenie 4.1. Napisz program, który zapełni tablicę 20 liczbami losowymi z zakresu 1 20, a następnie sprawdzi, ile razy występuje w niej dana liczba. //Listing 4-1.php <HTML> <HEAD> <META HTTP-EQUIV="Content- Type"CONTENT="text/html;charset=iso "> <TITLE>Zliczanie</TITLE> </HEAD> <BODY> <? // Program zapełnia tablic ę losowymi liczbami i sprawdza, // ile razy znajduje si ę w niej szukana liczba. $szukana = 5; srand(time()); for ($i=0; $i<20; $i++) { $liczby[$i] = rand()%20+1; $ileznaleziono = 0; for ($i=0; $i<20; $i++) { print "$liczby[$i] ";

35 if ($liczby [$i] == $szukana) { $ileznaleziono++;?> </BODY> </HTML> if ($ileznaleziono == 0) { print ("<P>Liczby $szukana w tablicy nie odnaleziono."); else { print ("<P>Liczb ę $szukana w tablicy odnaleziono ". "$ileznaleziono razy."); Ćwiczenie 4.2. Napisz program, który do tablicy dwuwymiarowej o wielkości 3x3 wpisze wartości losowe z zakresu 5 5 i policzy wyznacznik macierzy, którą tablica reprezentuje. Wyznacznik macierzy To wymiarach 3x3, gdzie T[i,j] oznacza element w i-tym wierszu i j-tej kolumnie liczy się według wzoru: W(T) = T[1,1]*T[2,2]*T[3,3] + T[1,2]*T[2,3]*T[3,1] + T[1,3]*T[2,1]*T[3,2] T[1,1]*T[2,3]*T[3,2] T[1,2]*T[2,1]*T[3,3] T[1,3]*T[2,2]*T[3,1] //Listing 4-2.php <HTML> <HEAD> <META HTTP-EQUIV="Content- Type"CONTENT="text/html;charset=iso "> <TITLE>Wyznacznik macierzy</title> </HEAD> <BODY>

36 <? // Oblicza wyznacznik macierzy 3x3. Macierz jest pamiętana w // tablicy dwuwymiarowej. srand(time()); print "<TABLE>"; for ($i=1; $i<=3; $i++) { print "<TR>"; for ($j=1; $j<=3; $j++) { print "<TD ALIGN=RIGHT>".($macierz [$i][$j] = rand()%11-5)."</td>"; print "</TR>"; print "</TABLE>"; $wyznacznik = $macierz[1][1]*$macierz[2][2]*$macierz[3][3] + $macierz[1][2]*$macierz[2][3]*$macierz[3][1] + $macierz[1][3]*$macierz[2][1]*$macierz[3][2] - $macierz[1][1]*$macierz[2][3]*$macierz[3][2] - $macierz[1][2]*$macierz[2][1]*$macierz[3][3] - $macierz[1][3]*$macierz[2][2]*$macierz[3][1]; print "Wyznacznik macierzy to $wyznacznik.";?> </BODY> </HTML>

37 Ćwiczenie 4.3. Napisz program, który wyświetla polską nazwę dnia tygodnia. Wykorzystamy funkcję date, która wywołana z parametrem "1" określa dzień tygodnia niestety po angielsku. Utworzymy więc tablicę asocjacyjną, w której zapamiętamy polskie nazwy dni tygodnia. Indeksem tej tablicy będą nazwy angielskie. //Listing 4-3.php <HTML> <HEAD> <META HTTP-EQUIV="Content- Type"CONTENT="text/html;charset=iso "> <TITLE>Dzie ń tygodnia</title> </HEAD> <BODY> <? // Program wypisuje nazw ę dnia tygodnia w języku polskim. Do // pamiętania polskich odpowiedników używamy tablicy asocjacyjnej. $konwersja['monday'] = 'poniedział ek' ; $konwersja['tuesday'] = 'wtorek'; $konwersja['wednesday'] = ' ś roda' ; $konwersja['thursday'] = 'czwartek'; $konwersja['friday'] = 'pią tek' ; $konwersja['saturday'] = 'sobota'; $konwersja['sunday'] = 'niedziela'; $dzientygodnia = date("l");

38 print "Dzi ś jest $konwersja[$dzientygodnia]." ;?> </BODY> </HTML> Ćwiczenie 4.4. Napisz program, który sprawdzi działanie poniższej pętli for. Zdefiniuj tablicę z nazwami dni tygodnia (polskimi i angielskimi), a następnie używając jej, wyświetl wszystkie. for (reset ($tablica); $klucz=key($tablica); next($tablica)) { print("$klucz, ".pos($tablica)."<br>"); Tablice asocjacyjne opierają się na następującej metodzie: tablice posiadają wewnętrzny wskaźnik, który można przesuwać, a także odwoływać się do nazwy indeksu (klucza) i wartości tablicy. reset next prev key pos ustawia wskaźnik na początku tablicy przesuwa wskaźnik do kolejnego elementu tablicy przesuwa wskaźnik do poprzedniego elementu tablicy zwraca wartość indeksu (klucz) aktualnie wskazywanego elementu zwraca wartość aktualnie wskazywanego elementu //Listing 4-4.php <HTML> <HEAD> <META HTTP-EQUIV="Content- Type"CONTENT="text/html;charset=iso ">

39 <TITLE>Dni tygodnia</title> </HEAD> <BODY> <? // Program wypisuje nazw ę dni tygodnia w języku polskim. Do // pamiętania polskich odpowiedników używamy tablicy asocjacyjnej. $tablica = array ('Monday' => 'poniedział ek', 'Tuesday' => 'wtorek', 'Wednesday' => ' ś roda', 'Thursday' => 'czwartek', 'Friday' => 'pią tek', 'Saturday' => 'sobota', 'Sunday' => 'niedziela'); for (reset ($tablica); $klucz=key($tablica); next ($tablica)) { print ("$klucz, ".pos($tablica)."<br>");?> </BODY> </HTML>

40 Zadania 1. Napisz program, który zapełni tablicę 20 liczbami losowymi z zakresu 1 20, a następnie uporządkuje je niemalejąco. 2. Napisz program, który wylosuje położenie Hetmana na szachownicy i wyświetli go, pokazując, które pola są w jego zasięgu. 3. Napisz program, który sprawdzi działanie poniższego zapisu. Można wykorzystać tablicę z nazwami dni tygodnia (polskimi i angielskimi) z ćwiczenia 4.4. while ($wpis=each($tablica)) { print $wpis['key'].", ".$wpis['value']."<br>";

41 Laboratorium 5 Podstawowym sposobem pobierania danych od użytkownika na stronach WWW są formularze. Formularz na stronie WWW ma następującą postać: <FORM ACTION="skrypt.php" METHOD=POST> <!-- Tu występuj ą pola formularza --> <INPUT TYPE=Submit VALUE="Wyślij"> </FORM> Metodą w formularzu może być także GET. Wysyłanie 'i Aby skonfigurować naszą instalację PHP do wysyłania poczty należy wykonać następującą czynność: w pliku c:\foxserv\php\php.ini odnajdujemy sekcję mail_function i w pozycji SMTP wpisujemy adres naszego serwery poczty, a w pozycji sendmail_from adres poczty elektronicznej. Do wysłania listu elektronicznego wykorzystamy funkcję mail. Funkcja ta w najprostszym przypadku ma postać: mail (adres_odbiorcy, temat, tresc); Aby wysłać - będziemy musieli pobrać od użytkownika informacje, takie jak tekst wiadomości czy adresat. Użyjemy do tego celu formularzy HTML. Formularze te składają się z różnego typu pól, które użytkownik może wypełniać. Podstawowe typy pól to: Typ pola text textarea submit checkbox radio select hidden tekst, jedna linia tekst, wiele linii Opis przycisk służący do wysyłania formularza lub do kasowania zawartości wypełnionych pól pole wyboru (wybór wiele z wielu") pole wyboru (wybór jeden z wielu") menu rozwijane lub lista pole niewidoczne (za jego pomocą możemy przesłać dodatkowe, niewidoczne dla użytkownika dane) Ćwiczenie 5.1.

42 Sporządzanie skryptu wyświetlającego formularz HTML służący do wysyłania wiadomości . Potrzebne nam będzie pole do wpisania adresata i tematu wiadomości (dwa zwykłe pola edycji - text) oraz pole z tekstem wiadomości (wielowierszowe pole edycji textarea). //Listing 5-1.php <HTML> <HEAD> <META HTTP-EQUIV="Content- Type"CONTENT="text/html;charset=iso "> <title> Wysyłanie a </title> </HEAD> <body bgcolor="#ffffff"> <form method="post" action="wyslij.php"> <table border="1" cellspacing="2" cellpadding="2"> <tr> <td><font face="arial"><b>do :</b></font></td> <td> <input type="text" name="do" size="25"> </td> </tr> <tr> <td><font face="arial"><b>temat :</b></font></td> <td> <input type="text" name="temat" size="25"> </td> </tr> <tr> <td><font face="arial"><b>tre ść :</b></font></td> <td> <textarea name="tresc" cols="50" rows="5"></textarea> </td> </tr> <tr> <td> <b> <input type="hidden" name="op" value="wyslij"> </b></td>

43 <td> <input type="submit" name="submit" value="wyslij"> </td> </tr> </table> </form> </body> </html> Rys Formularz HTML. Ćwiczenie 5.2. Utwórz program, który będzie wyświetlał formularz z jednym polem tekstowym, a po wysłaniu tego formularza wyświetli wpisaną wartość. W zależności od tego, czy zmienna $tekst przyjmuje jakąś wartość, czy też nie, wyświetlamy albo formularz, albo informację o tym, co w nim zostało wpisane. //Listing 5-2.php <HTML> <HEAD>

44 <META HTTP-EQUIV="Content- Type"CONTENT="text/html;charset=iso "> <TITLE>Formularz</TITLE> </HEAD> <BODY> <? // Drukuje formularz i jednocześnie odbiera i wyświetla wpisane // w nim dane. if ($tekst) { // jest wpisana jaka ś warto ść w formularzu?> print "Wpisana warto ść to <B>$tekst</B><BR>" ; print '<A HREF="4-01.php">Powrót do formularza</a>'; else { </BODY> </HTML> // nie ma wpisanych danych, wyświetlamy formularz print '<FORM ACTION="4-01.php" METHOD=GET>'; print '<INPUT TYPE="text" NAME="tekst">'; print '<INPUT TYPE="submit" VALUE="Wyś lij">' ; print '</FORM>'; Ćwiczenie 5.3. Popraw program z ćwiczenia 5.2 tak, by przetwarzał wpisane dane aby były bezpieczne w wyświetlaniu. Sprawdź jego działanie na przykładach z poprzedniego ćwiczenia. W zależności od ich charakteru funkcja powinna wykonywać różne operacje. Na początek wykorzystaj wbudowaną funkcję PHP, która znaczniki HTML-a przetworzy na "bezpieczne" do wyświetlenia. W szczególności zamieni znaki większości i mniejszości na > i <, co spowoduje, że wpisane znaczniki HTML nie zostaną przy ich dołączeniu do strony zinterpretowane, lecz wyświetlone.

45 htmlentities zamienia znaczniki HTML na kody "bezpieczne" do wyświetlenia na stronach WWW //Listing 5-3.php <HTML> <HEAD> <META HTTP-EQUIV="Content- Type"CONTENT="text/html;charset=iso "> <TITLE>Formularz</TITLE> </HEAD> <BODY> <? // Drukuje formularz i jednocześnie odbiera i wyświetla wpisane // w nim dane. Dane s ą przetworzone funkcj ą htmlentities.?> if ($tekst) { # jest wpisana jaka ś warto ść w formularzu $tekst = htmlentities ($tekst); print "Wpisana warto ść to <B>$tekst</B><BR>" ; print '<A HREF="4-02.php">Powrót do formularza</a>'; else { # nie ma wpisanych danych, wyświetlamy formularz </BODY> </HTML> print '<FORM ACTION="4-02.php" METHOD=GET>'; print '<INPUT TYPE="text" NAME="tekst">'; print '<INPUT TYPE="submit" VALUE="Wyś lij">' ; print '</FORM>';

46 Ćwiczenie 5.4. Utwórz program, który po podaniu odpowiedniej nazwy użytkownika i jego hasła wyświetli tajną informację. Jeżeli zaś wpisane dane będą nieprawidłowe informację o błędzie. Dane o użytkownikach i hasłach zapamiętamy jawnie w tablicy asocjacyjnej. Oczywiście użytkownik nie będzie mógł ich podejrzeć. //Listing 5-4.php <HTML> <HEAD> <META HTTP-EQUIV="Content- Type"CONTENT="text/html;charset=iso "> <TITLE>Informacja na hasło</title> </HEAD> <BODY> <? // Pobiera od użytkownika nazw ę i hasło. Jeżeli dane s ą prawidłowe, // wyświetla tajn ą informacj ę, a jeżeli nie - informacj ę o błędzie. $hasla = array ('admin' => 'emdi', 'tester' => 'emdi25', 'mariusz' => '1wgd7w3', 'dymek' => '56sghx'); if (($uzytkownik)&&($haslo)) {# wartości w formularzu s ą wpisane if ($hasla[$uzytkownik] == $haslo) { else print ("Tajna informacja to: <B>2*2=4</B>");

47 { print ("Wpisano niepoprawne dane o użytkowniku i haś le.<br>" ); print ('<A HREF="4-04.php">Wró ć </A> i spróbuj ponownie.' ); else { # nie ma wpisanych danych, wyświetlamy formularz print '<FORM ACTION="4-04.php" METHOD=POST>'; print '<TABLE><TR><TD>uż ytkownik: </TD><TD><INPUT TYPE="text" '; print "NAME=\"uzytkownik\" VALUE=\"$uzytkownik\"></TD></TR>"; print '<TR><TD>haslo: </TD><TD><INPUT TYPE="password" '; print 'NAME="haslo"></TD></TR></TABLE>'; print '<INPUT TYPE="submit" VALUE="Wyś lij">' ; print '</FORM>';?> </BODY> </HTML> Ćwiczenie 5.5. Napisz program, który wyświetli menu, a następnie pokaże wybraną przez użytkownika opcję. Wybraną przez użytkownika określimy za pomocą instrukcji switch. Na podstawie wartości zmiennej $opcja w $cowybrano zapamiętamy wybraną przez użytkownika opcję. //Listing 5-5.php <HTML> <HEAD> <META HTTP-EQUIV="Content-

48 Type"CONTENT="text/html;charset=iso "> <TITLE>Menu w formularzu</title> </HEAD> <BODY> <? // Wyświetla wybran ą przez użytkownika opcję if ($opcja) { # wartości w formularzu s ą wpisane switch ($opcja) { case 'pilka': $cowybrano = 'piłka noż na' ; break; case 'kosz': $cowybrano = 'koszykówka'; break; case 'siat': $cowybrano = 'siatkówka'; break; case 'nar': $cowybrano = 'narciarstwo'; break; case 'hokej': $cowybrano = 'hokej'; break; case 'boks': $cowybrano = 'boks'; break; case 'inny': $cowybrano = 'inny sport'; break; default: $cowybrano = 'niezidentyfikowana opcja'; break; print ("Użytkownik wybra ł opcj ę : <B>$cowybrano</B>.<BR>" ); print '<BR><A HREF="4-05.php">Powrót do formularza</a>'; else { # nie ma wpisanych danych, wyświetlamy formularz print '<FORM ACTION="4-05.php" METHOD=POST>'; print '<SELECT NAME="opcja">'; print '<OPTION SELECTED VALUE="">-> wybierz, jak sport lubisz:'; print '<OPTION VALUE="pilka">piłka noż na' ; print '<OPTION VALUE="kosz">koszykówka'; print '<OPTION VALUE="siat">siatkówka'; print '<OPTION VALUE="nar">narciarstwo'; print '<OPTION VALUE="hokej">hokej'; print '<OPTION VALUE="boks">boks'; print '<OPTION VALUE="inny">inny sport'; print '</SELECT>';

49 print '<INPUT TYPE="submit" VALUE="Wyś lij">' ; print '</FORM>';?> </BODY> </HTML>

50 Zadania: 1. Utwórz program, który będzie wyświetlał formularz z możliwością wpisania trzech danych: a, b i c, po czym wyświetli rozwiązanie równania kwadratowego: ax 2 +bx+c=0. 2. Napisz program, który w pierwszym formularzu zbierze informacje o tym, czym zainteresowany jest użytkownik, a w drugim, jak się nazywa. Po wpisaniu wszystkich potrzebnych danych program powinien wyświetlić zebrane informacje. 3. Popraw program z ćwiczenia 5.5 tak, by nazwy opcji i wartości zostały zapisane w tablicy asocjacyjnej, a zmiana treści formularza była możliwa poprzez poprawienie jej zawartości.

51 Laboratorium 6 Obsługa plików Najprostsza operacja na pliku składa się z trzech etapów: otwarcia pliku; zapisu lub odczytu z niego; zamknięcia pliku. Ćwiczenie 6.1. Napisz program, który w podkatalogu dane utworzy plik z Twoim imieniem i nazwiskiem. Na początku należy utworzyć katalog dane, w którym powstanie plik. Wykorzystamy trzy funkcje operujące na plikach. fopen, fputs, fclose. Poniżej znajduje się lista najczęściej używanych funkcji: fopen fputs fclose otwarcie pliku o nazwie określonej pierwszym parametrem, w trybie określonym drugim parametrem. Na przykład r oznacza otwarcie do odczytu, a w - do zapisu. Funkcja zwraca uchwyt pliku, poprzez który możemy się do niego odwoływać pozwala na zapis tekstu, który jest drugim parametrem, do pliku określonego uchwytem w pierwszym parametrze zamyka wskazany przez uchwyt plik fgets odczytuje z pliku wskazanego przez pierwszy argument liczbę znaków w bieżącym wierszu, określoną przez drugi argument file_exists zwraca prawdę, gdy istnieje plik, którego nazwę podaje się jako parametr, a fałsz w przeciwnym razie feof zwraca prawdę, gdy osiągnięto koniec pliku, określonego pierwszym parametrem, a fałsz w przeciwnym razie flock ustawia blokadę pliku, którego uchwyt jest pierwszym argumentem w trybie określonym przez drugi. Na przykład tryb 2 oznacza blokowanie na wyłączność, a tryb 3 odblokowanie fseek przesuwa wskaźnik położenia w pliku, którego uchwyt jest pierwszym argumentem, w miejsce wskazane przez drugi tempnam tworzy plik o unikalnej nazwie w katalogu określonym pierwszym parametrem. Początek nazwy można określić drugim parametrem. Plik zwraca nazwę utworzonego pliku unlink usuwa plik o nazwie podanej jako parametr file zapamiętuje całą zawartość pliku o nazwie podanej jako parametr

52 //Listing 6-1.php <HTML> <HEAD> <META HTTP-EQUIV="Content- Type"CONTENT="text/html;charset=iso "> <TITLE>Zapisujemy plik</title> </HEAD> <BODY> <? // Program tworzy plik tekstowy z imieniem i nazwiskiem. $plik = fopen ("dane/imienazwisko.txt"/ "w"); if (!($plik)) { print "BŁĄD: Nie da si ę utworzy ć pliku."; else { print "Plik z imieniem i nazwiskiem zosta ł utworzony."; fputs ($plik, "Mariusz Dymek"); fclose ($plik); )?> </BODY> </HTML> Ćwiczenie 6.2. Napisz program, który odczyta utworzony w poprzednim ćwiczeniu plik i wyświetli jego zawartość. Do odczytania danych z tego pliku użyjemy funkcji fgets: //Listing 6-2.php <HTML>

53 <HEAD> <META HTTP-EQUIV="Content- Type"CONTENT="text/html;charset=iso "> <TITLE>Odczytywanie pliku</title> </HEAD> <BODY> <? // Program odczytuje plik tekstowy z imieniem i nazwiskiem. $plik = fopen ("dane/imienazwisko.txt", "r"); if (!($plik)) { print "BŁĄD: Nie da si ę otworzy ć pliku." ; else { $wiersz = fgets ($plik, 255); print "Dane z pliku: <B>$wiersz</B>"; fclose ($plik);?> </BODY> </HTML>

54 Ćwiczenie 6.3. Napisz program, który odczyta zawartość głównej strony serwisu emdik/ i wyświetli ją, zamieniając najpierw kolor tła z niebieskawego na zielony. W celu wykonania tego ćwiczenia serwer, na którym uruchamiasz programy PHP, musi być podłączony do Internetu, aby program mógł odczytać autorską stronę. //Listing 6-3.php <? // Program odczytuje stron ę republika.pl/emdik i wyś wietla, // podmieniając kolory. $plik = fopen ("http://republika.pl/emdik", "r"); if (!($plik)) { print "BŁĄD: Nie da si ę otworzy ć strony ; else { while (!(feof($plik))) { $wiersz = (fgets ($plik, 255)); $wiersz = str_replace ('#E4E7ED', '#A2FFB5', $wiersz); $wiersz = str_replace (' SRC="','SRC="http://republika.pl/emdik', $wiersz); print "$wiersz";

55 fclose ($plik);?>

56 Zadania: 1. Napisz program, realizujący prosty licznik tekstowy, którego wskazanie jest pamiętane w pliku tekstowym. Pamiętaj o blokowaniu pliku. 2. Napisz program, który będzie wyświetlał przysłowie na dany dzień jedno wylosowane z wielu, zapamiętanych w pliku tekstowym. 3. Napisz program, który będzie zbierał informacje o użytkowniku. Dane niech będą zbierane w pliku czasowym, którego nazwa będzie przekazywana w ukrytym polu.

57 Laboratorium 7 PHP dysponuje grupą funkcji, które pozwalają otwierać, wyświetlać i manipulować obrazami w przeglądarkach WWW. Poniżej zostały omówione niektóre z tych funkcji: imagestring imageinterface imagecolortransparent createimageformgif imagesizex imagesizey getimagesize umieszcza tekst na rysunku, identyfikator tekstu jest pierwszym argumentem; następne to: numer czcionki, współrzędne x i y, od których rozpoczyna się pisanie, tekst to wypisania i jego kolor wskazuje, czy rysunek określony pierwszym parametrem ma być wyświetlony z przeplotem; jeżeli tak, drugi argument powinien mieć wartość TRUE dla rysunku określonego pierwszym argumentem ustala kolor, który będzie przezroczysty (stanowi on drugi argument) funkcja zwraca zmienną określającą rysunek zawarty w pliku, którego nazwa stanowi argument funkcji funkcja zwraca szerokość rysunku, określonego przez identyfikator parametr funkcja zwraca wysokość rysunku, określonego przez identyfikator parametr funkcja zwraca tablicę, zawierającą cztery pola: szerokość rysunku, jego wysokość, typ oraz łańcuch znaków do wykorzystania w znaczniku IMG Ćwiczenie 7.1. Utwórz program, który przygotuje i wyświetli ilustrację w formacie JPG, przy założeniu, że będzie to biała kratka na czarnym tle, o rozmiarach 100x100. W ćwiczeniu użyto następujących funkcji: header imagecreate imagecolorallocate imagefill imageline imagejpg imagegif imagepng przesyła nagłówek, określany jako parametr tworzy rysunek, parametry określają jego rozmiar w pikselach a funkcja zwraca zmienną, będącą jego identyfikatorem definiowanie koloru dla rysunku, kolejnymi argumentami są: zmienna, będąca identyfikatorem rysunku oraz składowe koloru: R, G i B (od 0 do 255). Funkcja zwraca identyfikator koloru. wypełnienie rysunku (identyfikator jest pierwszym argumentem) kolorem stanowiącym czwarty argument. Drugi i trzeci argument to współrzędne, od których rozpoczyna się wypełnianie obszaru (jako obszar rozumiane są piksele jednego koloru, a jakikolwiek inny kolor stanowi brzeg) w rysunku, którego identyfikatorem jest pierwszym argumentem, rysuje linię o współrzędnych początku i końca podanych w kolejnych czterech parametrach; kolor linii jest określony szóstym parametrem. wyświetlenie ilustracji w formacie jpg; argument funkcji jest identyfikatorem ilustracji wyświetlenie ilustracji w formacie gif argument funkcji jest identyfikatorem ilustracji wyświetlenie ilustracji w formacie png argument funkcji jest identyfikatorem ilustracji Całość programu przedstawia się następująco: //Listing 7-1.php <?

58 ?> // Program tworzy ilustracj ę z bia łą kratk ą na czarnym tle. header("content-type: image/jpeg"); $rysunek = imagecreate (100,100); $kolorbialy = imagecolorallocate ($rysunek, 255, 255, 255); $kolorczarny = imagecolorallocate ($rysunek, 0, 0, 0); imagefill ($rysunek, 0, 0, $kolorczarny); for ($i=1; $i<10; $i++) { imageline ($rysunek, 10*$i, 0, 10*$i, 100, $kolorbialy); imageline ($rysunek, 0, 10*$i, 100, 10*$i, $kolorbialy); imagejpeg ($rysunek); Efektem działania jest rysunek w formacie jpg o wymiarach 100x100, przedstawiający szachownicę. Ćwiczenie 7.2. Utwórz podobną szachownicę jak w ćwiczeniu 7.1. Grafikę wyświetl w formacie GIF, a każde pole szachownicy wypełnij losowym kolorem. W pętli, dla każdego ze 100 pól szachownicy, będziemy losować kolor. Jeżeli chcemy, by wartość każdej ze składowych zawierała się w przedziale 0-255, wywołanie funkcji powinno mieć następującą postać: imagecolorallocate($rysunek, rand()%256, rand()5256, rand()5256); Nie należy zapominać o zainicjowaniu generatora liczb pseudolosowych funkcją srand. //Listing 7-2.php <? // Program tworzy ilustracj ę z bia łą kratk ą. Każde pole // jest wypełnione losowym kolorem. header("content-type: image/gif"); $rysunek = imagecreate (100,100);

59 $kolorbialy = imagecolorallocate ($rysunek, 255, 255, 255); $kolorczarny = imagecolorallocate ($rysunek, 0, 0, 0); imagefill ($rysunek, 0, 0, $kolorczarny); for ($i=1; $i<10; $i++) { imageline ($rysunek, 10*$i, 0, 10*$i, 100, $kolorbialy); imageline ($rysunek, 0, 10*$i, 100, 10*$i, $kolorbialy);?> srand(time()); for ($x=0; $x<10; $x++) { for ($y=0; $y<10; $y++) { $kolorlosowy = imagecolorallocate ($rysunek, rand()%256, rand()%256, rand()%256); imagefill ($rysunek, 5+$x*10, 5+$y*10, $kolorlosowy); imagegif ($rysunek); Tworząc własne grafiki przy pomocy modułu GD, można kontrolować kolor każdego piksela (pamiętając o ograniczenia każdego z formatów graficznych). Ćwiczenie 7.3. Napisz program, który w rysunku w formacie GIF o wymiarach 100x100 wylosuje i zakoloruje 300 punktów czerwonych i 300 czarnych (punkty w kolejnych losowaniach mogą się powtarzać. Została wykorzystana funkcja, która określa kolor pojedynczego piksela.

60 imagesetpixe l dla rysunku określonego przez pierwszy argument definiuje kolor piksela o współrzędnych podanych przez drugi i trzeci argument. Czwarty argument określa kolor. //Listing 7-3.php <? // Program losuje 300 punktów czerwonych i czarnych i zaznacza je. header("content-type: image/gif"); $rysunek = imagecreate (100,100); $kolorbialy = imagecolorallocate ($rysunek, 255, 255, 255); $kolorczerwony = imagecolorallocate ($rysunek, 255, 0, 0); $kolorczarny = imagecolorallocate ($rysunek, 0, 0, 0); imagefill ($rysunek, 0, 0, $kolorbialy); srand(time()); for ($i=1; $i<=300; $i++) { imagesetpixel ($rysunek, rand()%100-1, rand()%100-1, $kolorczerwony); imagesetpixel ($rysunek, rand()%100-1, rand()%100-1, $kolorczarny);?> imagegif ($rysunek); Ćwiczenie 7.4. Napisz program, który w rysunku w formacie GIF o wymiarach 100x100 narysuje pięć okręgów czerwonych i pięć czarnych w losowych miejscach. Nie ma funkcji rysującej okrąg, ale można skorzystać z bardziej ogólnej, która rysuje wycinek elipsy.

61 imagearc rysuje wycinek elipsy; kolejnymi argumentami są: identyfikator rysunku, współrzędna x środka łuku, współrzędna y środka łuku, szerokość łuku, wysokość łuku, kąt początku, kąt końca, kolor. Jeżeli w wywołaniu funkcji szerokość i wysokość będą sobie równe, a łuk będzie pełen (od 0 do 360 stopni), to rysowany łuk okaże się okręgiem. //Listing 7-4.php <? // Program tworzy ilustracj ę z pięcioma czerwonymi i pięcioma // czarnymi okręgami. header("content-type: image/gif"); $rysunek = imagecreate (100,100); $kolorbialy = imagecolorallocate ($rysunek, 255, 255, 255); $kolorczerwony = imagecolorallocate ($rysunek, 255, 0, 0); $kolorczarny = imagecolorallocate ($rysunek, 0, 0, 0); imagefill ($rysunek, 0, 0, $kolorbialy); srand(time()); for ($i=1; $i<=5; $i++) { imagearc ($rysunek, rand()%100-1, rand()%100-1, 20, 20, 0, 360, $kolorczerwony); imagearc ($rysunek, rand()%100-1, rand()%100-1, 20, 20, 0, 360, $kolorczarny); imagegif ($rysunek);?> Ćwiczenie 7.5. Napisz program, który wyświetli formularz pozwalający wpisać liczbę. Po jej wpisaniu wyświetli graficzną prezentację wpisanej liczby.

62 Liczbę należy konstruować z poszczególnych cyfr. W katalogu cyfry należy umieścić wszystkie cyfry w formacie GIF o rozmiarze 15x20 pikseli. Wykorzystane są tutaj trzy nowe funkcje: imagecreatetromgif imagecopyresized imagedestroy tworzy rysunek na podstawie już istniejącego; argumentem jest nazwa pliku; funkcja zwraca identyfikator utworzonego rysunku kopiuje do rysunku określonego przez pierwszy argument inny określony przez drugi; następne argumenty określają: współrzędne x i y miejsca, w którym należy rysunek umieścić, współrzędne x i y oraz rozmiar dx i dy w rysunku docelowym i wielkość ddx i ddy w rysunku źródłowego (pozwalające na przeskalowanie) likwiduje identyfikator rysunku, jednocześnie zwalniając pamięć z nim związaną //Listing 7-5.php <? // Program wyświetla formularz, pozwalający wpisa ć liczb ę. //Jeżeli liczba jest wpisana, wyświetla j ą w postaci graficznej function printliczba ($numer) { // funkcja wyświetla liczb ę w postaci grafiki, korzystając // z grafik - cyfr, zawartych w katalogu cyfry. $liczbacyfr=1; $l = $numer; while ($l >= 10) { $liczbacyfr++; $l=floor($l/10); header("content-type: image/gif"); $rysunek = imagecreate (15*$liczbacyfr,20); for ($i=$liczbacyfr; $i>=1; $i--) { $cyfra = floor($numer/pow(10,$i-1)); $numer = $numer % pow(10,$i-1); $rysunekcyfra = imagecreatefromgif ("cyfry/$cyfra.gif"); imagecopyresized ($rysunek,$rysunekcyfra,($liczbacyfr-$i)*15,0,0,0,15,20,15,20); imagedestroy ($rysunekcyfra);

63 imagegif ($rysunek); if ($liczba>0) { # jest wpisana jaka ś warto ść w formularzu printliczba ($liczba); else { # nie ma wpisanych danych, wyświetlamy formularz print '<HTML>'; print ' <HEAD>'; print ' print ' print ' <META HTTP-EQUIV="Content-Type" CONTENT="text/html; '; charset=iso ">'; <TITLE>Liczba graficznie</title>'; print ' </HEAD>'; print ' <BODY>'; print ' print ' print ' print ' <FORM ACTION="5-05.php" METHOD=GET>'; <INPUT TYPE="text" NAME="liczba">'; <INPUT TYPE="submit" VALUE="Wyś lij">' ; </FORM>'; print ' </BODY>'; print '</HTML>';?> Do graficznej prezentacji danych nieoceniona jest funkcja, która rysuje wypełniony prostokąt. imagefilledrectangle rysuje wypełniony prostokąt; argumentami są: identyfikator rysunku, współrzędne x i y lewego górnego rogu, współrzędne x i y prawego dolnego rogu oraz kolor

64 Zadania 1. Napisz skrypt, który wypełni tablicę dziesięcioma losowymi liczbami z zakresu 0-9. Następnie zilustruj wylosowane wartości na wykresie słupkowym. 2. Napisz skrypt, który utworzy ilustrację (o rozmiarach 80x600). Zapełnij ją wieloma różnokolorowymi kwadratami. Narysuj też linię i wypisz jakiś tekst. Wyświetl ilustrację z przeplotem. 3. Napisz skrypt, który utworzy ilustrację z czerwonym kółkiem na białym tle. Spraw, by biały kolor był przezroczysty. Wyświetl ilustrację na stronie HTML, która posiada tło innego niż biały koloru. 4. Dla istniejącego rysunku wyświetl go w dokumencie HTML, automatycznie określając jego szerokość i wysokość, a także nadając atrybuty WIDTH i HEIGHT. 5. Napisz skrypt, który przeskalowuje ilustrację. Porównaj jakość takiej ilustracji z przeskalowaną za pomocą programu graficznego.

65 Laboratorium 8 Baza danych jest pewnym zbiorem informacji. MySQL jest systemem zarządzania bazą danych ( SZBD), który umożliwia w łatwy sposób dostęp do informacji i ich modyfikację. Podstawową jednostką organizacyjną w bazie danych jest tabela. Można ją sobie wyobrazić jako tablica, w której wierszach są umieszczane rekordy, opisujące pojedyncze obiekty. Poszczególne kolumny tabeli opisują pola danego rekordu, które zawierają odpowiednie dotyczące go informacje. Administracja bazą danych jest łatwa dzięki programowi PHPMyAdmin napisanemu w PHP systemowi administracji bazą danych. Ćwiczenie 8.1. Uruchom program PHPMyAdmin. Utwórz nową bazę danych o nazwie cwicz, a w niej tabelę ksiazkatelefoniczna. Aby uruchomić program PHPMyAdmin, połącz się z adresem (powinieneś mieć już uruchomiony serwer Apache i MySQL). Ukaże się program okienka administracyjnego.

66 Rys Panel administracyjny PHPMyAdmin. Po utworzeniu bazy danych pojawi się ona w lewej ramce.

67 Rys Efekt po utworzenia tabeli ksiazkatelefoniczna. Ćwiczenie 8.2. Korzystając z programu PHPMyAdmin, sprawdź zawartość tabeli książkatelefoniczna.

68 Rys Zawartość tabeli ksiazkatelefoniczna.

69 Ćwiczenie 8.3. Za pomocą PHP połącz się z bazą danych MySQL. Doprowadź do tego, by dane z tabeli ksiazkatelefoniczna zostały wyświetlone na stronie WWW. Rys Skrypt wyświetlający zawartość tabeli ksiazkatelefoniczna.

70 Zadania 1. Korzystając z programu PHPMyAdmin, wpisz dane do tabeli ksiazkatelefoniczna. 2. Uzupełnij program z ćwiczenia 8.3. o opcję kasowania danych. 3. Popraw skrypt z zadania 2 tak, by umożliwiał również dodawanie nowych rekordów. 4. Napisz program, który umożliwia dodawanie, usuwanie i również kasowanie nowych rekordów.

71 Laboratorium 9 Ćwiczenie 9.1. Utwórz licznik graficzny, który zlicza odwiedziny na stronach. Dla każdej ze stron powinno następować osobne zliczanie. Informacje mają być przechowywane w bazie danych MySQL. Kod skryptu powinien być następujący: //Listing 9-1.php <? // Licznik graficzny do wykorzystania w dokumentach HTML i PHP, // dane pamiętane w bazie danych. function printliczba ($numer) { // funkcja wyświetla liczb ę w postaci grafiki, // korzystając z grafik - cyfr, zawartych w katalogu cyfry. $liczbacyfr=1; $l = $numer; while ($l >= 10) { $liczbacyfr++; $l=floor($l/10); header("content-type: image/gif"); $rysunek = imagecreate (15*$liczbacyfr,20); for ($i=$liczbacyfr; $i>=1; $i--) { $cyfra = floor($numer/pow(10,$i-1));

72 $numer = $numer % pow(10,$i-1); $rysunekcyfra = imagecreatefromgif ("cyfry/$cyfra.gif"); imagecopyresized ($rysunek,$rysunekcyfra,($liczbacyfr-$i)*15,0,0,0,15,20,15,20); imagedestroy ($rysunekcyfra); imagegif ($rysunek); if (($GLOBALS["SERVER_NAME"]!= 'localhost') ($GLOBALS["HTTP_REFERER"] == '')) { printliczba (0); exit; $nazwapliku = addslashes(str_replace ('http://'. $GLOBALS["SERVER_NAME"],'',$GLOBALS["HTTP_REFERER"])); $nazwapliku = addslashes($nazwapliku); mysql_connect ("localhost", "root", "") or die ("Nie można połączy ć si ę z MySQL" ); mysql_select_db ("cwicz") or die ("Nie można połączy ć si ę z baz ą cwicz" ); $query = "SELECT liczba FROM liczniki ". "WHERE strona = '$nazwapliku';"; $wynik = mysql_query ($query); $rekord = mysql_fetch_array ($wynik); $ile = $rekord[0];

73 if ($ile>0) { $query = "UPDATE liczniki ". "SET liczba = liczba+1 ". "WHERE strona='$nazwapliku';"; else { $query = "INSERT INTO liczniki (strona, liczba)". "VALUES ('$nazwapliku', '1');";?> $wynik = mysql_query ($query); printliczba ($ile+1); Ćwiczenie 9.2. Napisz aplikację korzystającą z baz danych, aby pozwalała użytkownikom na nadsyłanie sugestii oraz na głosowanie jakie imię należy nadać Twojemu dziecku. Należy wykorzystać bazę danych MySQL. Poniżej przedstawiono strukturę tabeli imiona: CREATE TABLE imiona ( imie varchar(30) NOT NULL, glosy int(4), PRIMARY KEY(imie) ); Powyższe polecenie zostało zapisane w formacie akceptowanym przez MySQL i można go bezpośrednio użyć do stworzenia tabeli. Polecenie to definiuje pole tekstowe oraz pole przechowujące liczby całkowite. Pole tekstowe tabeli będzie używane do przechowywania sugerowanego imienia dziecka, natomiast pole całkowite będzie przechowywało ilość głosów złożonych na to imię. Kluczem

74 podstawowym tabeli jest pole imię, a to oznacza, że jego wartości będą unikalne (czyli w tabeli nie będzie mogło być dwóch rekordów o takiej samej wartości pola imię). Zakłada się, że aplikacja będzie wykonywała kilka rzeczy. Powinna posiadać zabezpieczenie uniemożliwiające osobie oddawanie większej ilości głosów w krótkich odstępach czasu. Zrealizować to można wykorzystując cookies o czasie ważności do końca bieżącej sesji. Aplikacja będzie również pokazywała mały wykres słupkowy, prezentujący procentową ilość głosów oddanych na poszczególne imiona. Wykres ten będzie tworzony przy użyciu niebieskiego obrazka typu GIF o wielkości 1 piksela, który zostanie odpowiednio przeskalowany przy użyciu atrybutu WIDTH oraz HEIGHT znacznika <IMG>. Innym rozwiązaniem byłoby wykorzystanie wbudowanych funkcji graficznych PHP do narysowania bardziej wymyślnego wykresu. Pozostałe części aplikacji to raczej oczywisty kod tworzący formularz i zapewniający obsługę bazy danych. Używane są także inne rozwiązania upraszczające kod aplikacji. Dla przykładu, zamiast odczytywać wszystkie głosy oddane na poszczególne imiona (w celu uzyskania sumarycznej ilości głosów koniecznej do obliczenia procentowej ilości głosów oddanych na poszczególne imiona) używamy wbudowanej funkcji bazy MySQL o nazwie SUM. Część kodu odpowiedzialna za wyświetlenie wszystkich imion wraz z odpowiadającymi jej wartościami procentowymi jest dość skomplikowana. Sprowadza się ona do pobierania wartości z bazy danych i przesyłania (w odpowiednich momentach) poprawnych znaczników tabel HTML. Poniżej przedstawiony został pełny kod aplikacji: //Listing 9-2.php <? if($glos && $juz_glosowano) SetCookie("juz_glosowano","1");?> <HTML> <HEAD> <TITLE>Jak nazwa ć dziecko</title> </HEAD> <BODY> <H3>Jak nazwa ć dziecko</h3> <FORM ACTION="dziecko.php3" METHOD="POST"> Sugeruj ę : <INPUT TYPE="text" NAME=nowe_imie><P>

75 <INPUT TYPE="submit" VALUE="Przeslij sugesti ę i /lub gł os" > <? mysql_pconnect("localhost","",""); $db="test"; $tabela="imiona"; if($nowe_imie) { if(!mysql_db_query($db,"insert into $tabela values ('$nowe_imie',0)")) { echo mysql_errno().":"; echo mysql_error()."<br>"; if($glos && $juz_glosowano) { echo "<FONT COLOR=#FF0000>Hej! Ty ju ż głosowałe ś.<br>"; echo "Twój głos jest nieważ ny.</font><p>\n" ; else if($glos) { if(!mysql_db_query($db,"update $tabela set glosy=glosy+1 where imie='$glos'")) { echo mysql_errno().": "; echo mysql_error()."<br>";

76 $wyniki = mysql_db_query($db, "select sum(glosy) as suma from $tabela"); if($wyniki) { $suma=(int) mysql_result($wyniki,0,"suma"); mysql_free_result($wyniki); $wyniki=mysql_db_query($db,"select * from $tabela order by glosy DESC"); echo"<table BORDER=0><TR><TH>Gł os</th>" ; echo"<th>imi ę</th><th COLSPAN=2>Gł osy</th>" ; echo"<tr>\n"; while($wiersz=mysql_fetch_row($wyniki)) { echo "<TR><TD ALIGN=center>"; echo"<input TYPE=radio NAME=glos"; echo "VALUE='$wiersz[0]'></TD><TD>"; echo $wiersz[0]."</td><td ALIGN=right>"; echo $wiersz[1]."</td><td>"; if($suma && (int)$wiersz[1]) { $per=(int)(100 * $wiersz[1]/$suma); echo "<IMG SRC=punkt.gif HEIGHT=12"; echo "WIDTH=$per> $per %</TD>"; echo "</TR>\n";

77 echo "</TABLE>"; mysql_free_result($wyniki);?> <INPUT TYPE="submit" VALUE="Prześlij sugestie i/lub gł os" > <INPUT TYPE="reset"> </FORM> </BODY> </HTML> Rys Efekt działania skryptu sondy.

78 Ćwiczenie 9.3. Utwórz prostą księgę gości, w której dane będą pamiętane w bazie danych. Na początku należy rozpocząć od utworzenia tabeli, w której będą pamiętane wpisy do księgi gości. Najlepiej posłużyć się skryptem PHPMyAdmin. Tabela ksiegagosci będzie miała trzy pola. W pierwszym, data, (typu DATETIME) będzie pamiętana data wpisu (na jej podstawie zdołamy chronologicznie uporządkować wpisy). Pozostałe dwa pola (osoba i wpis) to zwykłe pola tekstowe, w których będziemy pamiętać, kto i co wpisał do księgi gości. Każdy wpis do księgi będzie osobnym rekordem w bazie danych. //Listing 9-3.php <HTML> <HEAD> <META HTTP-EQUIV="Content- Type"CONTENT="text/html;charset=iso "> <TITLE>Prosta ksiega gości działająca w oparciu o baz ę danych</title> </HEAD> <BODY> <? //Skrypt realizuje zapis informacji w księdze gości w bazie danych. mysql_connect ("localhost", "root", "") or die ("Nie można połączy ć si ę z MySQL" ); mysql_select_db ("cwicz") or die ("Nie można połączy ć si ę z baz ą cwicz" ); $osoba = addslashes(nl2br(htmlentities ($osoba))); $wpis = addslashes(nl2br(htmlentities ($wpis))); if ($osoba && $wpis) {

79 // s ą informacje do wpisania do księgi gości $query = "INSERT INTO ksiegagosci (data, osoba, wpis) ". "VALUES (now(), '$osoba', '$wpis');"; $wynik = mysql_query ($query); // jeżeli jest ju ż księga, trzeba j ą wypisa ć, niezależnie od tego, // czy jest nowy wpis. $wynik = mysql_query("select * FROM ksiegagosci ORDER BY data DESC;"); while ($rekord = mysql_fetch_array ($wynik)) { print "<DL><DT>".stripslashes($rekord[2])."<DD><B>". stripslashes($rekord[1]).",</b> <I>".$rekord[0]."</I></DL>\n"; $sawpisy = 1; if ($sawpisy) { print "<HR>";?> <!-- Na dole jest formularz z możliwości ą dopisania si ę do księgi--> <FORM METHOD="POST"> <TABLE> <TR><TD>Osoba:</TD><TD><INPUT TYPE="text" NAME="osoba"></TD></TR> <TR><TD>Wpis:</TD><TD> <TEXTAREA NAME="wpis" COLS=45 ROWS=4 wrap="virtual"></textarea> </TD></TR> </TABLE>

80 <INPUT TYPE="submit" VALUE="wyś lij" > </FORM> </BODY> </HTML> Rys. 9.2 Tworzenie tabeli ksiegagosci. Ćwiczenie 9.4. Utwórz w bazie danych tabelę pamiętającą newsy. Wypełnij ją kilkunastoma informacjami. Następnie napisz skrypt, który pozwoli na ich wyświetlanie i nawigację pomiędzy nimi, a także na ich zamieszczanie na stronie HTML. Tabelę, w której będą pamiętane informacje, nazwiemy news. Do jej utworzenia należy użyć PHPMyAdmin.

81 Rys Zakładanie tabeli news. Pierwszym z siedmiu pól tabeli jest numer newsa (o nazwie nr). Należy wybrać dla niego opcję auto_increment w kolumnie Extra, a także zaznaczyć cechy Index i Unique. Kolejne pola są następujące: data informacji, tytuł, krótka treść do zamieszczenia w spisie, pełna treść i osoba, która ją wpisała. Ostatnie pole (ok.) będzie ono znacznikiem, czy informacja została zaakceptowana przez administratora serwisu (i w związku z tym może zostać wyświetlona). Po utworzeniu tabeli wypełnij ją danymi, również używając skryptu PHPMyAdmin. Nie wpisuj żadnej wartości w pole nr. Ponieważ wybraliśmy auto_increment, pole to wypełni się samo odpowiednim indeksem. //listing 9-4html.php <? // Skrypt wyświetla nagłówki czterech najnowszych informacji, // do wykorzystania mechanizmem SSI. mysql_connect ("localhost", "root", "") or die ("Nie można połączy ć si ę z MySQL" ); mysql_select_db ("cwicz") or die ("Nie można połączy ć si ę z baz ą cwicz" );

Dokonaj analizy poniŝszego kodu i na jego podstawie wyświetl w oknie przeglądarki swoje Imię oraz Nazwisko przy uŝyciu instrukcji echo i print

Dokonaj analizy poniŝszego kodu i na jego podstawie wyświetl w oknie przeglądarki swoje Imię oraz Nazwisko przy uŝyciu instrukcji echo i print Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 5 1. Podstawy tworzenia stron w PHP Dokonaj analizy poniŝszego kodu i na jego podstawie wyświetl w oknie przeglądarki swoje Imię oraz Nazwisko przy

Bardziej szczegółowo

Dynamiczne przetwarzanie stron. dr Beata Kuźmińska-Sołśnia

Dynamiczne przetwarzanie stron. dr Beata Kuźmińska-Sołśnia Dynamiczne przetwarzanie stron dr Beata Kuźmińska-Sołśnia KLIENT Witaj INTERNET SERWER Plik HTML Witaj wyświetlanie przez przeglądarkę Witaj! Serwer WWW komputer

Bardziej szczegółowo

Michał Bielecki, KNI 'BIOS'

Michał Bielecki, KNI 'BIOS' Michał Bielecki, KNI 'BIOS' PHP czyli język typu client side 1. przeglądarka www żąda dokumentu o rozszerzeniu.php 2. serwer odbiera żądanie i przesyła do parsera php 3. parser php znajduje żądany plik

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

Informacja o języku. Osadzanie skryptów. Instrukcje, komentarze, zmienne, typy, stałe. Operatory. Struktury kontrolne. Tablice.

Informacja o języku. Osadzanie skryptów. Instrukcje, komentarze, zmienne, typy, stałe. Operatory. Struktury kontrolne. Tablice. Informacja o języku. Osadzanie skryptów. Instrukcje, komentarze, zmienne, typy, stałe. Operatory. Struktury kontrolne. Tablice. Język PHP Język interpretowalny, a nie kompilowany Powstał w celu programowania

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

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

Lekcja 10. Uprawnienia. Dołączanie plików przy pomocy funkcji include() Sprawdzanie, czy plik istnieje przy pmocy funkcji file_exists() Paweł Gmys PHP strona 1 Lekcja 10 Uprawnienia Aby skrypt PHP mógł odwołać się do pliku, musi mieć odpowiednie uprawnienia. Szczegóły są zależne od serwera. Najczęściej chyba skrypt ma uprawnienia takie,

Bardziej szczegółowo

SSK - Techniki Internetowe

SSK - Techniki Internetowe SSK - Techniki Internetowe Ćwiczenie 2. Obsługa formularzy. Operatory, instrukcje warunkowe oraz instrukcje pętli w PHP. Obsługa formularzy Skryptu PHP moŝna uŝyć do obsługi formularza HTML. Aby tego dokonać,

Bardziej szczegółowo

INSTALACJA I KONFIGURACJA SERWERA PHP.

INSTALACJA I KONFIGURACJA SERWERA PHP. LABORATORIUM 0 INSTALACJA I KONFIGURACJA SERWERA PHP. W celu poprawnego wykonywania zadań na laboratorium konieczne jest zainstalowanie na komputerze wyposażonym w system operacyjny Windows następujących

Bardziej szczegółowo

Szablon główny (plik guestbook.php) będzie miał postać:

Szablon główny (plik guestbook.php) będzie miał postać: Skrypt: Księga gości Skrypt generujący księgę gości będzie się składał z trzech części: szablonu głównego, który należy zapisać pod nazwą guestbook.php, formularza służącego do dodawania wpisów, 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

Laboratorium 1 Wprowadzenie do PHP

Laboratorium 1 Wprowadzenie do PHP Laboratorium 1 Wprowadzenie do PHP Ćwiczenie 1. Tworzenie i uruchamianie projektu PHP w Netbeans Tworzenie projektu Uruchom środowisko NetBeans. Stwórz nowy projekt typu PHP Application (File->New Project,

Bardziej szczegółowo

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre) Uwagi dotyczące notacji kodu! Wyrazy drukiem prostym -- słowami języka VBA. Wyrazy drukiem pochyłym -- inne fragmenty kodu. Wyrazy w [nawiasach kwadratowych] opcjonalne fragmenty kodu (mogą być, ale nie

Bardziej szczegółowo

Metody numeryczne Laboratorium 2

Metody numeryczne Laboratorium 2 Metody numeryczne Laboratorium 2 1. Tworzenie i uruchamianie skryptów Środowisko MATLAB/GNU Octave daje nam możliwość tworzenia skryptów czyli zapisywania grup poleceń czy funkcji w osobnym pliku i uruchamiania

Bardziej szczegółowo

Cw.12 JAVAScript w dokumentach HTML

Cw.12 JAVAScript w dokumentach HTML Cw.12 JAVAScript w dokumentach HTML Wstawienie skryptu do dokumentu HTML JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.skrypty Java- Script mogą być zagnieżdżane

Bardziej szczegółowo

Podstawy JavaScript ćwiczenia

Podstawy JavaScript ćwiczenia Podstawy JavaScript ćwiczenia Kontekst:

Bardziej szczegółowo

5-6. Struktura dokumentu html. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów

5-6. Struktura dokumentu html. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów Aplikacje internetowe KL. III Rok szkolny: 013/01 Nr programu: 31[01]/T,SP/MENIS/00.06.1 Okres kształcenia: łącznie ok. 170 godz. lekcyjne Moduł Bok wprowadzający 1. Zapoznanie z programem nauczania i

Bardziej szczegółowo

14. POZOSTAŁE CIEKAWE FUNKCJE

14. POZOSTAŁE CIEKAWE FUNKCJE 14. POZOSTAŁE CIEKAWE FUNKCJE Funkcji jest cała masa, których nie poruszono w tym kursie. Bardziej ciekawe postaram się właśnie w tej lekcji omówić. Na pewno wielu z Was, czeka z niecierpliwością na funkcję

Bardziej szczegółowo

PHP w-3. Sterowanie w PHP

PHP w-3. Sterowanie w PHP PHP w-3 Sterowanie w PHP 1 INSTRUKCE STERUJĄCE W PHP podobnie jak w innych językach programowania wykorzystuje się instrukcje sterujące: 1. Instrukcja warunkowa If-else 2. Instrukcja wyboru Switch 3. Pętla

Bardziej szczegółowo

Zakres treści Czas. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów

Zakres treści Czas. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów Aplikacje internetowe KL. III Rok szkolny: 011/01 Nr programu: 31[01]/T,SP/MENIS/004.06.14 Okres kształcenia: łącznie ok. 180 godz. lekcyjne Wojciech Borzyszkowski Zenon Kreft Moduł Bok wprowadzający Podstawy

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

Bazy Danych i Usługi Sieciowe

Bazy Danych i Usługi Sieciowe Bazy Danych i Usługi Sieciowe Język PHP Paweł Witkowski Wydział Matematyki, Informatyki i Mechaniki Jesień 2011 P. Witkowski (Wydział Matematyki, Informatyki i Mechaniki) BDiUS w. VIII Jesień 2011 1 /

Bardziej szczegółowo

JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.

JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania. IŚ ćw.8 JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania. Skrypty JavaScript są zagnieżdżane w dokumentach HTML. Skrypt JavaScript

Bardziej szczegółowo

Technologie informacyjne lab. 4

Technologie informacyjne lab. 4 Technologie informacyjne lab. 4 Cel ćwiczenia: Zapoznanie się z komunikacją ze zdalnym serwerem w sieci na przykładzie bezpiecznego serwera SSH. Wstępne zapoznanie się z ideą certyfikatów. Praca z edytorem

Bardziej szczegółowo

Wstęp 5 Rozdział 1. Pierwsze spojrzenie 7

Wstęp 5 Rozdział 1. Pierwsze spojrzenie 7 Wstęp 5 Rozdział 1. Pierwsze spojrzenie 7 Client-side vs. server-side 7 Witryna PHP 13 Apache, PHP, MySQL konta w internecie 17 Gotowe skrypty 18 Rozdział 2. Instalacja i konfiguracja 21 Rozdział 3. Podstawy

Bardziej szczegółowo

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach?

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach? Część XVIII C++ Funkcje Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach? Umiemy już podzielić nasz

Bardziej szczegółowo

Serwer WWW Apache. http://httpd.apache.org/ Plik konfiguracyjny httpd.conf Definiujemy m.in.: Aktualne wersje 2.4.6, 2.2.25, 2.0.65 zakończony projekt

Serwer WWW Apache. http://httpd.apache.org/ Plik konfiguracyjny httpd.conf Definiujemy m.in.: Aktualne wersje 2.4.6, 2.2.25, 2.0.65 zakończony projekt Serwer WWW Apache http://httpd.apache.org/ Plik konfiguracyjny httpd.conf Definiujemy m.in.: Katalog który ma być serwowany Moduły, które mają zostać uruchomione na serwerze m.in. PHP, mod_rewrite Wirtualne

Bardziej szczegółowo

Konstrukcje warunkowe Pętle

Konstrukcje warunkowe Pętle * Konstrukcje warunkowe Pętle *Instrukcja if sposób na sprawdzanie warunków *Konstrukcja: if(warunek) else { instrukcje gdy warunek spełniony} {instrukcje gdy warunek NIE spełniony} * 1. Wylicz całkowity

Bardziej szczegółowo

ZAAWANSOWANE BAZY DANYCH I HURTOWNIE DANYCH MySQL, PHP

ZAAWANSOWANE BAZY DANYCH I HURTOWNIE DANYCH MySQL, PHP ZAAWANSOWANE BAZY DANYCH I HURTOWNIE DANYCH MySQL, PHP Zad. 1 Dla każdego zamówienia wyznaczyć jego wartość. Należy podać numer zamówienia oraz wartość. select z.id_zamowienia, sum(ilosc*cena) as wartosc

Bardziej szczegółowo

Aplikacje WWW - laboratorium

Aplikacje WWW - laboratorium Aplikacje WWW - laboratorium Język JavaScript Celem ćwiczenia jest przygotowanie formularza na stronie WWW z wykorzystaniem języka JavaScript. Formularz ten będzie sprawdzany pod względem zawartości przed

Bardziej szczegółowo

Funkcje i instrukcje języka JavaScript

Funkcje i instrukcje języka JavaScript Funkcje i instrukcje języka JavaScript 1. Cele lekcji a) Wiadomości Uczeń : zna operatory i typy danych języka JavaScript, zna konstrukcję definicji funkcji, zna pętlę If i For, Do i While oraz podaje

Bardziej szczegółowo

Krótki kurs JavaScript

Krótki kurs JavaScript Krótki kurs JavaScript Java Script jest językiem wbudowanym w przeglądarkę. Gdy ma się podstawy nabyte w innych językach programowania jest dość łatwy do opanowania. JavaScript jest stosowany do powiększania

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

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

Systemy internetowe. Wykład 3 PHP. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science Systemy internetowe Wykład 3 PHP PHP - cechy PHP (Hypertext Preprocessor) bardzo łatwy do opanowania, prosta składnia, obsługuje wymianę danych z różnymi systemami baz danych pozwala na dynamiczne generowanie

Bardziej szczegółowo

JAVAScript w dokumentach HTML - przypomnienie

JAVAScript w dokumentach HTML - przypomnienie Programowanie obiektowe ćw.1 JAVAScript w dokumentach HTML - przypomnienie JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania. Skrypty JavaScript są zagnieżdżane w

Bardziej szczegółowo

Aplikacje WWW - laboratorium

Aplikacje WWW - laboratorium Aplikacje WWW - laboratorium JavaServer Pages Celem ćwiczenia jest zbudowanie kilku prostych stron internetowych z użyciem technologii JSP. Podczas ćwiczenia wykorzystany zostanie algorytm sortowania bąbelkowego

Bardziej szczegółowo

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

Należy ściągnąć oprogramowanie Apache na platformę Programowanie Internetowe Język PHP - wprowadzenie 1. Instalacja Oracle+Apache+PHP Instalacja Apache, PHP, Oracle Programy i ich lokalizacja Oracle Database 10g Express Edition10.2 http://www.oracle.com/technology/products/database/

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

do instrukcja while (wyrażenie);

do instrukcja while (wyrażenie); Instrukcje pętli -ćwiczenia Instrukcja while Pętla while (póki) powoduje powtarzanie zawartej w niej sekwencji instrukcji tak długo, jak długo zaczynające pętlę wyrażenie pozostaje prawdziwe. while ( wyrażenie

Bardziej szczegółowo

Instrukcje sterujące mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2012

Instrukcje sterujące mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2012 Instrukcje sterujące mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2012 if (warunek) instrukcja1; if (warunek) instrukcja1; else instrukcja2; if (warunek) instrukcja1; else if (warunek2)

Bardziej szczegółowo

JAVAScript w dokumentach HTML (1)

JAVAScript w dokumentach HTML (1) JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania. Skrypty JavaScript mogą być zagnieżdżane w dokumentach HTML. Instrukcje JavaScript

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

Algorytm. a programowanie -

Algorytm. a programowanie - Algorytm a programowanie - Program komputerowy: Program komputerowy można rozumieć jako: kod źródłowy - program komputerowy zapisany w pewnym języku programowania, zestaw poszczególnych instrukcji, plik

Bardziej szczegółowo

JAVASCRIPT (cz. IV) ĆWICZENIA DO SAMODZIELNEGO WYKONANIA materiały dydaktyczne dla słuchaczy opracowanie: 2004-2007 by Arkadiusz Gawełek, Łódź

JAVASCRIPT (cz. IV) ĆWICZENIA DO SAMODZIELNEGO WYKONANIA materiały dydaktyczne dla słuchaczy opracowanie: 2004-2007 by Arkadiusz Gawełek, Łódź JAVASCRIPT (cz. IV) ĆWICZENIA DO SAMODZIELNEGO WYKONANIA Ćwiczenie 1 obliczanie daty Wielkanocy Napisz skrypt, który: poprosi użytkownika o podanie roku z przedziału 1900..2099 sprawdzi, czy podana wartość

Bardziej szczegółowo

Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje

Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje Opracował: Zbigniew Rudnicki Powtórka z poprzedniego wykładu 2 1 Dokument, regiony, klawisze: Dokument Mathcada realizuje

Bardziej szczegółowo

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02 METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się

Bardziej szczegółowo

Być może jesteś doświadczonym programistą, biegle programujesz w Javie,

Być może jesteś doświadczonym programistą, biegle programujesz w Javie, Kompendium PHP 01 Być może jesteś doświadczonym programistą, biegle programujesz w Javie, C++, Pythonie lub jakimś innym języku programowania, których jak myślę, powstało już tyle, że chyba nie ma osoby,

Bardziej szczegółowo

HTML (HyperText Markup Language) hipertekstowy język znaczników

HTML (HyperText Markup Language) hipertekstowy język znaczników HTML (HyperText Markup Language) hipertekstowy język znaczników Struktura dokumentu tytuł strony

Bardziej szczegółowo

Pliki. Informacje ogólne. Obsługa plików w języku C

Pliki. Informacje ogólne. Obsługa plików w języku C Pliki Informacje ogólne Plik jest pewnym zbiorem danych, zapisanym w systemie plików na nośniku danych (np. dysku twardym, pendrive, płycie DVD itp.). Może posiadać określone atrybuty, a odwołanie do niego

Bardziej szczegółowo

Napisy w PHP. Drukowanie napisów instrukcją echo

Napisy w PHP. Drukowanie napisów instrukcją echo Napisy w PHP. Drukowanie napisów instrukcją echo 1. Ćwiczenia do samodzielnego wykonania Wszystkie poniższe ćwiczenia należy samodzielnie wykonać wpisując w edytorze bez stosowania techniki kopiuj-wklej.

Bardziej szczegółowo

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych Szkolenie przeznaczone jest dla osób chcących poszerzyć swoje umiejętności o tworzenie rozwiązań internetowych w PHP. Zajęcia zostały przygotowane w taki sposób, aby po ich ukończeniu można było rozpocząć

Bardziej szczegółowo

Dlaczego PHP? - zalety

Dlaczego PHP? - zalety Dlaczego PHP? - zalety (+) bezpieczeństwo kodu - PHP wykonuje się po stronie serwera ( niezależność od przeglądarki) (+) bezpieczeństwo danych - wykorzystanie ssl i HTTPS (+) PHP jako moduł serwera WWW

Bardziej szczegółowo

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane Stałe Oprócz zmiennych w programie mamy też stałe, które jak sama nazwa mówi, zachowują swoją wartość przez cały czas działania programu. Można

Bardziej szczegółowo

Formularze w PHP dla początkujących

Formularze w PHP dla początkujących Instrukcja numer 07 Formularze w PHP dla początkujących Zaawansowane techniki tworzenie stron WWW Bazy danych w PHP dla początkujących Formularze stworzone w HTML mogą służyć jako metoda pobierania informacji

Bardziej szczegółowo

Instrukcja zarządzania kontem przedsiębiorstwa w serwisie internetowym www.esiop.legionowo.pl

Instrukcja zarządzania kontem przedsiębiorstwa w serwisie internetowym www.esiop.legionowo.pl Instrukcja zarządzania kontem przedsiębiorstwa w serwisie internetowym www.esiop.legionowo.pl Rejestracja w serwisie: Aby utworzyć konto w serwisie, należy otworzyć w przeglądarce internetowej stronę www.esiop.legionowo.pl,

Bardziej szczegółowo

Rozdział ten zawiera informacje o sposobie konfiguracji i działania Modułu OPC.

Rozdział ten zawiera informacje o sposobie konfiguracji i działania Modułu OPC. 1 Moduł OPC Moduł OPC pozwala na komunikację z serwerami OPC pracującymi w oparciu o model DA (Data Access). Dzięki niemu można odczytać stan obiektów OPC (zmiennych zdefiniowanych w programie PLC), a

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

I - Microsoft Visual Studio C++

I - Microsoft Visual Studio C++ I - Microsoft Visual Studio C++ 1. Nowy projekt z Menu wybieramy File -> New -> Projekt -> Win32 Console Application w okienku Name: podajemy nazwę projektu w polu Location: wybieramy miejsce zapisu i

Bardziej szczegółowo

SIECI KOMPUTEROWE I BAZY DANYCH

SIECI KOMPUTEROWE I BAZY DANYCH Akademia Górniczo-Hutnicza Wydzia ł Inżynierii Mechanicznej i Robotyki Katedra Robotyki i Dynamiki Maszyn SIECI KOMPUTEROWE I BAZY DANYCH ĆWICZENIE NR 9 Temat: CEL ĆWICZENIA: Nabycie umiejętności tworzenia

Bardziej szczegółowo

Języki skryptowe w programie Plans

Języki skryptowe w programie Plans Języki skryptowe w programie Plans Warsztaty uŝytkowników programu PLANS Kościelisko 2010 Zalety skryptów Automatyzacja powtarzających się czynności Rozszerzenie moŝliwości programu Budowa własnych algorytmów

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

Programowanie WEB PODSTAWY HTML

Programowanie WEB PODSTAWY HTML Programowanie WEB PODSTAWY HTML Najprostsza strona HTML tytuł strony To jest moja pierwsza strona WWW. tytuł strony

Bardziej szczegółowo

7. Dynamiczne generowanie grafiki

7. Dynamiczne generowanie grafiki 7. Dynamiczne generowanie grafiki 7.1. Biblioteka GD Dynamiczne generowanie kodu HTML to podstawowe zastosowanie języka PHP. Często jednak to nie wystarczy i mieszanka: dynamiczny HTML plus statyczna grafika,

Bardziej szczegółowo

Wstęp do Programowania, laboratorium 02

Wstęp do Programowania, laboratorium 02 Wstęp do Programowania, laboratorium 02 Zadanie 1. Napisać program pobierający dwie liczby całkowite i wypisujący na ekran największą z nich. Zadanie 2. Napisać program pobierający trzy liczby całkowite

Bardziej szczegółowo

Podstawy programowania w języku Visual Basic dla Aplikacji (VBA)

Podstawy programowania w języku Visual Basic dla Aplikacji (VBA) Podstawy programowania w języku Visual Basic dla Aplikacji (VBA) Instrukcje Język Basic został stworzony w 1964 roku przez J.G. Kemeny ego i T.F. Kurtza z Uniwersytetu w Darthmouth (USA). Nazwa Basic jest

Bardziej szczegółowo

Wysyłanie pliku na serwer. Plik na serwerze.

Wysyłanie pliku na serwer. Plik na serwerze. Wysyłanie pliku na serwer Dzięki PHP możemy w łatwy i przyjemny sposób obsłużyć pliki uploadowane na serwer. Jednak, by prawidłowo wysłać plik, niezbędny będzie odpowiedni formularz HTML. Poniżej przedstawię

Bardziej szczegółowo

Instrukcja wprowadzania graficznych harmonogramów pracy w SZOI Wg stanu na 21.06.2010 r.

Instrukcja wprowadzania graficznych harmonogramów pracy w SZOI Wg stanu na 21.06.2010 r. Instrukcja wprowadzania graficznych harmonogramów pracy w SZOI Wg stanu na 21.06.2010 r. W systemie SZOI została wprowadzona nowa funkcjonalność umożliwiająca tworzenie graficznych harmonogramów pracy.

Bardziej szczegółowo

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka 1. Kompilacja aplikacji konsolowych w środowisku programistycznym Microsoft Visual Basic. Odszukaj w menu startowym systemu

Bardziej szczegółowo

Rekurencja (rekursja)

Rekurencja (rekursja) Rekurencja (rekursja) Rekurencja wywołanie funkcji przez nią samą wewnątrz ciała funkcji. Rekurencja może być pośrednia funkcja jest wywoływana przez inną funkcję, wywołaną (pośrednio lub bezpośrednio)

Bardziej szczegółowo

Komponent Formularz. Rys. 1. Strona programu Joomla - http://joomla.pl. Rys. 2. Instalacja komponentu

Komponent Formularz. Rys. 1. Strona programu Joomla - http://joomla.pl. Rys. 2. Instalacja komponentu Komponent Formularz Instalacja Aby wykorzystać gotowy komponent do tworzenia formularzy w systemie CMS (Joomla), naleŝy uprzednio zaimplementować go, postępując według poniŝszego schematu: 1. Wejść na

Bardziej szczegółowo

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 6 12. Prosta obsługa Bazy w PHP

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 6 12. Prosta obsługa Bazy w PHP Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 6 12. Prosta obsługa Bazy w PHP 12.1 Wprowadź i zanalizuj mechanizm działania prostej bazy danych na poniŝszym przykładzie ksiąŝki telefonicznej

Bardziej szczegółowo

VinCent Administrator

VinCent Administrator VinCent Administrator Moduł Zarządzania podatnikami Krótka instrukcja obsługi ver. 1.01 Zielona Góra, grudzień 2005 1. Przeznaczenie programu Program VinCent Administrator przeznaczony jest dla administratorów

Bardziej szczegółowo

PROGRAM NAUCZANIA DLA ZAWODU TECHNIK INFORMATYK, 351203 O STRUKTURZE PRZEDMIOTOWEJ

PROGRAM NAUCZANIA DLA ZAWODU TECHNIK INFORMATYK, 351203 O STRUKTURZE PRZEDMIOTOWEJ PROGRAM NAUCZANIA DLA ZAWODU TECHNIK INFORMATYK, 351203 O STRUKTURZE PRZEDMIOTOWEJ Systemy baz danych 1. 2 Wstęp do baz danych 2. 2 Relacyjny model baz danych. 3. 2 Normalizacja baz danych. 4. 2 Cechy

Bardziej szczegółowo

Temat: Arkusze kalkulacyjne. Program Microsoft Office Excel. Podstawy

Temat: Arkusze kalkulacyjne. Program Microsoft Office Excel. Podstawy Temat: Arkusze kalkulacyjne. Program Microsoft Office Excel. Podstawy Arkusz kalkulacyjny to program przeznaczony do wykonywania różnego rodzaju obliczeń oraz prezentowania i analizowania ich wyników.

Bardziej szczegółowo

I. Informacje ogólne. Jednym z takich systemów jest Mambo.

I. Informacje ogólne. Jednym z takich systemów jest Mambo. MAMBO (CMS) I. Informacje ogólne CMS, Content Management System ("system zarządzania treścią") jest to jedna lub zestaw aplikacji internetowych pozwalających na łatwe utworzenie oraz późniejszą aktualizację

Bardziej szczegółowo

FORMULARZE Formularz ma formę ankiety, którą można wypełnić na stronie. Taki formularz może być np. przesłany pocztą elektroniczną e-mail.

FORMULARZE Formularz ma formę ankiety, którą można wypełnić na stronie. Taki formularz może być np. przesłany pocztą elektroniczną e-mail. 1 FORMULARZE Formularz ma formę ankiety, którą można wypełnić na stronie. Taki formularz może być np. przesłany pocztą elektroniczną e-mail.

Bardziej szczegółowo

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak JAVA Wstęp do programowania w języku obiektowym Bibliografia: JAVA Szkoła programowania, D. Trajkowska Ćwiczenia praktyczne JAVA. Wydanie III,M. Lis Platforma JSE: Opracował: Andrzej Nowak JSE (Java Standard

Bardziej szczegółowo

Przykład programu w PHP. Wykład10.PHP ciągdalszy,str.1

Przykład programu w PHP. Wykład10.PHP ciągdalszy,str.1 Przykład programu w PHP Wykład10.PHP ciągdalszy,str.1 Przykład programu w PHP Wykład10.PHP ciągdalszy,str.1 Przeliczanie dnia roku na dzień i miesiąc: function jaka data($dni) {... Przykład programu w

Bardziej szczegółowo

JAVAScript tablice, przekazanie danych do funkcji, obiekty Date i window

JAVAScript tablice, przekazanie danych do funkcji, obiekty Date i window Programowanie obiektowe ćw.2 JAVAScript tablice, przekazanie danych do funkcji, obiekty Date i window Tablice w JavaScript Przykład zastosowania tablicy dla przekazania rezultatów funkcji do miejsca wywołania

Bardziej szczegółowo

dokumentacja Edytor Bazy Zmiennych Edytor Bazy Zmiennych Podręcznik użytkownika

dokumentacja Edytor Bazy Zmiennych Edytor Bazy Zmiennych Podręcznik użytkownika asix 4 Edytor Bazy Zmiennych Podręcznik użytkownika asix 4 dokumentacja Edytor Bazy Zmiennych ASKOM i asix to zastrzeżone znaki firmy ASKOM Sp. z o. o., Gliwice. Inne występujące w tekście znaki firmowe

Bardziej szczegółowo

Technologie Internetowe Raport z wykonanego projektu Temat: Internetowy sklep elektroniczny

Technologie Internetowe Raport z wykonanego projektu Temat: Internetowy sklep elektroniczny Technologie Internetowe Raport z wykonanego projektu Temat: Internetowy sklep elektroniczny AiRIII gr. 2TI sekcja 1 Autorzy: Tomasz Bizon Józef Wawrzyczek 2 1. Wstęp Celem projektu było stworzenie sklepu

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

Elementy języka C. ACprogramislikeafastdanceonanewlywaxeddancefloorbypeople carrying razors.

Elementy języka C. ACprogramislikeafastdanceonanewlywaxeddancefloorbypeople carrying razors. Wykład 3 ACprogramislikeafastdanceonanewlywaxeddancefloorbypeople carrying razors. Waldi Ravens J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 75 / 146 deklaracje zmiennych instrukcja podstawienia

Bardziej szczegółowo

Programowanie 3 - Funkcje, pliki i klasy

Programowanie 3 - Funkcje, pliki i klasy Instytut Informatyki Uniwersytetu Śląskiego Laborki funkcja; parametry funkcji; typ zwracany; typ void; funkcje bez parametrów; napis.length() - jako przykład funkcji. Zadania funkcja dodająca dwie liczby;

Bardziej szczegółowo

INSTRUKCJA UŻYTKOWNIKA. Spis treści. I. Wprowadzenie... 2. II. Tworzenie nowej karty pracy... 3. a. Obiekty... 4. b. Nauka pisania...

INSTRUKCJA UŻYTKOWNIKA. Spis treści. I. Wprowadzenie... 2. II. Tworzenie nowej karty pracy... 3. a. Obiekty... 4. b. Nauka pisania... INSTRUKCJA UŻYTKOWNIKA Spis treści I. Wprowadzenie... 2 II. Tworzenie nowej karty pracy... 3 a. Obiekty... 4 b. Nauka pisania... 5 c. Piktogramy komunikacyjne... 5 d. Warstwy... 5 e. Zapis... 6 III. Galeria...

Bardziej szczegółowo

Programowanie internetowe

Programowanie internetowe Programowanie internetowe Wykład 1 HTML mgr inż. Michał Wojtera email: mwojtera@dmcs.pl Plan wykładu Organizacja zajęć Zakres przedmiotu Literatura Zawartość wykładu Wprowadzenie AMP / LAMP Podstawy HTML

Bardziej szczegółowo

MS Excel 2007 Kurs zaawansowany Obsługa baz danych. prowadzi: Dr inż. Tomasz Bartuś. Kraków: 2008 04 25

MS Excel 2007 Kurs zaawansowany Obsługa baz danych. prowadzi: Dr inż. Tomasz Bartuś. Kraków: 2008 04 25 MS Excel 2007 Kurs zaawansowany Obsługa baz danych prowadzi: Dr inż. Tomasz Bartuś Kraków: 2008 04 25 Bazy danych Microsoft Excel 2007 udostępnia szereg funkcji i mechanizmów obsługi baz danych (zwanych

Bardziej szczegółowo

obecnie tabeli nie stosuje się do budowy struktury witryny (stosuje się za to pozycjonowanie elementów i warstwy) faktycznie wymagają

obecnie tabeli nie stosuje się do budowy struktury witryny (stosuje się za to pozycjonowanie elementów i warstwy) faktycznie wymagają Tabela obecnie tabeli nie stosuje się do budowy struktury witryny (stosuje się za to pozycjonowanie elementów i warstwy) tabel używa się wyłącznie do prezentacji tych danych, które tego tabel używa się

Bardziej szczegółowo

I. Interfejs użytkownika.

I. Interfejs użytkownika. Ćwiczenia z użytkowania systemu MFG/PRO 1 I. Interfejs użytkownika. MFG/PRO w wersji eb2 umożliwia wybór użytkownikowi jednego z trzech dostępnych interfejsów graficznych: a) tekstowego (wybór z menu:

Bardziej szczegółowo

Platforma.NET. Laboratorium nr 1 Podstawy języka C#

Platforma.NET. Laboratorium nr 1 Podstawy języka C# Platforma.NET Laboratorium nr 1 Podstawy języka C# Ćwiczenie 1 1. Utwórz nowy projekt a. Z menu File wybierz New/Project b. W oknie dialogowym New Project określ następujące właściwości: typu projektu:

Bardziej szczegółowo

KOMPUTEROWY SYSTEM WSPOMAGANIA OBSŁUGI JEDNOSTEK SŁUŻBY ZDROWIA KS-SOMED

KOMPUTEROWY SYSTEM WSPOMAGANIA OBSŁUGI JEDNOSTEK SŁUŻBY ZDROWIA KS-SOMED KOMPUTEROWY SYSTEM WSPOMAGANIA OBSŁUGI JEDNOSTEK SŁUŻBY ZDROWIA KS-SOMED Podręcznik użytkownika Katowice 2010 Producent programu: KAMSOFT S.A. ul. 1 Maja 133 40-235 Katowice Telefon: (0-32) 209-07-05 Fax:

Bardziej szczegółowo

Programowanie w C/C++ Instrukcje - konstrukcje powtórka. LABORKA Piotr Ciskowski

Programowanie w C/C++ Instrukcje - konstrukcje powtórka. LABORKA Piotr Ciskowski Programowanie w C/C++ Instrukcje - konstrukcje powtórka LABORKA Piotr Ciskowski zadanie 1. Licz się ze sobą Napisz funkcję bez argumentów i bez wyniku, która za każdym wywołaniem będzie podawała, ile razy

Bardziej szczegółowo

Kolumna Zeszyt Komórka Wiersz Tabela arkusza Zakładki arkuszy

Kolumna Zeszyt Komórka Wiersz Tabela arkusza Zakładki arkuszy 1 Podstawowym przeznaczeniem arkusza kalkulacyjnego jest najczęściej opracowanie danych liczbowych i prezentowanie ich formie graficznej. Ale formuła arkusza kalkulacyjnego jest na tyle elastyczna, że

Bardziej szczegółowo

Grażyna Koba. Grafika komputerowa. materiały dodatkowe do podręcznika. Informatyka dla gimnazjum

Grażyna Koba. Grafika komputerowa. materiały dodatkowe do podręcznika. Informatyka dla gimnazjum Grażyna Koba Grafika komputerowa materiały dodatkowe do podręcznika Informatyka dla gimnazjum Rysunki i animacje w Edytorze postaci 1. Rysunek w Edytorze postaci Edytor postaci (rys. 1.) jest częścią programu

Bardziej szczegółowo

Podstawy programowania 2. Temat: Funkcje i procedury rekurencyjne. Przygotował: mgr inż. Tomasz Michno

Podstawy programowania 2. Temat: Funkcje i procedury rekurencyjne. Przygotował: mgr inż. Tomasz Michno Instrukcja laboratoryjna 6 Podstawy programowania 2 Temat: Funkcje i procedury rekurencyjne Przygotował: mgr inż. Tomasz Michno Wstęp teoretyczny Rekurencja (inaczej nazywana rekursją, ang. recursion)

Bardziej szczegółowo

Wprowadzenie do formuł i funkcji

Wprowadzenie do formuł i funkcji Wprowadzenie do formuł i funkcji Wykonywanie obliczeń, niezależnie od tego, czy są one proste czy złożone, może być nużące i czasochłonne. Przy użyciu funkcji i formuł programu Excel można z łatwością

Bardziej szczegółowo

Przykłady zastosowań funkcji tekstowych w arkuszu kalkulacyjnym

Przykłady zastosowań funkcji tekstowych w arkuszu kalkulacyjnym S t r o n a 1 Bożena Ignatowska Przykłady zastosowań funkcji tekstowych w arkuszu kalkulacyjnym Wprowadzenie W artykule zostaną omówione zagadnienia związane z wykorzystaniem funkcji tekstowych w arkuszu

Bardziej szczegółowo