http://webmade.org/kursy-online/kurs-php.php Co to jest PHP



Podobne dokumenty
Formularze. 1. Formularz HTML

Umieszczanie kodu. kod skryptu

SSK - Techniki Internetowe

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

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

Podstawy JavaScript ćwiczenia

Obiektowe bazy danych

Zmienne powłoki. Wywołanie wartości następuje poprzez umieszczenie przed nazwą zmiennej znaku dolara ($ZMIENNA), np. ZMIENNA=wartosc.

Programowanie w języku Python. Grażyna Koba

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

1 Podstawy c++ w pigułce.

Zmienne i stałe w PHP

PHP: bloki kodu, tablice, obiekty i formularze

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?

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

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

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

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

ZMIENNE. Podstawy PHP

Aplikacje WWW - laboratorium

Zaawansowane aplikacje internetowe

1 Podstawy c++ w pigułce.

Metody numeryczne Laboratorium 2

Oczywiście plik musi mieć rozszerzenie *.php

Bazy danych i strony WWW

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

Laboratorium 1 Wprowadzenie do PHP

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

Wykład 03 JavaScript. Michał Drabik

Aplikacje WWW - laboratorium

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

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

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

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

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

Podstawy programowania (wspólne dla JavaScript i PHP)

Kurs PHP. Literatura. Zagadnienia: Wprowadzenie

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

Języki skryptowe w programie Plans

Michał Bielecki, KNI 'BIOS'

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

Ogólny schemat prostego formularza: A może lepiej zamiast przycisku opartego o input tak:

Rys.2.1. Drzewo modelu DOM [1]

Informatyka II. Laboratorium Aplikacja okienkowa

11. PROFESJONALNE ZABEZPIECZENIE HASŁEM

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

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

Aplikacje internetowe - laboratorium

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

Cw.12 JAVAScript w dokumentach HTML

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

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Bazy Danych i Usługi Sieciowe

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

WyŜsza Szkoła Zarządzania Ochroną Pracy MS EXCEL CZ.2

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

Instrukcja do ćwiczenia P4 Analiza semantyczna i generowanie kodu Język: Ada

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

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

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.

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

Pętle. Dodał Administrator niedziela, 14 marzec :27

XV. Wskaźniki Odczytywanie adresu pamięci istniejących zmiennych Wskaźniki pierwsze spojrzenie.

4. Funkcje. Przykłady

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

KaŜdy z formularzy naleŝy podpiąć do usługi. Nazwa usługi moŝe pokrywać się z nazwą formularza, nie jest to jednak konieczne.

Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje. dr Artur Bartoszewski - Języki C i C++, sem.

PHP podstawy. Na początek napiszmy kilka linijek w tradycyjnym HTMLu, np.: <html> <head> <title>pierwszy skrypt php</title> </head> <body>

SYSTEM ZARZĄDZANIA TREŚCIĄ (CMS) STRONY INTERNETOWEJ SZKOŁY PRZEWODNIK

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

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

JAVAScript w dokumentach HTML - przypomnienie

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

JAVAScript w dokumentach HTML (1)

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

Funkcje i instrukcje języka JavaScript

Napisy w PHP. Drukowanie napisów instrukcją echo

Podstawowe informacje o obsłudze pliku z uprawnieniami licencja.txt

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

1 Przygotował: mgr inż. Maciej Lasota

MAŁOPOLSKI KONKURS INFORMATYCZNY DLA GIMNAZJALISTÓW. TEST (max. 25 pkt.)

Zajęcia 4 - Wprowadzenie do Javascript

WIADOMOŚCI WSTĘPNE WPROWADZENIE DO JĘZYKA TURBO PASCAL. Klawisze skrótów. {to jest właśnie komentarz, moŝna tu umieścić dowolny opis}

JAVAScript w dokumentach HTML (2)

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

Zmienne, stałe i operatory

Metodyki i Techniki Programowania MECHANIZM POWSTAWANIA PROGRAMU W JĘZYKU C PODSTAWOWE POJĘCIA

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

Instrukcje warunkowe i skoku. Spotkanie 2. Wyrażenia i operatory logiczne. Instrukcje warunkowe: if else, switch.

Laboratorium nr 8. Temat: Podstawy języka zapytań SQL (część 2)

Część 4 życie programu

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

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

14. POZOSTAŁE CIEKAWE FUNKCJE

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

2. Łańcuchy tekstowe w PHP

Programowanie PHP. Temat 1. Przygotowanie środowiska, prezentacja możliwości PHP

W oknie na środku, moŝna wybrać język, który będzie językiem domyślnym dla TC. Wybierzmy zatem język polski:

Transkrypt:

http://webmade.org/kursy-online/kurs-php.php Co to jest PHP PHP jest językiem skryptowym słuŝącym do rozszerzania moŝliwości stron internetowych. Jego składnia jest bardzo podobna do popularnych języków programowania C/C++, lecz jest bardzo uproszczona - programista PHP zazwyczaj nie musi przejmować się poprawnością typów zmiennych, przydzielaniem dla nich pamięci itp. Dodatkowo wbudowana obsługa wielu popularnych baz danych ułatwia twórcy operacje na tych bazach. Dzięki połączeniu z biblioteką GD moŝliwe jest takŝe dynamiczne tworzenie obrazków GIF (starsze wersje GD) lub PNG (nowsze wersje). Wstawianie skryptów PHP Aby plik był rozpoznany przez serwer WWW jako skrypt PHP musi on mieć odpowiednie rozszerzenie. Rozszerzenia te moŝna zdefiniować w konfiguracji serwera WWW, ale zazwyczaj jest to.php3 (dla PHP w wersji 3),.php lub php4 (dla PHP w wersji 4) i.phtml (dla PHP w wersji starszej niŝ 3). Po nadaniu plikowi takiego rozszerzenia serwer będzie wiedział, Ŝe plik ten nie jest przeznaczony do bezpośredniego wyświetlenia (jak w przypadku plików HTML), ale Ŝe najpierw trzeba go przepuścić przez parser PHP. Jeśli zwykłemu plikowi HTML nadamy rozszerzenie.php, to zostanie on prawidłowo wyświetlony, mimo Ŝe nie jest to skrypt PHP. Dzieje się tak dlatego, Ŝe parser PHP przetwarzając stronę ma 2 tryby pracy: HTML, gdzie cała treść jest wyświetlana, bez przetwarzania, i PHP, gdzie treść jest traktowana jako skrypt do przetworzenia. Do określenia w pliku co jest kodem HTML a co PHP słuŝą specjalne znaczniki. Początkowo parser jest w trybie HTML. Aby przejść do trybu PHP moŝna uŝyć jednego z czterech znaczników: 1. echo ("to jest najprostsza metoda, podobna do SGML'u\n"); ; 2. php echo("jeśli serwujesz pliki XML, uŝyj tej metody\n");?&>; 3. <script language="php"> echo ("niektóre edytory (np. FrontPage) nie lubią przetwarzania instrukcji"); </script> 4. <% echo ("MoŜesz teŝ uŝyć metody podobnej do tej z ASP"); %> <%= ; # To jest skrót dla "<%echo.." %>; W powyŝszych przykładach uŝyta jest niby-funkcja echo. Niby-funkcja, poniewaŝ dla większości normalnych funkcji parametry trzeba podawać w nawiasach, a w przypadku funkcji echo moŝna je pominąć. "echo" jest po prostu elementem składni języka. Jak się moŝna łatwo domyślić, słuŝy ona do wysyłania tekstu podanego jako parametr do przeglądarki uŝytkownika.

Po przeczytaniu powyŝszego fragmentu kaŝdy powinien być juŝ gotowy do napisania programu, jaki kaŝda osoba pisze zaraz po wstępnym zapoznaniu się z nowym językiem programowania - Hello World!. W przypadku PHP jest to zadanie uproszczone do minimum. Skrypt Hello World powinien wyglądać tak: php echo 'Hello World!'; Po zapisaniu tego pliku z odpowiednim rozszerzeniem i umieszczeniu go odpowiednim miejscu (czyli w katalogu z którego będzie dostęp będzie miał serwer WWW). Po wejściu na tę stronę z przeglądarki WWW w okienku powinno być widać tylko napis "Hello World!" (bez cudzysłowów). Jedna uwaga: polecenie echo nie wysyła znaku końca linii, więc jeśli chcesz, aby po ciągu znaków (albo w którymkolwiek miejscu tego ciągu) kończyła się linia, w tym miejscu trzeba wstawić '\n'. Zakańczanie instrukcji Jak juŝ moŝna zauwaŝyć w przykładach z poprzedniego rozdziału, jedną z głównych zasad języka PHP (jak i wielu innych - m. in. C i Perla) jest umieszczenie na końcu kaŝdej instrukcji (niekoniecznie linii) znaku średnika (';'). MoŜna go pominąć tylko jeśli w danym miejscu następuje przejście do trybu HTML, a więc po danej linii następuje symbol przejścia do trybu HTML. echo "To jest test"; echo "To jest test" Komentarze Czasem zachodzi potrzeba oznaczenia czegoś w kodzie, dla kogoś innego czy nawet dla siebie samego (zwłaszcza jeśli pracuje się nad duŝym projektem moŝna się pogubić). Wtedy moŝna skorzystać z jednej z kilku metod oznaczania, dzięki którym parser PHP będzie wiedział, Ŝe dany tekst nie jest częścią skryptu i moŝna go zignorować. Komentarze przydają się takŝe do tymczasowego "wyłączania" niektórych linii kodu. PHP obsługuje 3 metody oznaczania komentarzy - 2 z nich znane są z języków C/C++ a jedna z powłok (shell) systemów Uniksowych. PoniŜsze 2 metody słuŝą do oznaczania, Ŝe tekst od danego miejsca do końca linii jest komentarzem: echo "To jest test komentarzy"; // Ta metoda znana jest z języków C/C++ echo "A to drugi test"; # A ta z powłok Uniksowych

Ostatnia metoda, takŝe znana z języków C/C++, słuŝy do oznaczania wielu linii jako komentarz. NaleŜy przy niej pamiętać, aby nie zagnieŝdŝać wewnątrz siebie takich komentarzy poniewaŝ moŝe to doprowadzić do nieprawidłowego funkcjonowania skryptów. echo "Test komentarzy"; /* Tu jest początek komentarza tu dalej trwa a tu się kończy */ Zmienne Jeśli ktoś nie spotkał się jeszcze z pojęciem zmiennej, to postaram się to wyjaśnić. OtóŜ zmienna jest to identyfikator znakowy, któremu przypisano jakąś wartość. W języku PHP zmienne oznacza się za pomocą znaku dolara ('$') przed wspomnianym identyfikatorem. Obsługa zmiennych w PHP jest uproszczona do minimum. W "duŝych" językach programowania zmienne trzeba najpierw inicjować (przy czym z góry trzeba określić typ zmiennej), zmienne tekstowe muszą mieć z góry ustalony rozmiar itp. W PHP nie jest to konieczne. Zmienna jest inicjalizowana (to znaczy rezerwowany jest dla niej pewien obszar w pamięci) przy pierwszym jej uŝyciu. Nazwy zmiennych muszą zaczynać się od litery (duŝej lub małej) lub "underscore" (dolna kreska - '_') a dalej mogą się składać z dowolnej ilości liter, cyfr i znaków o kodzie ASCII powyŝej 127. Przy nazwach zmiennych respektowana jest wielkość znaków - zmienne $Test i $test to dwie róŝne zmienne. Oto przykład przypisywania wartości zmiennym i wykorzystanie ich w poleceniu echo: $nazwa = 1; // Zmiennej "nazwa" przypisywana jest wartość liczbowa 1 $druga_nazwa = "Tekst"; /* Zmiennej "druga_nazwa" przypisany jest ciąg znaków "Tekst" */ $trzecia_nazwa = $nazwa; /* Zmiennej "trzecia_nazwa" przypisywana jest wartość zmiennej "nazwa" */ echo "To jest $druga_nazwa"; /* Powinien wyświetlić się napis "To jest Tekst" */ echo '$druga_nazwa'; // Powinien wyświetlić się napis "$druga_nazwa" echo $nazwa; // Powinna wyświetlić się cyfra 1 W powyŝszym przykładzie moŝna zauwaŝyć, Ŝe parametr dla polecenia echo moŝna podawać zarówno w cudzysłowach jak i apostrofach. Jednak te parametry nie są sobie równoznaczne. W przypadku cudzysłowów zmienne zawarte między nimi są zamieniane na ich wartość, a w przypadku apostrofów zmienna pozostaje swoją nazwą (jak moŝna zauwaŝyć w powyŝszym przykładzie).

Typy zmienych W PHP zmienne mają następujące typy: liczby całkowite (integer) liczby rzeczywiste (double) ciągi (string) tablice (array) obiekty (object) Dodatkowo PHP potrafi konwertować zmienne całkowite zapisane w róŝnych formatach liczbowych. $a = 1234; # liczba dziesiętna $a = -123; # liczba ujemna $a = 0123; # liczba ósemkowa (równoznaczne z dziesiętnym 83) $a = 0x12; # liczba szesnastkowa (równoznaczne z dziesiętnym 18) Zazwyczaj nie jest konieczne określenie typu zmiennej - PHP sam to ustala, zaleŝnie od kontekstu. Przykład: $blah = "0"; // $blah jest ciągiem (ASCII 48) $blah++; // $blah jest ciągiem "1" (ASCII 49) $blah += 1; // $blah jest teraz wartością całkowitą (2) $blah = + 1.3; // $blah jest wartością rzeczywistą (1.3) $blah = 5 + "10 Malutkich Świnek"; // jest wartością całkowitą (15) $blah = 5 + "10 Małych Świń"; // jest wartością całkowitą (15) Co to jest operator? Operatory są to najprościej mówiąc symbole, które słuŝą do operacji na zmiennych. Operatory dzielą się na operatory arytmetyczne, które słuŝą do operacji na liczbach, operatory przypisania słuŝące do przypisywania zmiennym wartości, operatory operacji bitowych, operatory porównania niezbędne do instrukcji warunkowych, operator kontroli błędów, operator wykonania słuŝący do uruchamiania zewnętrznych programów, operatory inkrementacji i dekrementacji, operatory logiczne i operatory ciągu. Operatory arytmetyczne Przykład Nazwa Wynik $a + $b Dodawanie Suma $a i $b. $a - $b Odejmowanie RóŜnica $a i $b. $a * $b MnoŜenie Iloczyn $a i $b. $a / $b Dzielenie Iloraz $a i $b.

$a % $b Modulo Reszta z dzielenia $a przez $b. Leszek 'leon' Krupiński Operator przypisania Podstawowym operatorem przypisania jest symbol '='. Oczywiście nie oznacza on 'jest równe'. WyraŜenie $b = 5 oznacza, Ŝe zmienna $b przyjmuje wartość równą 5. Zmiennej moŝna przypisać takŝe wartość innej zmiennej: $b = 5; $a = $b; - zmienna $a przyjmie wartość 5. Zmiennym moŝna przypisywać nie tylko konkretne wartości, ale teŝ wartości innych zmiennych. Wartości te moŝna przypisywać kaskadowo, przy czym wartości przypisywane będą od prawej do lewej, np.: $nazwa = $inna_nazwa = $trzecia_nazwa = 5; W tym wypadku wszystkim zmiennym zostanie przypisana wartość 5. Operator przypisania moŝna łączyć z operatorami arytmetycznymi i operatorem łączenia ciągów: Przykład Wynik $a += 2 Do zmiennej $a dodane zostanie 2 $a -= 2 Od zmiennej $a odjęte zostanie 2 $a *= 2 Zmienna $a zostanie pomnoŝona przez 2 $a /= 2 Zmienna $a dodane podzielona przez 2 $a %= 2 Zmienna $a przyjmie wartość reszty z dzielenia $a przez 2 $a.= " dalszy ciąg" Do zmiennej $a na końcu dodany zostanie ciąg " dalszy ciąg" Operatory inkrementacji i dekrementacji Operatory te występują w większości języków programowania. SłuŜą one do zmniejszenia lub zwiększenia wartości danej zmiennej o 1. KaŜdy operator moŝna stosować na 2 sposoby: preinkrementacja/predekrementacja - najpierw wartość zmiennej zostanie zmieniona, a później zwrócona, lub postinkrementacji/postdekrementacji - najpierw zostanie zwrócona wartość zmiennej, a następnie wartość zmiennej zostanie zmieniona. Przykład Nazwa Wynik

++$a $a++ --$a $a-- Preinkrementacja Zwiększa $a o jeden, a następnie zwraca $a. Postinkrementacja Zwraca $a, a następnie zwiększa $a o jeden. Predekrementacja Zmniejsza $a o jeden, po czym zwraca $a. Postdekrementacja Zwraca $a, po czym zmniejsza $a o jeden. W zrozumieniu zasad działania tych operatorów pomocny moŝe być ten przykład: echo "<h3>postinkrementacja"; $a = 5; echo "Powinno być 5: ". $a++. "<br>\n"; echo "Powinno być 6: ". $a. "<br>\n"; echo "<h3>preinkrementacja"; $a = 5; echo "Powinno być 6: ". ++$a. "<br>\n"; echo "Powinno być 6: ". $a. "<br>\n"; echo "<h3>postdekrementacja"; $a = 5; echo "Powinno być 5: ". $a--. "<br>\n"; echo "Powinno być 4: ". $a. "<br>\n"; echo "<h3>predekrementacja;"; $a = 5; echo "Powinno być 4: ". --$a. "<br>\n"; echo "Powinno być 4: ". $a. "<br>;\n"; Instrukcje warunkowe Instrukcje warunkowe są podstawą kaŝdego języka programowania. UŜywa się jej do wykonania pewnej instrukcji (lub bloku instrukcji), ale tylko w pewnych okolicznościach - zostanie spełniony określony warunek (lub cały zestaw warunków). Składnia instrukcji warunkowej jest następująca: if(wyraŝenie_warunkowe) instrukcja wykonywana jeśli spełniony zostanie warunek else if(inne_wyraŝenie_warunkowe) instrukcja wykonywana jeśli spełniony zostanie drugi warunek, a pierwszy nie else instrukcja wykonywana jeśli nie zostanie spełniony Ŝaden z warunków

WyraŜeniem warunkowym jest w zasadzie dowolne wyraŝenie, poniewaŝ za warunek uznawane jest wszystko co zwraca wartość, czyli wszystkie zmienne, wyraŝenia logiczne, funkcje itp. Za spełniony warunek uznawana jest wartość większa od zera. $a = 2; $b = 5; $c = 1; if($a > $b) echo "$a jest większe od $b"; else if($b > $c) echo "$b jest większe od $c"; else echo "$c jest większe od $a i $b"; if($a) echo "Zmienna $a ma wartość większą od zera"; Jeśli chcemy, aby po sprawdzeniu warunku wykonane zostało nie jedno, ale kilka poleceń, to te polecenia trzeba ująć w nawiasy klamrowe. Bez tego warunkiem objęta by była tylko jedna instrukcja po instrukcji if. Instrukcje mogą być zagnieŝdŝane wewnątrz siebie: $a = 6; $b = 5; $c = 1; if($a > $b){ echo "$a jest większe od $b"; if($a > $c) echo " i od $c"; /* Powinien zostać wyświetlony napis "6 jest większe od 5 i od 1" */ } Oczywiście moŝliwe jest korzystanie z warunków bardziej złoŝonych niŝ pojedyncze porównanie wielkości zmiennych - do łączenia warunków niezbędne jest wykorzystanie operatorów logicznych opisanych w poprzednim rozdziale. Operator logiczny OR (lub) ma większy priorytet niŝ operator AND (i), więc aby sprawdzić jakiś warunek gdzie konieczna jest inna kolejność, niezbędne jest uŝycie nawiasów grupujących warunki. Na przykład chcemy aby jakaś instrukcja była wykonana jeśli zmienna

$a jest większa od $b lub $c, i zmienna $d była równa $e. Jeśli chcielibyśmy zapisać to bez Ŝadnych nawiasów: $a > $b $a > $c && $d == $e to efekt byłby zupełnie inny od zamierzonego: instrukcja była by wykonana jeśli $a było by większe od $b, lub jeśli $a było by większe od $a i $d było by równe $e. Poprawna konstrukcja to ($a > $b $a > $c) && $d == $e. $a = 6; $b = 5; $c = 7; $d = 6; $e = 6; if( ($a > $b $a > $c) && // Nawiasy klamrowe nie są potrzebne - to $d == $e ) // 2 linie ale jedna instrukcja echo 'Zmienna $a jest większa od $b a zmienna $d jest równa $e, '. 'więc ten tekst pokaŝe się.'; // Taka konstrukcja jest dozwolona Pętla for for( inicjalizacja zmiennych ; sprawdzenie warunku ; modyfikacja zmiennych) { blok wyraŝeń } Jak widać, w tej pętli podaje się 3 wyraŝenia jako parametry: inicjalizację zmiennych, czyli ustawienie początkowych wartości dla zmiennych kontrolujących pętlę, sprawdzenie warunku, czyli wyraŝenie logiczne kontrolujące pętlę - pętla będzie wykonywana dopóki ten warunek jest prawdziwy, oraz modyfikację zmiennych kontrolujących pętlę - bez tego pętla będzie wykonywała się w nieskończoność (oczywiście wartość tych zmiennych moŝna modyfikować wewnątrz pętli, ale jest to niezalecane). Przykład najprostszej pętli, która wypisze cyfry od 1 do 10: for( $x = 1; $x <= 10; $x++ ) echo $x."<br />"; Funkcje Funkcja jest kawałkiem kodu, który moŝna wywołać podając jej nazwę. JuŜ wcześniej podane zostało kilka funkcji dostarczanych przez PHP, takich jak array(), each(), list(), explode() czy implode(). Jak moŝna zauwaŝyć, funkcje rozpoznaje się po nawiasach

występujących po ich nazwie. W nawiasach tych (jeśli funkcja tego wymaga) podaje się parametry dla danej funkcji. Niektóre funkcje zwracają jakąś wartość, a więc wywołanie takiej funkcji moŝna wstawić jak dowolne inne wyraŝenie do listy parametrów innej funkcji czy np. do obliczenia. UŜytkownik moŝe tworzyć własne funkcje - przykładowa definicja wygląda tak: php function suma($parametr1 = 0, $parametr2 = 0) { $wartosc = $parametr1 + $parametr2; return $wartosc; } Jak widać, definiowana jest funkcja o nazwie suma. SłuŜy ona do obliczania sumy dwóch wyraŝeń podawanych jako parametry (kolejne parametry oddziela się przecinkiem). W przypadku pominięcia któregoś z parametrów przypisana mu będzie wartość 0 - dzieje się tak dzięki zaznaczeniu " = 0" po określeniu nazwy parametru w definicji funkcji (nie jest to konieczne). Z parametrów funkcji moŝna korzystać jak z dowolnej innej zmiennej, ale oczywiście tylko wewnątrz tej funkcji. Wewnątrz funkcji dostępne są tylko zmienne w niej definiowane i parametry. MoŜna się dostać teŝ do innych zmiennych, ale o tym w punkcie "Zasięg zmiennych". Do określania co jest zwracane przez funkcję słuŝy instrukcja return. MoŜe ona być wywołana w dowolnym miejscu funkcji - po dojściu do tej instrukcji kończy się wykonanie funkcji. Funkcja moŝe nie zwracać Ŝadnych wartości. Taka funkcja przydaje się jeśli często powtarzany jest jakiś fragment kodu. Taka funkcja kończy swoje wykonanie po dojściu do końca jej definicji lub instrukcji return (tym razem wywoływanej bez parametru, poniewaŝ funkcja nie zwraca Ŝadnych wartości). Funkcje w PHP nie mogą być ponownie definiowane. Mogą być definiowane w zasadzie w dowolnym miejscu kodu. Wewnątrz funkcji znajdować się moŝe dowolny, prawidłowy pod względem składniowym kod - nawet definicje innych funkcji czy klas.

http://www.gajdaw.pl/php/jak-dzialaja-formularze/ Formularz HTML Formularz HTML definiujemy stosując element FORM. Wewnątrz, po między znacznikami <FORM> oraz </FORM> umieszczamy zawartość formularza, na którą składają się kontrolki (np. INPUT) oraz elementy formatujące (np. TABLE). Typowy formularz składa się z elementu FORM zawierającego tabelę, wewnątrz której umieszczono kilka kontrolek. Listing 1 przedstawia przykładowy formularz. <FORM action="jakis-skrypt.php"> <TABLE> <TR> <TD>Imię:</TD> <TD><INPUT name="imie"></td> </TR> <TR> <TD>Nazwisko:</TD> <TD><INPUT name="nazwisko"></td> </TR> <TR> <TD> </TD> <TD><INPUT type="submit" value="wyślij"></td> </TR> </TABLE> </FORM> Listing 1. Przykładowy formularz. Zawiera on dwa pola do wprowadzania danych (pola te nazwano Imię i Nazwisko) oraz przycisk Wyślij. Osoba odwiedzająca witrynę moŝe umieścić kursor wewnątrz pól formularza, wypełnić je, wpisując napisy Aleksander Macedoński, po czym przesłać formularz, naciskając przycisk Wyślij. Treść wprowadzona przez uŝytkownika zostanie przesłana do skryptu o nazwie jakis-skrypt.php. Nazwę skryptu przetwarzającego formularz podajemy jako wartość atrybutu action elementu FORM. Rysunek 1. Wygląd formularza z listingu 1 przed i po wprowadzeniu danych

Po naciśnięciu przycisku Wyślij, wizyta zostanie przeniesiona pod adres jakis-skrypt.php. W skrypcie tym będą dostępne dane wprowadzone przez uŝytkownika w formularzu. Skrypt przetwarzający formularz zawarty w pliku jakis-skrypt.php moŝe być napisany w dowolnym języku programowania dynamicznych stron WWW. MoŜe to być PHP, Perl, ASP, JavaServerPages, skrypty CGI w bashu, C, czy nawet Pascalu. JednakŜe trzeba od początku jasno podkreślić, Ŝe nie ma moŝliwości przetworzenia formularza w języku HTML. Do przetwarzania formularza musimy uŝyć jednego z języków skryptowych, słuŝących do programowania dynamicznych stron WWW. Formularze tworzymy w języku HTML, stosując między innymi elementy FORM oraz INPUT. Natomiast przetwarzanie formularza wykonuje skrypt napisany na przykład w jednym z języków PHP, ASP lub Perl i umieszczony na serwerze. Zatem korzystanie z formularzy wymaga znajomości zarówno języka HTML jak i języka skryptowego. Język HTML zajmuje się jedynie wyglądem zewnętrznym formularza. Stosując elementy HTML układamy zawartość formularza na stronie oraz ustalamy adres URL skryptu, który będzie zajmował się przetworzeniem danych pochodzących z formularza. Jeśli formularz przedstawiony na listingu 1 zapiszemy do pliku formularz.html, wówczas cały przykład będzie się składał z dwóch plików. Pierwszym plikiem jest plik formularz.html zawierający kod HTML formularza, zaś drugim plikiem będzie jakis-skrypt.php. Pamiętajmy, Ŝe nazwa pliku zawierającego skrypt musi być dokładnie taka, jak wartość atrybutu action formularza. Przesyłanie danych pochodzących z formularza protokołem HTTP Wszystkie transakcje WWW - a zatem takŝe wysyłanie zawartości formularza - są realizowane przy uŝyciu protokołu HTTP. Protokół ten definiuje cztery metody przekazywania danych. Metodami tymi są POST, GET HEAD oraz PUT. W stosunku do formularzy zastosowanie znajdują dwie spośród nich: GET oraz POST. W metodzie GET dane są dołączone do adresu URL i przyjmują postać: http://gdzies.w.sieci/kat/strona.php?imie=jan&nazwisko=nowak&plec=m&wiek=35 Natomiast w metodzie POST dane z formularza są dołączone na końcu zapytania HTTP (za wszystkimi nagłówkami). Metodę przekazywania danych formularza ustalamy atrybutem method elementu FORM. PoniewaŜ wartością domyślną jest GET, zatem formularz: <FORM action="jakis-skrypt.php">... </FORM> jest równowaŝny formularzowi:

<FORM action="jakis-skrypt.php" method="get">... </FORM> Formularz przekazywany metodą POST wygląda następująco: <FORM action="jakis-skrypt.php" method="post">... </FORM> W zaleŝności od uŝytej metody, dane pochodzące z formularza odbieramy na róŝne sposoby wewnątrz skryptu przetwarzającego formularz. Odbieranie danych pochodzących z formularza w skrypcie php Zapytanie HTTP zawierające informacje wprowadzone w formularzu pokonało całą drogę i dotarło do serwera. Jest ono przekazane przez oprogramowanie stosu protokołów TCPIP do procesu serwera Apache, serwer Apache na podstawie rozszerzenia skryptu uruchomi maszynę PHP (lub interpretator Perla czy ASP - zaleŝy to od konfiguracji serwera oraz rozszerzenia skryptu podanego jako atrybut action formularza) i przekaŝe jej zapytanie HTTP. Maszyna PHP przetworzy otrzymane zapytanie, uruchomi skrypt i prześle do skryptu dane otrzymane od serwera Apache w postaci wygodnych tablic asocjacyjnych. Dalsze rozwaŝania dotyczą wyłącznie języka PHP. Tablice $_GET, $_POST oraz $_REQUEST zawierające przetworzone dane pochodzące z formularza i dostępne wewnątrz skryptu php są zmiennymi superglobalnymi. Oznacza to, Ŝe są one widoczne wewnątrz wszystkich funkcji i metod bez konieczności stosowania słowa kluczowego global. Tablica $_GET zawiera dane przekazane do skryptu metodą GET. Tablica $_POST zawiera dane przekazane do skryptu metodą POST. Natomiast tablica $_REQUEST zawiera dane pochodzące z ciasteczek, sesji, oraz przekazane metodami POST lub GET. Dane pochodzące z formularzy przekazywanych metodą GET są dostępne w skrypcie php w tablicy $_GET. Jeśli formularz jest przekazany metodą POST, to naleŝy uŝyć tablicy $_POST. Wszystkie trzy wymienione tablice są tablicami asocjacyjnymi. Indeksem w powyŝszych tablicach moŝe być napis. Jakiego indeksu powinniśmy uŝyć w celu odczytania imienia i nazwiska pochodzących z formularza widocznego na listingu 1? Napis wprowadzony w polu zatytułowanym Imię jest dostępny pod indeksem imie, zaś nazwisko - pod indeksem nazwisko. Indeksy imie i nazwisko są wartościami atrybutu name kontrolek INPUT. Jeśli uŝyto metody $_GET, wówczas imię i nazwisko podane przez internautę w formularzu są dostępne jako: $_GET['imie'] $_GET['nazwisko'] Jeśli uŝyto metody $_POST, to naleŝy uŝyć: $_POST['imie'] $_POST['nazwisko']

Indeksami w tablicach $_POST i $_GET są nazwy kontrolek formularza. Jeśli formularz zawiera kontrolkę: <INPUT name="owoc"> wówczas tablice $_POST I $_GET posiadają element o indeksie owoc. Po wprowadzeniu przez uŝytkownika w polu INPUT napisu gruszka, otrzymamy: $_GET['owoc'] == 'gruszka' lub $_POST['owoc'] == 'gruszka' (w zaleŝności od uŝytej metody). Zatem wybór metody przekazywania danych z formularza do skryptu php wpływa na wybór tablicy superglobalnej, z której skrypt będzie pobierał dane. Jeśli stosujemy metodę POST to naleŝy korzystać z tablicy $_POST. Korzystając z metody GET dane pobieramy z tablicy $_GET. W starszych wersjach php rolę tablic $_GET oraz $_POST odgrywały tablice $HTTP_GET_VARS i $HTTP_POST_VARS (nie były to zmienne superglobalne; ich uŝycie wymagało stosowania słowa global, przez co były nieco mniej wygodne). Istnieje takŝe moŝliwość przekazywania danych z formularzy w postaci zmiennych globalnych. O dostępnością zmiennych globalnych decyduje dyrektywa konfiguracyjna register_globals. Zmienne globalne są powszechnie uznawane za niebezpieczne i odradza się ich stosowanie. Współczesne wersje php posiadają w pliku konfiguracyjnym wpis: register_globals = Off wyłączający dostępność zmiennych globalnych. Ze względów bezpieczeństwa zmiennych globalnych nie naleŝy stosować! Dodajmy jeszcze, Ŝe w związku z pojawieniem się ataków typu XSS (ang. Cross-Site Scripting) równieŝ metoda GET jest uznawana za niebezpieczną. Atakom tego typu jest poświęcony artykuł Chrisa Shifleta p.t. Foiling Cross-Site Attacks, który ukazał się w magazynie PHP Architect (numer z października 2003 r.). Artykuł ten jest dostępny na stronie czasopisma pod adresem http://www.phparch.com. Pewne dodatkowe informacje i przykłady znajdziemy w artykule Theo Spearsa Writing Secure PHP Code jaki ukazał się w magazynie PHP Architect w styczniu 2003 roku. Do przekazywania i przetwarzania danych pochodzących z formularza naleŝy stosować wyłącznie metodę POST oraz tablicę $_POST. Zarówno zmienne globalne jak i metoda GET stwarzają pewne ułatwienia, które - w połączeniu z niefrasobliwością programisty piszącego skrypt - mogą być wykorzystane przez niepowołane osoby do uzyskania nieautoryzowanego dostępu lub zakłócenia pracy serwisu.