Narzdzia informatyki 13 XII 2006 r PHP Plan













![Tablice n Aby stworzyć tablicę wystarczy przypisać wartość któremuś z jej pól n $tablica[0]="wartość Tablice n Aby stworzyć tablicę wystarczy przypisać wartość któremuś z jej pól n $tablica[0]="wartość](https://slidetodoc.com/presentation_image_h/da67a44afe02b76ca513123cd3e43fd2/image-14.jpg)










































![Zadanie 1 n Utworzenie tablicy: $t[1][1]="Kowalski"; $t[1][2]="Jan"; $t[1][3]="1500"; $t[2][1]="Nowak"; $t[2][2]="Tomasz"; $t[2][3]="2100"; $t[3][1]="Smolarek"; $t[3][2]="Włodzimierz"; $t[3][3]="4300"; Zadanie 1 n Utworzenie tablicy: $t[1][1]="Kowalski"; $t[1][2]="Jan"; $t[1][3]="1500"; $t[2][1]="Nowak"; $t[2][2]="Tomasz"; $t[2][3]="2100"; $t[3][1]="Smolarek"; $t[3][2]="Włodzimierz"; $t[3][3]="4300";](https://slidetodoc.com/presentation_image_h/da67a44afe02b76ca513123cd3e43fd2/image-57.jpg)



![Zadanie 2 n Badanie poprawności hasła: $zalogowany=0; $wyslano=$_POST['wyslano']; if ($wyslano==1) { $proba=$_POST['haslo']; if($proba==$haslo) { Zadanie 2 n Badanie poprawności hasła: $zalogowany=0; $wyslano=$_POST['wyslano']; if ($wyslano==1) { $proba=$_POST['haslo']; if($proba==$haslo) {](https://slidetodoc.com/presentation_image_h/da67a44afe02b76ca513123cd3e43fd2/image-61.jpg)


![Zadanie 3 – użycie funkcji switch ($_GET['id']) { case ("1"): include ("1. txt"); break; Zadanie 3 – użycie funkcji switch ($_GET['id']) { case ("1"): include ("1. txt"); break;](https://slidetodoc.com/presentation_image_h/da67a44afe02b76ca513123cd3e43fd2/image-64.jpg)


- Slides: 66

Narzędzia informatyki 13. XII. 2006 r PHP

Plan prezentacji n n n n Krótkie wprowadzenie Składnia języka Warunki i pętle Formularze i poczta Dostęp do plików Obsługa My. SQL Zadania

Plan prezentacji n Krótkie n n n wprowadzenie Składnia języka Warunki i pętle Formularze i poczta Dostęp do plików Obsługa My. SQL Zadania

Czym jest PHP? n PHP to skryptowy język programowania służący przede wszystkim do tworzenia dynamicznych stron WWW i wykonywany w tym przypadku po stronie serwera, z możliwością zagnieżdżania w HTML (bądź XHTML).

Zalety skryptów PHP n n Pomimo dużych możliwości dość prosta składnia (zbliżona do C) Łatwa obsługa formularzy Łatwa integracja z bazami danych Wykonywanie skryptów po stronie serwera

Plan prezentacji n Krótkie wprowadzenie n Składnia n n n języka Warunki i pętle Formularze i poczta Dostęp do plików Obsługa My. SQL Zadania

Jak umieścić skrypt na stronie? n n n <? (treść skryptu) ? > <? php (treść skryptu) ? > <script language="php"> (treść skryptu) </script> <% (treść skryptu) %> (od wersji 3. 0. 4) Plik o rozszerzeniu *. php 3 *. php 4 *. php 5 zależnie od ustaleń administratora serwera

Najprostszy skrypt n<? echo("To jest prosty skrypt PHP"); ? > W miejscu gdzie zostanie wstawiony ten skrypt powinien pojawić się napis To jest prosty skrypt PHP. Ten skrypt składa się tylko z jednej instrukcji. Instrukcje w skryptach PHP są kończone średnikami.

Komentarze n n <? echo("Kawałek<BR>tekstu"); /* Poprzednia linia wyświetla w 2 liniach napis "kawałek tekstu". Nie jest to zbyt odkrywcze, ale w końcu chodzi o przykład zastosowania komentarza ; -) */ ? > <? echo(„Tekst”); //to też jest komentarz ? >

Wykorzystanie zmiennych n n n Nazwy zmiennych zawsze zaczynają się od znaku $. Nie jest konieczne deklarowanie zmiennych, tak jak ma to miejsce w wielu innych językach. Aby stworzyć zmienną wystarczy nadać jej jakąś wartość, np: $a=7; $b="Jakiś tekst"; $c=2. 654; $d=0. 0

Wykorzystanie zmiennych n integer-liczba całkowita double-liczba rzeczywista string-łańcuch znaków array-tablica n $a=3; $b=„Jakiś tekst”; $c=„$a, $b”; n n n Zmienna $c będzie miała wartość "3, Jakaś tekst".

Zmienne predefiniowane n PHP udostępnia dla każdego pracującego skryptu dużą ilość predefiniowanych zmiennych. Jednakże wiele spośród tych zmiennych nie może być w pełni objaśnionych, gdyż są zależne od rodzaju serwera, jego wersji i ustawień i innych czynników.

Zmienne predefiniowane n n $_SERVER Zmienne tworzone przez serwer lub bezpośrednio powiązane ze środowiskiem uruchomieniowym danego skryptu. $_GET Zmienne dostarczone do skryptu za pomocą metodą GET protokołu HTTP. $_POST Zmienne dostarczone do skryptu metodą POST protokołu HTTP. $_SESSION Zmienne aktualnie zarejestrowane jako sesyjne.
![Tablice n Aby stworzyć tablicę wystarczy przypisać wartość któremuś z jej pól n tablica0wartość Tablice n Aby stworzyć tablicę wystarczy przypisać wartość któremuś z jej pól n $tablica[0]="wartość](https://slidetodoc.com/presentation_image_h/da67a44afe02b76ca513123cd3e43fd2/image-14.jpg)
Tablice n Aby stworzyć tablicę wystarczy przypisać wartość któremuś z jej pól n $tablica[0]="wartość $tablica[1]="wartość $tablica[2]="wartość $tablica[3]="wartość $tablica[4]="wartość pola pola n $indeks=3; $tablica[$indeks]=27; 0"; 1"; 2"; 3"; 4";

Operatory i wyrażenia n $a=5; $b=$a+2; /* $b ma wartość 7 */ $b+=3; /* $b=$b+3 */ $c=2*$a+3*($b-$a); n $a=$b=5; Przypisania są obliczane od prawej strony (w tym wypadku najpierw zmiennej $b przypisywana jest wartość 5, potem zmiennej $a wartość zmiennej $b).

Operatory i wyrażenia n n n PHP obsługuje kilka typów porównań. Porównanie ma wartość 1 jeżeli warunek jest spełniony, lub 0 gdy nie jest. $a==$b $a>=$b $a<=$b

Tworzenie funkcji n n Function f($a, $b) { $a+=$b; echo($a); } <? f(7, 2); ? > //wypisze na ekranie wartość 9

Zmienne w funkcjach n n $a=5; Function f() { echo($a); } f(); Wykonanie powyższego kodu nie spowoduje, jak mogłoby się wydawać, wyświetlenia liczby 5.

Zmienne w funkcjach n n n Żeby zmienna globalna (w tym wypacku $a) była widoczna wewnątrz funkcji, należy użyć polecenia global: $a=5; Function f() { global $a; echo($a); } f(); Po wykonaniu powyższego kodu w dokumencie pojawi się liczba 5.

Zmienne w funkcjach n n n Jeżeli stworzymy zmienną wewnątrz funkcji, jej wartość będzie za każdym wywołaniem ustawiana od początku: Function f() { $a=2; echo($a); $a++; } f(); Wykonanie tego kodu spowoduje pojawienie się dwa razy tego samego.

Zmienne w funkcjach n n n Jeżeli chcemy, żeby zmienna nie traciła wartości po zakończeniu funkcji, należy użyć polecenia static: Function f() { static $a=2; echo($a); $a++; } f(); Teraz w dokumencie pojawi się najpierw liczba 2, potem 3.

Zwracanie wartości n n n Function f($p) { return 3*$p; } $a=f(7); echo($a); /* $a ma wartość 21 */ /* można też od razu echo(f(7)); */ Po zwróceniu wartości kończy się wykonywanie funkcji

Plan prezentacji n n Krótkie wprowadzenie Składnia języka n Warunki n n i pętle Formularze i poczta Dostęp do plików Obsługa My. SQL Zadania

Instrukcja warunkowa if/else n n n if($a>$b) echo("$a jest if($a>$b) { echo("$a jest $a++; } if($a>$b) echo("$a jest else echo("$a jest większe od $b"); mniejsze lub równe $b");

Operatory logiczne n n || - alternatywa (lub) && - koniunkcja (i) ! - negacja (zaprzeczenie) $a=1; $a=3; if($a==1&&$b==2) echo("A"); if($a==1||$b==2) echo("B"); if(!($a==1&&$b==2)) echo("C"); Wynikiem będzie BC

Pętla while n n $a=0; while($a<5) { echo("$a "); $a++; } Powyższy skrypt wyświetli liczby od 0 do 4.

Pętla do. . while n n $a=0; do { echo("$a "); $a++; }while($a<5); Pętla do. . while różni się od pętli while tym, że najpierw wykonuje się pętla, a dopiero potem sprawdzany jest warunek.

Pętla for n for($a=0; $a<5; $a++) { echo("$a "); } n for($a=0; $a<5; echo("$a "), $a++); n To samo co wyżej zapisane inaczej

Instrukcje break i continue n n $a=0; while($a<10) { $a++; if($a==3) break; } Ta pętla nie wykona się 10 razy - gdy $a osiągnie wartość 3, wykonanie pętli zostanie przerwane.

Instrukcje break i continue n n Można też przejść do następnego powtórzenia służy do tego instrukcja continue: $a=0; while($a<10) { $a++; if($a==3) continue; echo("aaa"); /* ta instrukcja wykona się tylko gdy $a nie jest równe 3 */ }

Instrukcja switch n switch($a) { case 1: echo("a jest równe 1"); break; case 3: echo("a jest równe 3"); break; case 11: echo("a jest równe 11"); break; }

Plan prezentacji n n n Krótkie wprowadzenie Składnia języka Warunki i pętle n Formularze n n n i poczta Dostęp do plików Obsługa My. SQL Zadania

Obsługa formularzy n Skryptu PHP można użyć do obsługi formularza. Aby tego dokonać, należy najpierw odpowiednio przygotować formularz. W znaczniku FORM w parametrze ACTION należy podać adres dokumentu PHP mającego obsłużyć ten formularz. Parametr METHOD może mieć wartość POST lub GET - obie metody są obsługiwane przez PHP. Jednak należy pamiętać, że formularze wysyłane przez GET mają dość ograniczoną długość. Ich zaletą jest za to, że użytkownik może zrobić sobie zakładkę do wyników formularza, co nie jest możliwe w przypadku formularzy POST. Należy pamiętać o zdefiowaniu nazw wszystkich pól formularza z których skrypt ma skorzystać.

Obsługa formularzy n n n <FORM ACTION=skrypt. php METHOD=POST> <INPUT TYPE=TEXT NAME=tekst> </FORM> Napisanie skryptu obsługującego formularz jest bardzo proste. Właściwie większość pracy wykonuje za nas PHP - po prostu w skrypcie od razu będą dostępne zmienne o nazwach takich jak nazwy pól formularza, zawierające ich wartości: echo($tekst); /* ta linia wyświetli zawartość pola tekst z formularza */

Obsługa formularzy n W przypadku pola tekstowego będzie to po prostu wpisany przez użytkownika tekst. Jeżeli pole jest typu CHECKBOX wartością będzie "on" jeżeli pole jest zaznaczone, lub zmienna będzie pusta jeżeli pole nie zostało zaznaczone. Jeżeli w polu typu CHECKBOX podamy parametr VALUE, będzie on użyty zamiast "on". Tak samo wygląda obsługa pola typu RADIO. Wartością pola SELECT będzie wartość parametru VALUE zdefiniowanego w znaczniku OPTION.

Wysyłanie poczty n n mail(„adres 1 adres 2”, ”temat”, ”treść”); mail(„login@domena", "Wiadmość testowa", "Tutaj można wpisać tresć wiadomości. "); Ten przykład wyśle wiadomość na adres login@domena. Adresatów należy oddzielić spacjami.

Wysyłanie formularza pocztą n n n <FORM ACTION=skrypt. php METHOD=POST> <INPUT TYPE=TEXT NAME=email><BR> <TEXTAREA NAME=tresc></TEXTAREA><BR> <INPUT TYPE=SUBMIT> </FORM> Teraz skrypt który wyśle dane pocztą: mail("ty@twoj. serwer", "Formularz", $tresc adres zwrotny: $email);

Plan prezentacji n n Krótkie wprowadzenie Składnia języka Warunki i pętle Formularze i poczta n Dostęp n n do plików Obsługa My. SQL Zadania

Uprawnienia n 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, jak użytkownik który go umieścił. Może też mieć uprawnienia użytkownika nobody - wtedy żeby móc ze skryptu zmodyfikować jakiś plik, trzeba nadać prawo zapisu wszystkim użytkownikom. Dokładne inforacje na ten temat powinien dostarczyć administrator serwera na którym umieszczamy skrypty

Otwieranie plików n n n n Przed wykonaniem jakiejkolwiek operacji na pliku, należy go otworzyć. Służy do tego funkcja fopen. Pobiera ona 2 argumenty - pierwszy to nazwa pliku który chcemy otworzyć. Drugi parametr może mieć następujące wartości: r - otwiera plik do odczytu r+ - otwiera plik do odczytu i zapisu w - kasuje zawartość pliku i otwiera go do zapisu w+ - kasuje zawartość pliku i otwiera go do zapisu i odczytu a - otwiera plik do dopisywania a+ - otwiera plik do dopisywania i odczytu

Otwieranie plików n n Co ciekawe, funkcja fopen może otworzyć plik na innym serwerze przez protokół http (tylko odczyt), lub ftp (odczyt lub zapis, ale nie jednocześnie). fopen zwraca liczbę, która służy do identyfikowania otwartego pliku. $file=fopen("file. txt", "r"); /* otwiera plik file. txt do odczytu */ $file=fopen("file. txt", "w"); /* otwiera plik do zapisu. Jeżeli plik nie istnieje, zostanie utworzony */ $file=fopen("ftp: //adres. serwera/plik", "r"); /* otwiera plik przez protokół ftp */

Otwieranie plików n n Po zakończeniu operacji na pliku, należy go zamknąć funkcją fclose, np: $file=fopen("file. txt", "r"); fclose($file);

Odczyt z pliku n n n $znak=getc($file); Funkcja odczytuje 1 znak z pliku Jeśli funkcja napotka koniec pliku, zwróci wartość FALSE. Po odczytaniu znaku, pozycja w pliku jest przesuwana o 1 do przodu. Dzięki temu, po kolejnym wywołaniu funkcji getc otrzymamy kolejny znak, a nie jeszcze raz ten sam.

Odczyt z pliku n n n $linia=fgets($file, $max. Len); Drugi parametr określa ile znaków funkcja może odczytać. Trzecią funkcją do odczytu z pliku jest fread. Działa ona podobnie do fgets, z tym że nie przerywa czytania gdy natrafi na znak nowej linii.

Zapis do pliku n n fwrite($file, $tekst, $max. Len); Funkcja ta zapisuje tekst podany jako 2 parametr do pliku identyfikowanego przez $file. 3 parametr jest opcjonalny i określa maksymalną długość tekstu, jaka może zostać zapisana.

Blokowanie plików n n n flock($file, mode); mode: 1 -dostęp do odczytu 2 -dostep do zapisu 3 -zwolnienie blokady

Inne funkcje n n n n n file_exists(nazwa) - sprawdza, czy istnieje plik o podanej nazwie filegroup(nazwa) - zwraca identyfikator grupy, do której należy plik fileowner(nazwa) - zwraca identyfikator właściciela pliku filesize(nazwa) - zwraca rozmiar pliku o podanej nazwie ftell($file) - zwraca pozycję w otwartym pliku is_readable(nazwa) - sprawdza, czy skrypt ma uprawnienia do odczytania pliku is_writeable(nazwa) - sprawdza, czy skrypt może zapisać do pliku mkdir(nazwa) - tworzy katalog o podanej nazwie readfile(nazwa) - wyświetla zawartość pliku

Prosty licznik tekstowy n if(file_exists("counter. n")) /* sprawdza, czy plik istnieje */ { $file=fopen("counter. n", "r"); /* otwiera plik */ flock($file, 1); /* blokuje plik */ $ile=fgets($file, 100); /* odczytuje wartość */ flock($file, 3); /* odblokowuje plik */ fclose($file); /* zamyka plik */ $ile++; /* zwiększa wartość o 1 */ } else $ile=1; /* jeśli plik nie istnieje, wyświetli się 1 */ $file=fopen("counter. n", "w"); /* otwiera plik do zapisu */ flock($file, 2); /* blokuje do zapisu */ fwrite($file, $ile); /* zapisuje wartość */ flock($file, 3); /* odblokowuje plik */ fclose($file); /* zamyka plik */ echo($ile); /* wyświetla wartość */

Plan prezentacji n n n Krótkie wprowadzenie Składnia języka Warunki i pętle Formularze i poczta Dostęp do plików n Obsługa n Zadania My. SQL

Zapytania n $zaptanie="twoje zapytanie"; $wykonaj=mysql_query($zapytanie); n Po takiej operacji zmienna $wykonaj będzie zawierać wartość TRUE, jeśli operacja powiedzie się, jeśli nie zwróci wartość FALSE.

Łączenie się z bazą danych n mysql_connect (nazwa_hosta: port, użytkownik, hasło); n $sql = mysql_connect(serwer. pl, abc, 123); n n Funkcja mysql_connect zwróci wartość TRUE, jeśli zakończy się sukcesem, jeśli nie powiedzie się - zwróci wartość FALSE. mysql_close($sql); //rozłączenie się z bazą

Tworzenie nowej bazy oraz jej wybieranie n mysql_create_db("zawodnicy"); n Tworzenie bazy danych. n mysql_select_db("zawodnicy"); n Wybieranie bazy danych.

Zagadnienia SQL n $zapytanie="CREATE DATABASE zawodnicy"; $wykonaj = mysql_query($zaptanie); n Bazę danych możemy stworzyć także za pomocą wyrażeń SQL w formie zapytania

Wyświetlanie wyników przeszukiwania tabeli n $zapytanie = "SELECT * FROM nazwa_tabeli"; $wykonaj = mysql_query($zaptanie); while($wiersz = mysql_fetch_array($wykonaj)) { print "Pole pierwsze". $wiersz['pole 1']. " "; print "Pole drugie". $wiersz['pole 2']. " "; print "Pole trzecie". $wiersz['pole 3']. " "; }

Plan prezentacji n n n Krótkie wprowadzenie Składnia języka Warunki i pętle Formularze i poczta Dostęp do plików Obsługa My. SQL n Zadania

Zadanie 1 n n Utworzyć tablicę dwuwymiarową Wyświetlić ją za pomocą tabeli tak, aby dwa sąsiednie wiersze miały różny kolor tła
![Zadanie 1 n Utworzenie tablicy t11Kowalski t12Jan t131500 t21Nowak t22Tomasz t232100 t31Smolarek t32Włodzimierz t334300 Zadanie 1 n Utworzenie tablicy: $t[1][1]="Kowalski"; $t[1][2]="Jan"; $t[1][3]="1500"; $t[2][1]="Nowak"; $t[2][2]="Tomasz"; $t[2][3]="2100"; $t[3][1]="Smolarek"; $t[3][2]="Włodzimierz"; $t[3][3]="4300";](https://slidetodoc.com/presentation_image_h/da67a44afe02b76ca513123cd3e43fd2/image-57.jpg)
Zadanie 1 n Utworzenie tablicy: $t[1][1]="Kowalski"; $t[1][2]="Jan"; $t[1][3]="1500"; $t[2][1]="Nowak"; $t[2][2]="Tomasz"; $t[2][3]="2100"; $t[3][1]="Smolarek"; $t[3][2]="Włodzimierz"; $t[3][3]="4300"; $t[4][1]="Wlazły"; $t[4][2]="Mariusz"; $t[4][3]="6600"; $t[5][1]="Lepper"; $t[5][2]="Andrzej"; $t[5][3]="54700";

Zadanie 1 n Wypisanie wierszy: for($i=1; $i<=5; $i++) { if ($i%2!=0) { $style="t 1"; } else { $style="t 2"; } echo"<tr>"; for($j=1; $j<=3; $j++) { echo” <td class="$style">". $t[$i][$j]. "</td>"; } echo"</tr>"; }

Zadanie 2 n Stworzyć stronę zabezpieczoną hasłem

Zadanie 2 n Zdefiniowanie hasła $haslo="ni"; n Formularz logowania echo” <form method="post„ action="zadanie 2. php"> <input type="password" name="haslo"/> <input type="hidden" name="wyslano" value="1"; /> <input type="submit" value="Loguj" /> </form> ”;
![Zadanie 2 n Badanie poprawności hasła zalogowany0 wyslanoPOSTwyslano if wyslano1 probaPOSThaslo ifprobahaslo Zadanie 2 n Badanie poprawności hasła: $zalogowany=0; $wyslano=$_POST['wyslano']; if ($wyslano==1) { $proba=$_POST['haslo']; if($proba==$haslo) {](https://slidetodoc.com/presentation_image_h/da67a44afe02b76ca513123cd3e43fd2/image-61.jpg)
Zadanie 2 n Badanie poprawności hasła: $zalogowany=0; $wyslano=$_POST['wyslano']; if ($wyslano==1) { $proba=$_POST['haslo']; if($proba==$haslo) { $zalogowany=1; } else { echo"Błędne hasło!"; } }

Zadanie 2 n Wyświetlanie strony if ($zalogowany==1) { // zabezpieczona treść } else { // kod formularza }

Zadanie 3 n Stworzyć witrynę, której podstrony zachowują część kodu strony głównej
![Zadanie 3 użycie funkcji switch GETid case 1 include 1 txt break Zadanie 3 – użycie funkcji switch ($_GET['id']) { case ("1"): include ("1. txt"); break;](https://slidetodoc.com/presentation_image_h/da67a44afe02b76ca513123cd3e43fd2/image-64.jpg)
Zadanie 3 – użycie funkcji switch ($_GET['id']) { case ("1"): include ("1. txt"); break; case ("2"): include ("2. txt"); break; case ("3"): include ("3. txt"); break; default: include ("start. txt"); }

Zadanie 3 n Rozwiąż problem używając konstrukcji if

Koniec n Dziękujemy za uwagę