Spis treści
Dla języka PHP, który jest back-endowy (interpretowany po stronie serwera), potrzebujemy dostępu do działającego serwera. Będzie to serwer lokalny - tzw. localhost z użyciem oprogramowania o nazwie XAMPP. Dostępny jest na Windows, Linux oraz komputery Mac. Korzystanie z pakietu jest darmowe.
POBIERZ XAMPP
Aby uruchomić skrypt PHP należy umieścić go w folderze htdocs, który znajduje się w folderze xampp. Pamiętaj o tym aby przed uruchomieniem skryptu zmienić nazwę pliku index.php lub usunąć go całkowicie. Aby plik był rozpoznany przez serwer WWW jako skrypt PHP musi on mieć odpowiednie rozszerzenie, aktualnie najczęściej stosowanym rozszerzeniem jest .php.
Do określenia w pliku co jest kodem HTML a co PHP służą specjalne znaczniki. Aby przejść do trybu PHP można użyć jednego z tych znaczników:
Przykładowy skrypt który będzie wyswietli na stronie tekst "Hello World!":
Tekst na stronie możemy umieszczać w pojedyńczym cudzysłowiu ' ' lub w podwójnym " ".
Są to podstawowe działania matematyczne, takie jak dodawanie, odejmowanie itp.
Operator | Zastosowanie | Nazwa działania |
+ | $a + $b | suma |
- | $a - $b | różnica |
* | $a * $b | iloczyn |
/ | $a / $b | iloraz |
% | $a % $b | modulo (reszta z dzielenia) |
Na przykład:
Operator przypisania służy do nadania wartości. Najprostszym przykładem wykorzystania tego operatora jest przypisanie zmiennej konkretnej wartości:
Możemy dokonać przypisania wartości kilku zmiennych. Dokonamy tego przeznaczając dla każdej zmiennej kolejną linię, bądź oddzielając kolejne przypisania przecinkiem.
Możemy również wykorzystać ten operator wielokrotnie, przypisując jednocześnie wielu zmiennym tę samą wartość:
Operator przypisania można łączyć z operatorami arytmetycznymi oraz operatorem służącym do łączenia ciągów znaków:
Zapis skrócony | Pełen zapis | Opis |
$a+=1 | $a = $a + 1 | Zwiększenie wartości $a o 1 |
$a-=1 | $a = $a - 1 | Zmniejszenie wartości $a o 1 |
$a*=1 | $a = $a * 1 | Pomnożenie wartości $a przez 1 |
$a/=1 | $a = $a / 1 | Podzielenie wartości $a przez 5 |
$a%=1 | $a = $a % 1 | Reszta z dzielenia $a przez 1 |
$a.="tekst" | $a = $a."tekst" | Dopisanie "tekst" na końcu zmiennej $a |
Te operatory porównują wartości i zwraca true (prawda - 1) jeśli porównanie jest prawdziwe lub false (fałsz - 0) jeśli takie nie jest.
Operator | Zastosowanie | Wynik |
== | $a == $b | Prawda jeśli $a jest równe $b |
!= | $a != $b | Prawda jeśli $a nie jest równe $b |
< | $a < $b | Prawda jeśli $a jest mniejsze od $b |
> | $a > $b | Prawda jeśli $a jest większe od $b |
<= | $a <= $b | Prawda jeśli $a jest mniejsze bądź równe $b |
>= | $a >= $b | Prawda jeśli $a jest większe bądź równe $b |
Służą one do zmniejszenia (--) lub zwiększenia (++) wartości zmiennej o 1. Obu tych operatorów można użyć zarówno zapisując je bezpośrednio po zmiennej, jak i przed nią. Różnica polega na tym, że zapis po zmiennej spowoduje w pewnych przypadkach zwiększenie bądź zmniejszenie jej wartości po jej wykorzystaniu, natomiast zapis przez zmienną, przed jej użyciem.
Operatory logiczne służą nam do łączenia kilku warunków w jednej instrukcji.
Operator | Zastosowanie | Wynik |
&& | $a && $b | Prawda jeśli $a i (AND) $b są prawdziwe |
|| | $a || $b | Prawda jeśli $a lub (OR) $b jest prawdziwe |
Jest to łączenie ze sobą ciągów znaków. Wykorzystujemy do tego symbol kropki.
Przypisz zmiennej $a wartość Twojego numeru z dziennika. Następnie wykonaj poniższe polecenia, wypisując rezultat każdego z nich w kolejnych liniach ekranu:
Podstawowa budowa instrukcji warunkowej wygląda następująco:
Jeżeli warunek zostanie spełniony, wykonaj instrukcję. Warunek spełniony to taki, dla którego wartość logiczna jest równa true (liczbowo = 1), czyli jest prawdziwa. Przykładowo jeśli wartość zmiennej $a w poniższym przykładzie będzie liczbą większą niż 0 na ekran wypisze się stosowny komunikat:
Po spełnieniu warunku można wykonać więcej niż jedną instrukcję. Wówczas wszystkie elementy, które mają się wykonać w przypadku prawdziwości warunku zamykamy w blok instrukcji pomiędzy klamrami {}.
Możemy też za pomocą instrukcji warunkowej if wyświetlić co się stanie w innym przypadku, gdy pierwszy warunek nie zostanie spełniony. Robimy to za pomocą else lub elseif jeśli chcemy sprawdzić więcej niż dwa warunki.
Składnia switch jest instrukcją warunkową, ale jedną zmienną można porównać nie z jedną wartością, ale z kilkoma. Niestety nie można konstruować złożonych warunków – możliwe jest tylko proste porównywanie (równoważne instrukcji: if($zmienna=="wartość") instrukcja).
Przy instrukcji default nie musimy podawać słowa case. Instrukcje zawarte w tej częsci switcha wykonywane są gdy nasza liczba_całkowita nie będzie miała żadnych z wcześniejszych wartości zawartych w kolejnych opcjach case. Przykład użycia switcha:
Utwórz następujące skrypty:
Używana aby wykonać jakąś czynność określoną ilość razy. Pętla składa się z 3 elementów zamkniętych pomiędzy nawiasami okrągłymi, oddzielonymi od siebie średnikami: pierwszy to wartości początkowe zmiennych – blok ten wykonuje się raz, na początku działania pętli, drugi to warunek lub warunki zakończenia pętli – sprawdzane na początku każdego obiegu pętli i trzeci to blok instrukcji wykonywanych na koniec każdego obiegu pętli, najczęściej inkrementacja zmiennej.
Przykład użycia pętli for:
Brak warunku zakończenia powoduje nieskończone działanie pętli. Istnieją jednak specjalne instrukcje przerywające działanie pętli:
Jest ona wykorzystywana w sytuacjach, kiedy niezbędne jest wykonywanie jakiejś operacji dopóki nie zostanie spełniony warunek. While zbudowany jest w podobny sposób jak instrukcja warunkowa if.
Przykład użycia pętli while:
Odmianą pętli while jest pętla do…while. Pętla while różni się od tej pętli pod względem kolejności zapisu warunku i bloku instrukcji, a także tym, że pętla while w przypadku nie spełnienia warunku nie wykona się wcale, natomiast blok do{} wykona się jeden raz zawsze, dopiero później sprawdzi, czy warunek jest prawdziwy.
Przykład użycia pętli do...while:
Foreach działa na elementach tablicy. Pobiera kolejne elementy tablicy i pozwala wykonać na nich dalsze czynności.
Przykład użycia pętli foreach:
Pobiera poszczególne elementy tablicy $tablica jako $element, następnie wypisuje je na ekran.
Napisz skrypty, które będą posiadały następującą funkcjonalność:
Deklaracja tablicy przedstawia się następująco. Nie określamy typu przechowywanych danych.
Indeksowanie w tablicach rozpoczynamy od cyfry 0. Dlatego na przykład dziesięcioelementowa tablica będzie indeksowana od 0 do 9. Elementem tablicy może być każdy typ zmiennej (z innymi tablicami i obiektami włącznie).
W PHP występuje też inny rodzaj tablic, tak zwane tablice asocjacyjne. Są to tablice, w których zamiast indeksów liczbowych używa się identyfikatorów znakowych. Przykład:
Bardzo często zachodzi potrzeba wykonania jakiejś operacji na wszystkich elementach tablicy. Sprawa jest prosta jeśli tablica jest zwykłą tablicą z indeksami liczbowymi i znamy ilość tych elementów:
array_push – dodaje elementy na koniec
array_pop – zabiera ostatni element
array_shift – zabiera pierwszy element
array_unshift – dodaje elementy na początek
shuffle() – miesza elementy
sort() – sortuje elementy alfabetycznie
. PHP umożliwia także deklaracje tzw. tablic wielowymiarowych. Polega to na tworzeniu kolejnych węzłów elementu dając przy tym wrażenie drzewa elementów. Tablice wielowymiarowe można deklarować podając kolejne indeksy w nawiasach kwadratowych:
Innym sposobem tworzenia tablic wielowymiarowych jest zastosowanie konstrukcji Array():
Deklaracja funkcji wygląda następująco:
Tak natomiast jej wywołanie:
Wywołując funkcję w dowolnym miejscu strony spowodujemy jej wykonanie. Możemy to wykorzystać wywołując dany fragment kodu wielokrotnie na stronie, bądź dołączając plik z funkcjami wywoływać je na wielu stronach naszej witryny. Najprostszy przykład funkcji:
Funkcja może przyjmować parametry wejściowe. Są to przekazywane do wnętrza funkcji wartości, którymi możemy wewnątrz niej operować. Parametry wejściowe funkcji podajemy wewnątrz nawiasu okrągłego.
Możemy podać więcej niż jeden parametr wejściowy do funkcji. Parametry wejściowe oddzielamy od siebie przecinkami.
Funkcja może również zwracać wartość. Czynność tą wykonuje za pomocą return. Poniżej przedstawiam przykład wykorzystania zwracania przez funkcję wartości:
Możemy również ustawić domyślną wartość parametru wejściowego. W przypadku, gdy podczas wywołania funkcji nie podamy jego wartości, zostanie wykorzystana wartość domyślna.
Napisz funkcję o podanej nazwie, wykonującą podane funkcjonalności:
Tutaj zajmiemy się częścią skryptową języka PHP, odebraniem danych z formularza, sprawdzeniem ich poprawności, podstawowymi formami zabezpieczenia danych czy wymuszenia ich konkretnego typu. Zacznijmy od formularza, z którego postaramy się odebrać przesłane przez niego informacje:
Formularz jak widzimy przesyła dane metodą POST, wszystkie poniższe przykłady będą oparte właśnie na tej metodzie. Jeśli chcemy zrobić to samo metodą GET, jedyne co musimy zrobić z poniższym kodem, to zamienić POST na GET. Dane przesyłane metodą POST przechowywane są w tablicy $_POST. Zapisane są tam w komórkach, których indeksem jest wartość atrybutu name pola przesyłanego przez formularz. I tak, jeśli przesyłamy pole formularza o atrybycie name=”reksio”, dostępne to będzie w tablicy POST pod adresem: $_POST[“reksio”]. Analogicznie, jeśli przesyłamy to samo pole metodą GET, wartość dostępna będzie w tablicy $_GET pod adresem $_GET[“reksio”].
Na samym początku musimy określić właściwości naszego formularza, robimy to poprzez ustawienie właściwości action oraz method. Action pokazuje nam do jakiej strony będziemy przekazywać nasze dane (zmienne). Może to być dowolna strona ze skryptem. Method określa w jaki sposób będziemy przekazywać informacje:
W naszym formularzu pole tekstowe ma postać:
Formularz przesyłany jest metodą POST, więc wartość – to co wpisał w to pole użytkownik, będzie dostępne w:
To, że formularz został przesłany, nie oznacza, że został w pełni wypełniony. W przypadku, jeśli użytkownik nie podał imienia, w momencie użycia $_POST[‘imie’] zostanie wypisany błąd, że taka zmienna nie istnieje. Aby temu zapobiec wykorzystamy funkcję isset(), sprawdzającą, czy wartość danej zmiennej została ustawiona:
Kolejnym elementem formularza są radio buttony. Grupa elementów, z której możliwy do zaznaczenia jest tylko jeden.
Kolejnym elementem naszego formularza jest lista rozwijana. Ma ona przypisaną, w znaczniku select ogólną nazwę (name) przesyłanej zmiennej, natomiast jej wartości zawarte są w atrybutach value znaczników option.
Kolejny na tej liście checkbox umożliwia wybranie większej ilości opcji. W naszym przypadku do wyboru są serie gier:
W powyższym przykładzie każde pole checkbox ma własną indywidualną nazwę. Aby sprawdzić, czy dane pole jest zaznaczone, sprawdzamy każdą przesłaną wartość po kolei:
Na koniec proste odebranie informacji zapisanej w polu textarea. Dla przykładu w treści wykorzystane znaczniki HTML:
1. Utwórz formularz logowania użytkownika w pliku index.html, ma zawierać pola: login (text), hasło (password), checkbox z etykietą zapamiętaj mnie, przycisk do przesłania formularza. Formularz ma zostać przesłany do pliku login.php, w którym:
2. Utwórz formularz, znajdujący się w pliku komentarz.html, służący do wpisania komentarza. Formularz ma zawierać pola:
Formularz prześlij do pliku zapisz.php. Wyświetl w nim w kolejnych paragrafach pseudonim oraz dwa razy komentarz. Komentarz wyświetl kolejno w wersji z wykonanym kodem html (np. tekst w znacznikach ma zostać pogrubiony), oraz w pełni tekstowo (ze znacznikami html w postaci tekstu).
3. Utwórz ankietę składającą się z 3 pytań. Pierwsze ma zawierać do wyboru listę rozwijaną zawierającą minimum 3 opcje, drugie zawierające minimum 3 pola typu radio oraz trzecie z minimum trzema polami checkbox. Formularz prześlij do pliku wynik.php, w którym wypiszesz wszystkie wybrane opcje.
4. Napisz formularz, składający się z dwóch pytań, pierwszego o kolor tła, drugiego o kolor tekstu. Formularz prześlij do pliku kolory.php, w którym w paragrafie (wysokość 50%; szerokość 50%; marginesy lewy i prawy równe, margines górny 50px, ramka 2 px czerwona kreskowana) wypiszesz swoje imię i nazwisko czcionką o kolorze podanym w formularzu. Tło paragrafu również ustaw na to podane w formularzu. Kolory przesłane mają być w postaci szesnastkowej liczby 6 cyfrowej. Sprawdź poprawność przesłanych przez użytkownika liczb.
5. Utwórz formularz zawierający pola: koszt benzyny (text), ilość kilometrów (number), średnie spalanie (text). Formularz prześlij do pliku koszt.php, w którym wypiszesz na ekran wszystkie przesłane przez użytkownika informacje oraz obliczysz i wypiszesz na ekran koszt przejazdu. Zadbaj o poprawność przesłanych danych (koszt benzyny i średnie spalanie – liczby zmiennoprzecinkowe).
6. Utwórz formularz obliczający koszt dowozu pizzy, składający się z dwóch pól: pole number – odległość w km, checkbox – ciepła. Formularz prześlij do pliku pizza.php, w którym wypiszesz obliczony koszt dowozu. Koszt dowozu obliczamy następująco: liczbę km mnożymy przez 50 groszy, jeśli pizza ma dotrzeć ciepła trzeba będzie doliczyć jeszcze dodatkowo 15% kosztów dowozu.
Aby połączyć się z bazą musimy najpierw uruchomić w XAMPPie serwer baz danych MySQL. Przykład połączenia się z bazą w PHP:
Można wpisywać bezpośrednio nazwę użytkownika, hosta, bazy i hasło do polecenia bez tworzenia zmiennych.
Wypisanie na ekran imion i nazwisk 10 uczniów. Kod PHP z wykorzystaniem mysqli_query($połączenie, $zapytanie) – wykonanie zapytania, mysqli_num_rows($wynik) – liczba wynikowych wierszy, mysqli_fetch_assoc($wynik) – zapisanie wiersza wyniku w tablicy asocjacyjnej, $wiersz[“imie”] – pobranie elementu tablicy zapisanej w zmiennej wiersz, pod adresem imie.
Pobranie pojedynczej wartości z tabeli:
Pobranie pojedynczego wiersza z tabeli
Wprowadzenie rekordu do tabeli
Modyfikacja informacji w bazie