I.Wojnicki, PHP. PHP PHP Hypertext Preprocessor. Igor Wojnicki. Katedra Automatyki Akademia Górniczo-Hutnicza w Krakowie. 20 października 2013



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

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

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

Systemy internetowe Wykład 3 PHP

Bazy Danych i Usługi Sieciowe

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

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

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

Umieszczanie kodu. kod skryptu

Tworzenie Stron Internetowych. odcinek 10

Stałe definiuje się używając funkcji define. Przykład: define( PODATEK, 22); define( INSTALACJAOS, 70); define( MS, Microsoft );

Zmienne i stałe w PHP

Oczywiście plik musi mieć rozszerzenie *.php

Języki programowania wysokiego poziomu. PHP cz.1.

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

Kurs PHP. Literatura. Zagadnienia: Wprowadzenie

Języki skryptowe - PHP. Podstawy PHP. Paweł Kasprowski. pawel@kasprowski.pl. vl07

Zaawansowane bazy danych i hurtownie danych

Zarządzanie systemami informatycznymi. Pojęcie systemu informatycznego Tworzenie interaktywnego oprogramowania internetowego w PHP

Personal Home Page PHP: Hypertext Preprocessor

Programowanie internetowe

Języki skryptowe w programie Plans

SSK - Techniki Internetowe

Programowanie internetowe

Bazy Danych i Usługi Sieciowe

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

PHP: bloki kodu, tablice, obiekty i formularze

Internetowe bazy danych

Sieci Komputerowe i Technologie Internetowe (SKiTI)

Michał Bielecki, KNI 'BIOS'

Dlaczego PHP? - zalety

Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w

PHP. PHP: Hypertext Preprocessor. mgr inż. Remigiusz Pokrzywiński

PHP, ASP i CGI jako skrypty wykonywane po stronie serwera. Budowa dynamicznych stron WWW w technologii PHP

I.Wojnicki, Tech.Inter.

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

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

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

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

Bazy danych i strony WWW

Obiektowe bazy danych

Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać

Smarty PHP. Leksykon kieszonkowy

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

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

Programowanie obiektowe

Języki programowania wysokiego poziomu. PHP cz.2.

JAVASCRIPT PODSTAWY. opracowanie: by Arkadiusz Gawełek, Łódź

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

Wykład V. Rzut okiem na języki programowania. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

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

ZAAWANSOWANE BAZY DANYCH I HURTOWNIE DANYCH MySQL, PHP

JavaScript funkcyjność

PHP w-3. Sterowanie w PHP

System operacyjny Linux

Laboratorium 1 Wprowadzenie do PHP

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

XML extensible Markup Language. część 5

Informatyka 1. Plan dzisiejszych zajęć. zajęcia nr 1. Elektrotechnika, semestr II rok akademicki 2008/2009

Budowanie interfejsów do baz danych

PHP5. Praktyczny kurs

Wybrane działy Informatyki Stosowanej

Wykład 2 Składnia języka C# (cz. 1)

Programowanie strukturalne i obiektowe : podręcznik do nauki zawodu technik informatyk / Adam Majczak. Gliwice, cop

Aplikacje WWW - laboratorium

Podstawy programowania skrót z wykładów:

Programowanie współbieżne i rozproszone

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

I.Wojnicki, Tech.Inter.

Ewolucja projektowania aplikacji w PHP na bazie frameworka Symfony 2

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

INSTALACJA I KONFIGURACJA SERWERA PHP.

Komentarze w PHP (niewykonywane fragmenty tekstowe, będące informacją dla programisty)

PHP i MySQL dla każdego / Marcin Lis. Wyd. 3. Gliwice, cop Spis treści

Tworzenie aplikacji w języku Java

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

Aplikacje webowe w obliczu ataków internetowych na przykładzie CodeIgniter Framework

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

Rys.2.1. Trzy warstwy stanowiące podstawę popularnego podejścia w zakresie budowy stron internetowych [2]

1. Wprowadzenie do języka PHP

Lekcja 1. Składnia języka zmienne i podstawowe instrukcje PHP. Do wyświetlania tekstu służy instrukcja echo echo Hello world ;

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych

Spis treści WSTĘP CZĘŚĆ I. PASCAL WPROWADZENIE DO PROGRAMOWANIA STRUKTURALNEGO. Rozdział 1. Wybór i instalacja kompilatora języka Pascal

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe

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

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

Kurs WWW. Paweł Rajba.

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA

Microsoft IT Academy kurs programowania

Zajęcia 4 - Wprowadzenie do Javascript

APLIKACJE INTERNETOWE 5 PHP W P R O W A D Z E N I E D O P R O G R A M O W A N I A

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

Bloki anonimowe w PL/SQL

Język PHP. PHP (PHP: Hypertext Preprocessor) język programowania stron WWW; najważniejsze cechy PHP:

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

Imię, nazwisko i tytuł/stopień KOORDYNATORA (-ÓW) kursu/przedmiotu zatwierdzającego protokoły w systemie USOS Dr Adam Naumowicz

Technologie internetowe server-side na przykładzie języka PHP

Transkrypt:

Igor Wojnicki (AGH, KA) 20 października 2013 1 / 36 Hypertext Preprocessor Igor Wojnicki Katedra Automatyki Akademia Górniczo-Hutnicza w Krakowie 20 października 2013 $Id: php0.tex,v 1.3 2013/06/28 20:53:25 wojnicki Exp wojnicki $

Igor Wojnicki (AGH, KA) 20 października 2013 2 / 36 Spis Treści 1

Igor Wojnicki (AGH, KA) 20 października 2013 3 / 36 Literatura White E., Eisenhamer, J.D.: 5 w praktyce. Helion, Gliwice 2007. Lis M.: 5: praktyczny kurs. Helion, Gliwice 2006.

Igor Wojnicki (AGH, KA) 20 października 2013 4 / 36 Spis Treści 1

Igor Wojnicki (AGH, KA) 20 października 2013 5 / 36 Język I (angielski akronim rekurencyjny, którego rozwinięcie to Hypertext Preprocessor), pierwotnie nazwany Personal Home Page - skryptowy język programowania, służacy przede wszystkim do tworzenia dynamicznych stron WWW i wykonywany w tym przypadku po stronie serwera, z możliwościa zagnieżdżania w HTML (badź XHTML). jest podobny w założeniach do dużo starszego mechanizmu SSI (Server Side Includes), jednak jest w stosunku do SSI nieporównanie bardziej rozbudowany. Udostępniany jest na zasadach licencji open-source. Jego składnia bazuje na językach C, Java i Perl.

Igor Wojnicki (AGH, KA) 20 października 2013 6 / 36 Język II może być używane nie tylko do tworzenia stron WWW. Jego modułowa budowa pozwala także na programowanie aplikacji z interfejsem graficznym (rozszerzenie -GTK), a także na wykonywanie z linii poleceń (podobnie jak Perl i Python). umożliwia także współpracę z wieloma systemami relacyjnych baz danych (np. MySQL, Oracle, PostgreSQL, SQLite) oraz korzystanie z alternatywnych sposobów przechowywania danych - plików tekstowych i XML-owych. Może być uruchamiane na większości systemów operacyjnych (uwzględniajac najpopularniejsze) oraz serwerów sieciowych. w środowisku Linux wraz z serwerem Apache i silnikiem baz danych MySQL stanowi popularna platformę serwerowa, tzw. LAMP. Od wersji 5 udostępnia wydajne mechanizmy obiektowe.

Igor Wojnicki (AGH, KA) 20 października 2013 7 / 36 Popularność Kwiecień 2007 : 20,917,850 domen, 1,224,183 adresów. 4-ty język pod wzgledem popularności (po Java, C, C++) 1. 1 http://langpop.com/

Igor Wojnicki (AGH, KA) 20 października 2013 8 / 36 Charakterystyka I Interpreter. Zastosowania Internetowe. Interpreter Stand-alone. Możliwości: TCP/IP, DNS. http, https, ftp, gopher, telnet, ldap, irc, snmp, ssh. email. IMAP (Internet Message Access Protocol, Internet Mail Access Protocol), POP3 (Post Office Protocol), NNTP (Network News Transfer Protocol). dbase, DBM (BerkeleyDB, GDBM), PostgreSQL, Oracle, MySQL, SQL Server, FrontBase, ODBC, Sybase, SQLite, InterBase, Firebird, IBM DB2, Informix, msql, Paradox.

Igor Wojnicki (AGH, KA) 20 października 2013 9 / 36 Charakterystyka II Niskopoziomowe I/O. Expect: Interakcja z zewnętrznymi aplikacjami poprzez stdin/stdout/stderr. gnupg. ID3, oggvorbis.. Transofrmacje: PNG, JPEG, GIF, TIFF. Exif. Kerberos. Uruchamianie metod obiektów Java. Przetwarzanie XML, XSLT. Kompresja: bzip2, lzf, gzip, zip. Mimetype (jaki typ pliku?). PDF, Postscript.

Igor Wojnicki (AGH, KA) 20 października 2013 10 / 36 Charakterystyka III Wyrażenia Regularne. Konwersja znaków diakrytycznych: GNU Recode. Obsługa Sesji za pomoca cookies. Obliczenia Statystyczne. ncurses: interakcja w środowisku tekstowym.

Igor Wojnicki (AGH, KA) 20 października 2013 11 / 36 Osadzanie I Instrukcje zakończone średnikiem (;) [1] <?php echo("tralala Bum!\n");?> <?php if (wyrazenie-logiczne) {?> <strong>prawda </strong> <?php else {?> <strong>fałsz </strong> <?php?>

Igor Wojnicki (AGH, KA) 20 października 2013 12 / 36 Komentarze I jak dla języka C: /*... */ jak dla języka C++ (do końca linii): // jak dla powłoki sh (do końca linii): #

Igor Wojnicki (AGH, KA) 20 października 2013 13 / 36 Typy Danych I obsługuje osiem typów prostych. boolowski (boolean): True/False $foo = True; liczba całkowita (integer) moga być zapisane w notacji dziesiętnej, szesnastkowej (0x) lub ósemkowej (0), liczba zmiennoprzecinkowa (float) $a = 1.234; $a = 1.2e3; $a = 7E-10;

Igor Wojnicki (AGH, KA) 20 października 2013 14 / 36 Typy Danych II łańcuch znaków (string), ciag bajtów echo przykładowy tekst ; podwójne cudzysłowy, interpretacje większej ilości sekwencji cytowania dla znaków specjalnych. echo "tab \t nowa\n"; heredoc $str = <<<EOD Przykład łańcucha znaków, zajmującego kilka linii, zapisanego w składni heredoc. EOD;

Igor Wojnicki (AGH, KA) 20 października 2013 15 / 36 Typy Danych III tablica (array) $tablica=array(1,2,3, cos,5); echo $tablica[0]; $inna=array( 1 => jeden, 5 => piec, trzy => 3 ); echo $inna[5]; echo $inna[ trzy ]; obiekt (object)

Igor Wojnicki (AGH, KA) 20 października 2013 16 / 36 Typy Danych IV identyfikator zasobów (resource) jest specjalna zmienna, przechowujac a odnośnik do zewnętrznego źródła zasobów. Identyfikatory zasobów sa tworzone i wykorzystywane przez specjalne funkcje (zobacz suplement z lista tych funkcji i powiazanych z tym typów zasobów w dokumentacji ). Uwaga: Identyfikator zasobów został wprowadzony w 4. NULL wartość specjalna oznacza, że zmienna nie przechowuje żadnej wartości. Uwaga: typ NULL został również wprowadzony w 4 ustala typ danych na podstawie kontekstu.

Igor Wojnicki (AGH, KA) 20 października 2013 17 / 36 Zmienne I Każda zmienna w zapisuje się, poprzedzajac jej nazwę znakiem dolara $. Dostępne sa funkcje które moga sprawdzić typ danych: is_array(), is_int(), is_float()... itp. oraz istnienie samej zmiennej i jej wartości: isset(), isnull() uwaga na różnicę! Wielkość liter w nazwie zmiennej jest rozróżniana.

Igor Wojnicki (AGH, KA) 20 października 2013 18 / 36 Zmienne II Referencje: & (od 4) <?php $foo = ; $bar = &$foo; $bar = "To jest $bar"; echo $bar; echo $foo;?> Zasięg zmiennej ogranicza blok, w którym jest zdefiniowana. static zmienne statyczne (w ramach funkcji!!!) Zmienne jako nazwy zmiennych ${$var=5;

Igor Wojnicki (AGH, KA) 20 października 2013 19 / 36 Zmienne Globalne I $_GLOBALS referencje do zmiennych globalnych, nazwa zmiennej = klucz $_SERVER tworzone przez serwer http $_GET $_POST zmienne dostarczone do skryptu metoda GET lub POST $_COOKIE zmienne dostarczone przez mechanizm COOKIES $_REQUEST zawiera informacje z get/post/cookie $_FILES zmienne dostarczone przez przesłanie plików $_ENV zmienne środowiskowe, kontekst uruchomienia skryptu 1 Dla wersji poniżej 4.1 obowiazywały nazwy zmiennych globalnych w formacie: $HTTP_*_VARS. 2 Dla 3 dane przekazywanem przez POST/GET były zmiennymi globalnymi.

Igor Wojnicki (AGH, KA) 20 października 2013 20 / 36 Stałe I Stała jest identyfikatorem (nazwa) dla prostej wartości. Jak sama nazwa wskazuje, wartość ta nie może się zmieniać podczas działania skryptu (poza wyjatkami: FILE i LINE ). Domyślnie, przy stałych uwzględniana jest wielkość liter. Przyjęto, że stałe sa pisane dużymi literami. define( WEB_MASTER, nczbik@cyf-kr.edu.pl ); echo WEB_MASTER;

Igor Wojnicki (AGH, KA) 20 października 2013 21 / 36 Operatory I Arytmetyczne - analogiczne do C: + - / * % Przypisania: = += -= Bitowe: & ~ ^ << >> Porównania: == ===!= <>!== <= < >= > Warunkowe: (expr)? (expr1) : (expr2); Wykonania: Inkrementacji/Dekrementacji: ++ -- Logiczne: and or xor! && Konkatencja łańcuchów znaków:..= Łaczenie tablic: +

Igor Wojnicki (AGH, KA) 20 października 2013 22 / 36 Struktury Sterujace I if elseif else if (wyrażenie) { //1 postać // jeśli wyrażenie jest prawdziwe if (wyrażenie) { //2 postać // jeśli wyrażenie jest prawdziwe else { // jeśli wyrażenie jest jest fałszywe

Igor Wojnicki (AGH, KA) 20 października 2013 23 / 36 Struktury Sterujace II if (wyrażenie1) { //3 postać // jeśli wyrażenie1 jest prawdziwe elseif (wyrażenie2) { // jeśli wyrażenie2 jest prawdziwe else { //wykonywane jest jeśli wszystkie //wyrażenia są fałszywe

Igor Wojnicki (AGH, KA) 20 października 2013 24 / 36 Struktury Sterujace III switch, analogicznie do C switch (zmienna) { case WARTOSC_1: //instrukcje do wykonania... break; case WARTOSC_2: break; case WARTOSC_n: break;

Igor Wojnicki (AGH, KA) 20 października 2013 25 / 36 Struktury Sterujace IV for for (INICJACJA; WARUNEK; OPERACJA) { //blok instrukcji while while (WARUNEK) { // blok instrukcji do do { // blok instrukcji while (WARUNEK); break, continue, analogicznie jak C

Igor Wojnicki (AGH, KA) 20 października 2013 26 / 36 Struktury Sterujace V foreach, iteracja na elementach tablicy (od 4) foreach(array_expression as $value) statement foreach(array_expression as $key => $value) statement

Igor Wojnicki (AGH, KA) 20 października 2013 27 / 36 Struktury Sterujace VI funkcje function nazwa ($arg1, $arg2) { //wiersze kodu return $my_var; // opcjonalne require, include wczytanie skryptu z innego pliku, w przypadku niepowodzenia include generuje ostrzeżenie, require bład krytyczny. include vars.php ; require A.php ;

Igor Wojnicki (AGH, KA) 20 października 2013 28 / 36 Funkcje I Funkcji nie można przeciażać... bo zbyt ciężkie się zepsuja. Przekazywanie argumentów przez wartość. Przekazywanie argumentów przez referencje: function dodaj_cos_extra(&$string) { $string.= i coś extra. ; Wartości domyślne argumentów. function robkawe ($typ = "cappucino") { return "Robię kubek $typ.\n";

Igor Wojnicki (AGH, KA) 20 października 2013 29 / 36 Funkcje II Zwracanie referencji. function &zwrocreferencje(){ return $jakasref; $nowaref =& zwrocreferencje();

Igor Wojnicki (AGH, KA) 20 października 2013 30 / 36 Funkcje III Nazwa funkcji jako zmienna. function foo(){ echo "W foo()<br>\n"; function bar($arg = ){ echo "W bar(); argumentem jest $arg.<br>\n"; $func = foo ; $func(); $func = bar ; $func( test );

Igor Wojnicki (AGH, KA) 20 października 2013 31 / 36 Interakcje z Serwerem WWW I Formularze. <form action="foo.php" method="post"> Name:<input type="text" name="username"><br> <input type="submit"> </form> zmienna $_POST["username"] otrzyma wartość wprowadzona przez użytkownika. Cookies. Analogicznie jak $_POST/$_GET, wszystkie cookies sa przeslane w tablicy $_COOKIE, funkcja setcookie() tworzy/modyfikuje wartości cookies (funkcja może być użyta jedynie zanim skrypt cokolwiek wygeneruje na wyjściu).

Igor Wojnicki (AGH, KA) 20 października 2013 32 / 36 Przykładowa Obsługa Formularza I Dane klineta w polach formularza: DATA_* Zakupione produkty: PROD_* <html> <head> <meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-2"> <meta http-equiv="content-language" CONTENT="pl"> <TITLE>podziekowanie</TITLE> </head> <body> <?php $to = "kowalski@serwer.poczta.pl";

Igor Wojnicki (AGH, KA) 20 października 2013 33 / 36 Przykładowa Obsługa Formularza II $subject = "Zamowienie"; $body = "Zamowienie:\n\n"; foreach ( $_POST as $k => $v ) { if (!strncmp($k,"data_",5)){ if ($v!= "") { $n=substr($k,5); $body="${body${n: $v \n"; $body="${body\n"; foreach ( $_POST as $k => $v ) { if (!strncmp($k,"prod_",5)){ if ($v!= "") { $n=substr($k,5);

Igor Wojnicki (AGH, KA) 20 października 2013 34 / 36 Przykładowa Obsługa Formularza III $body="${bodyprodukt: $n ilosc: $v \n"; $body="${body\n Razem do zaplaty:$_post[total]"; if (mail($to, $subject, $body)) {?> <p> Dziękuję za złożenie zamówienia<br> <?php else {?>

Igor Wojnicki (AGH, KA) 20 października 2013 35 / 36 Przykładowa Obsługa Formularza IV <p> Błąd!!! Zamówienie nie zostało wysłane!!! <?php?> </body> </html>

Igor Wojnicki (AGH, KA) 20 października 2013 36 / 36 Rodzaje Kontroli Dostępu HTTP authorization, Formularze HTML + POST/GET + COOKIES + DBMS.

Igor Wojnicki (AGH, KA) 20 października 2013 36 / 36 Podręcznik. http://www.php.net/manual/pl/.