· Co to jest PHP
· Instalacja PHP
· Składnia języka
· Ciasteczka - ( cookie )
· Obsługa plików
· PHP a bazy danych
· Wysyłanie poczty w PHP
· Bezpieczeństwo w PHP
Co to jest PHP ?
PHP jest jednym z wielu języków programowania, które umożliwiają szybkie tworzenie dynamicznych stron internetowych. Oficjalna nazwa PHP to " PHP: Hypertext Preprocessor " a sam skrót pochodzi od Personal Home Page. Składnią język ten zbliżony jest do C. PHP zostało napisane przez Rasmusa Lerdorfa, w celu poprawienia funkcjonalności własnej strony internetowej. Jego "twór" został spisany przez programistów z całego świata i tak powstał PHP3 a później PHP4 z nowym mechanizmem ( engine ) Zend. PHP został stworzony w celu pracy z WWW i dlatego jest pełnowartościowym językiem programowania umożliwiającym tworzenie aplikacji internetowych. Współpracuje z wieloma bazami danych np. MySQL oraz z usługami sieciowymi np. IMAP, POP3, czy HTTP. PHP może być instalowane na różnych platformach. Rozprowadzane jest głównie w postaci kodu źródłowego dzięki czemu może być skompilowane na wielu platformach np. Linuksie, FreeBSD lub Windows. Może pracować jako program CGI, bądz być zaistalowanym jako moduł APACHE. Może działać z każdym (?) serverem WWW
Instalacja PHP
Oczywistym jest, że instalację należy zacząć od pobrania dystrybucji PHP. Można ją pobrać z witryny www.php.net. Mamy możliwość pobrania kilka rodzajów pakietu. Najlepszy będzie kod źródłowy ale dla mniej zainteresowanych lub leniwych polecam binarną wersję pod Windows.Instalowanie wersji binarnej dla Windows nie nastręcza trudności. Osobiście polecam program "KRASNAL", który zawiera m.in. serwer APACHE, MySQL oraz PHP.Kompilacja PHPKompilacja kodu w systemach Unixowych jest do siebie podobna - niezależnie jakiego systemu używamy np. Linux, Solaris. Należy pamiętać, że PHP można zainstalować na kilka sposobów. Jeżeli serwerem WWW jest APACHE, wówczas można skompilować PHP jako plik wykonywalny, moduł ładowany dynamicznie lub jako bibliotekę. Poniżej zostanie przedstawiona instalacja PHP jako modułu ładowanego dynamicznie.Po pobraniu odpowiedniego pakietu i rozpakowaniu go należy tak skompilować APACHE by obsługiwał dynamiczne moduły:cd <sciezka_apache>make clean./configure --enable-module=so --enable-rule=SHARED_CORE --prefix=/wwwmakemake installPo odpowiednim przygotowaniu APACHE należy skompilować PHP w następujący sposób:cd <sciezka_do_php>make cleanrm config.cache./configure --with-apxs=/www/bin/apxs (pozostałe opcje konfiguracji)makemake installPolecenia "make clean" i "rm config.cache" służą do usunięcia poprzedniej instalacji. Jeśli instalacja jest pierwszą nie trzeba ich używać. Ważną informacją szczególnie dla osób, które jeszcze nie przeprowadzali takiego procesu tj. kompilacji, jest to, że skrypt konfiguracyjny poszukuje w systemie narzędzi, plików i innych danych systemowych potrzebnych do przeprowadzenia kompilacji. Na podstawie tych danych tworzy skrypt kompilujący kod. Może się zdarzyć, że nie będzie wszystkich wymaganych parametrów do przeprowadznia instalacji. W wyniku procesu kompilacji zostanie stworzony m.in. plik wykonywalny php. Aby sprawdzić poprawność wykonanej kompilacji należy wpisać php < /dev/nullWynik postacią zbliżony do : X-Powered-By PHP/4.0.2Content-type text/html oznacza prawidłowo zakończoną kompilację. KonfiguracjaSposób konfiguracji PHP jest niezależny od platformy, na której działa. Sprowadza się do modyfikacji pliku php.ini. Osoby nie znające opcji konfiguracji mogą skorzystać z plików dołączonych w pakiecie instalacyjnym: php.ini-optimized oraz php.ini-dist. Wystarczy zmienić nazwę któregoś pliku na php.ini i zgrać do odpowiedniego katalogu. Dla Windows jest to C:\Windows a dla Unix najczęściej /usr/local/lib .Przykładowe opcje konfiguracji
· display_errors:boolean - określa czy mają być wyświtlane błędy
· doc_root:string - określa główny katalog PHP na serwerze
· error_log:string - określa nazwę pliku, w którym mają być zapiswane błędy
· max_execution_time:integer - określa czas w sekundach po jakim analizator przerwie działanie skryptu
· safe_mode:boolean - określa czy PHP ma działać w trybie bezpiecznym
· browscap:string - nazwa pliku opisującego możliwości przeglądarki
Opcji konfiguracji PHP jest bardzo dużo. Wszystkie są dostępne w witrynie www.php.net.
Składnia języka
PHP jest najczęściej wbudowany w kod HTML dlatego istnieją znaczniki tworzące bloki PHP:<? echo "Witaj świecie"; ?> -działa tylko z ustawioną opcją short_tag_open w pliku php.ini<?php echo "Witaj świecie"; ?> - wykorzystanie pełnych znaczników<script language="php"> echo "Witaj świecie"; </script> - dla edytorów HTML nie obsługujących instrukcji przetwarzania<% echo "Witaj świecie"; %> - działa tylko z ustawioną opcją asp_tags Składnią PHP jest zbliżony do języka C. Instrukcje są oddzielane średnikiem. KomentarzeW PHP stosujemy komentarze takie jak w języku C lub C++ oraz te używane w skryptach Unixa. Komentarze jednoliniowe komentują do końca lini lub do końca bierzącego bloku PHP (w zależności co nastąpi pierwsze). Podobnie jak w C nie można zagnieżdżać wielowierszowych komentarzy. <?phpprint("Witaj świecie <br>"); // Komentarz jednowierszowy w stylu C++ ?><?php/* To jest komentarzwielowierszowy */ print("Witaj świecie <br>");?><?phpprint("Witaj świecie <br>"); # A to komentarz w stylu Unixa?><?php/*echo "Witaj świecie"; /* Przykład zagnieżdżenia komentarza i spowodowania tym samym błędu */*/?>Typy zmiennych w PHPW PHP wyróżniamy następujące typy: liczby całkowite, zmiennoprzecinkowe, ciągi, tablice i objekty. Typ zmiennej nie jest jawnie ustalany przez programistę lecz zależy od kontekstu użycia zmiennej. W celu poprawnego zarządzania typami PHP posiada funkcje gettype() settype() is_integer() is_array() itp. LiczbyLiczby całkowite można przedstawiać w różnych notacjach: dziesiętnej, ósemkowej i szesnastkowej. Liczby zmiennoprzecinkowe można przedstawiać jako notacja zwykła lub zapis naukowy:<?php $zmienna1=100; // Liczba dziesiętna $zmienna2=-100; // Liczba ujemna$zmienna3=01013; // Liczba 523 w zapisie ósemkowym$zmienna4=0x20B; // Liczba 523 w zapisie szesnastkowym$zmienna5=100.100; // Zapis zwykły liczby zmiennoprzecinkowej$zmienna6=10.0100e2; // Notacja naukowa liczby zmiennoprzecinkowej ?> CiągiCiągi w PHP ograniczamy cudzysłowami ( " ) lub apostrofami ( ' ). Zapis wpływa na sposób interpretacji ciągu. Gdy zastosujemy cudzysłowy zmienne zawarte pomiędzy nimi zostaną zamienione na ich wartości. Przy zastosowaniu apostrofów zmienne nie są zamieniane.
Znaki specjalne w ciągach zamkniętych cudzysłowami
Sekwencja znaków
Znaczenie
\n
nowa linia
\r
powrót karetki CR
\t
tabulacja
\
lewy ukośnik
\"
cudzysłów
\$
znak dolara
W PHP ciągi można łączyć ze sobą. Służy do tego kropka ( . ) Podobnie jak w języku C mamy dostęp do każdego znaku ciągu, który traktujemy jako tablicę znaków.<?php $ciag="To jest przykład ciągu";$ciag1="A to inny przykład";/* Wypisanie ciągów */ print("$ciag"); // Wypisze -> To jest przykład ciąguprint("\"); // Wypisze -> $ciagprint("\' $ciag1 \'"); // Wypisze -> $ciag1/* Łączenie ciągów */ $zmienna1="PHP";$zmienna2=" kurs";$zmienna3=$zmienna1.$zmienna2;print("$zmienna3"); // Wypisze -> PHP kurs ?> TabliceW PHP występują tablice indeksowane (wektory) oraz asocjacyjne. Można również tworzyć tablice wielowymiarowe. Dzięki konstrukcji tablic można jeden wymiar tablicy indeksować liczbą a inny asocjacyjnie. Tablice możemy tworzyć przy pomocy funkcji list() lub array() oraz poprzez jawne przypisanie wartości. Przykład inicjowania i wykorzystania tablic:<?php*/ Tworzenie prostej tablicy */$a[0]="Kurs";$a[1]="php";$a[]="w skryptotece"; // Jawne przypisanie do indeksu 2$a[]="www.skryptoteka.pl"; //Jawne przypisanie do indeksu 4/* Tworzenie tablicy asocjacyjnej */ $kierunkowy["Łódź"]="0-42";$kierunkowy["Warszawa"]="0-22";$kierunkowy["Piotrków"]="0-44";/* Tworzenie tablicy asocjacyjnej przy pomocy funkcji array() */$kierunkowy=array("Łódź"=>"0-42","Warszawa"=>"0-22","Piotrków"=>"0-44");/* Tworzenie tablicy wielowymiarowej */ $maciez=[0][0]="wartosc";$zmienna["Wydział"]["Kierunek"]="Informatyka"; // Tworzona asocjacyjnie $zmienna_a[1]["indeks"]="PHP"; // Indeksowanie liczbowe z asocjacyjnym ?> Zmienne w PHP są poprzedzane znakiem $, po którym następuje nazwa zmiennej. Nazwa zmiennej musi zaczynać się od litery bądź znaku podkreślenia. W nazwie dopuszczone są litery a-z, A-Z, 0-9 oraz znaki ASCII z zakresu 127-255. Wartości do zmiennych mogą być przypisywane przez samą wartość lub poprzez referencję. Aby przypisać poprzez referencję należy nazwę zmiennej poprzedzić znakiem &. W przypadku przypisania przez wartość zmienne pozostają niezależne, zmiana wartości jednej zmiennej nie ma wpływu na wartość drugiej. W przypadku przypisania przez referencję zmienne skojarzone są ze sobą zależne i zmiana wartości jednej zmiennej wpływa na wartość skojarzonej z nią zmiennej. Wielkość liter jest istotna w nazwie zmiennej tj. $Nazwa i $nazwa to dwie różne zmienne. <?php $_zmienna="Skryptoteka";$zmienna=$_zmienna; //Przypisanie poprzez wartośćprint("$_zmienna $zmienna"); // Wypisze -> Skryptoteka Skryptoteka$_zmienna="www.skryptoteka.pl";print("$_zmienna $zmienna"); // Wypisze -> www.skryptoteka.pl Skryptoteka/* Przypisanie przez referencję */ $_zmienna=&$zmienna;print("$_zmienna $zmienna"); // Wypisze -> Skryptoteka Skryptoteka$zmienna="120";print("$_zmienna $zmienna"); // Wypisze -> 120 120 ?>Zmienne predefiniowanePHP oprócz zmiennych tworzonych przez użytkownika posiada szereg zmiennych tworzonych przez system. Zmienne te zależą od wielu czynników np. wersja PHP, serwera WWW. PHP tworzy także zmienne dla danych przesyłanych z formularza metodą POST, GET oraz zmienne plików cookies. Do obejrzenia wszystkich zmiennych służy funkcja phpinfo().
Przykładowe zmienne predefiniowane
REMOTE_ADDR
Adres IP oglądającego stronę
SERVER_PROTOCOL
Nazwa i wersja protokołu
PHP_SELF
Nazwa pliku z wykonywanym skryptem
PHP_COOKIE_VARS
Tablica asocjacyjna zmiennych cookie
PHP_GET_VARS
Tablica asocjacyjna zmiennych GET
PHP_POST_VARS
Tablica asocjacyjna zmiennych POST
REMOTE_PORT
Port WWW klienta
Wszystkie zmienne predefiniowane są opisane w manualu PHPStałeW PHP można definiować stałe. Używa się do tego funkcji define()<?php define("nazwastalej","jejwartosc");define("Ulica","Warszawska");print(Ulica); // wypisze -> Warszawska?> PHP posiada dodatkowo kilka stałych predefiniowanych.Instrukcje warunkowe - if, else, elseif Instrukcja if służy do organizacji sterowania poprzez tworzenie warunków na podstawie wyrażeń logicznych. <?php if(1<2){ echo "Warunek if został spełniony";}else{ echo "Wypisze jeśli warunek if nie został spełniony";} $kolor="czerwony";if($kolor=="zielony"){ echo "Warunek if został spełniony";}elseif($kolor=="żółty"){ echo "Wypisze jeśli warunek elseif został spełniony";} else{ echo "Wypisze jeśli warunek else został spełniony";} ?>PętleW PHP wyróżniamy cztery pętle. Ich działanie jest podobne do pętli języka C i innych języków wysokiego poziomu.<?php // Pętla while$warunek=0;while($warunek<10){ echo "$warunek"; $warunek++;}// Pętla do..while $warunek=0;do { echo "$warunek"; $warunek++;}while($warunek<10)?>Pętle while i do..while są zasadą działania do siebie podobne. Obie wykonują się do czasu gdy ich warunek jest spełniony tj. dopóki ($warunek<10) jest prawdą. Jedyną różnicą pomiędzy nimi jest to, że jeśli warunek ($warunek<10) nie jest spełniny już na samym początku pętla while nie wykona się ani razu natomiast pętla do..while wykona się dokładnie raz. W pierwszym przypadku warunek pętli jest sprawdzany na początku, w drugim na końcu. <?php // Pętla forfor($index=0;$index<10;$index++) { echo "$index"; }?>...
radek.br