Aplikacje internetowe. Informacja o języku PHP. Osadzanie skryptów. Instrukcje, komentarze, zmienne, typy, stałe. Operatory. Struktury kontrolne. Tablice.
dr Tomasz Jach WWW: E-mail: Adres: Instytut Informatyki ul. Będzińska 39 41-200 Sosnowiec Pokój 214 Telefon: 32 3689765 Zaliczenie zajęć: kolokwium + projekt + praca na zajęciach. Obecność na zajęciach obowiązkowa.
O przedmiocie. Plan zajęć L.p. Tematyka 1. Wstęp do HTMLa. Znaczniki. Struktura logiczna a opis dokumentu. Narzędzia programisty. CSSy. 2. Podstawy PHP. Geneza języka. Składnia, zmienne, typy, operatory, operacja na łańcuchach, instrukcje warunkowe, pętle 3. PHP ciąg dalszy. Formularze, walidacja formularzy. Wysyłanie wiadomości e-mail. 4. Łączenie się z bazą danych. Operacje bazodanowe. 5. Uwierzytelniania. Pliki Cookies 6. Zaawansowane funkcje w PHP. Data, czas, internacjonalizacja. 7. Model MVC. Wprowadzenie do frameworków.
Warunki zaliczenia Krótki teścik (ok. 10 pytań) na ostatnim wykładzie Pytania jednokrotnego wyboru
Literatura polecana Luke Welling, Laura Thomson. PHP i MySQL. Tworzenie stron WWW. Vademecum profesjonalisty. Helion, Gliwice Larry Ullman. PHP6 i MySQL 5. Dynamiczne strony WWW. Szybki start. Helion, Gliwice Dan Cederholm. Kuloodporne strony internetowe. Jak poprawić elastyczność z wykorzystaniem XHTML-a i CSS. Helion, Gliwice /
Aplikacje internetowe Aplikacja internetowa = program działający w środowisku przeglądarki internetowej. Aplikacje i/lub dynamiczne strony internetowe: Reagują na zmieniające się parametry (pora dnia, wersja przeglądarki) Dysponują własną pamięcią (sklepy internetowe, spersonalizowane wiadomości itp.) Umożliwiają wyszukiwanie informacji, wysyłanie komentarzy, filtrowanie Często posiadają interfejs administracyjny
Wady i zalety webaplikacji Brak skomplikowanych procedur instalacji i wdrażania. Małe (lub całkiem brak) wymogi odnośnie przestrzeni dyskowej i/lub sprzętu. Łatwe do aktualizacji. Dobra integracja z pozostałymi aplikacjami. Wieloplatformowość. Kompatybilność z różnymi przeglądarkami i standardami. Zależność od szybkości i niezawodności łącza internetowego oraz serwera. Brak prywatności użytkowników.
Podstawy HTMLa
Znaczniki HTML Strukturalne np. <h2>golf</h2> nadaje znaczenie wyrazowi "Golf" i traktuje go jako nagłówek drugiego stopnia Prezentacyjne opisują wygląd poszczególnych elementów, np. <b>lama</b> powoduje, że "lama" zostanie wyświetlona pogrubioną czcionką. Większość znaczników prezentacyjnych w specyfikacji HTML 4.0 oznaczono jako przestarzałe na rzecz kaskadowych arkuszy stylów CSS. Hipertekstowe zawierają linki do innych dokumentów lub innych części tego samego dokumentu.
Jak stworzyć strukturę strony? Koncepcje tworzenia stron: Ramki stworzone by ułatwić tworzenie stron zawierających powtarzające się elementy menu, nagłówek, stopka Jak strona się w całości nie mieści na ekranie może zostać ucięta jej część np. menu. Zła indeksacja przez boty. Trudności z wydrukiem. Strona wyświetla cały czas stały adres.
Jak stworzyć strukturę strony? Tabele stworzone do prezentowania danych tabelarycznych ale przecież można nie wyświetlać obramowania i używać do pozycjonowania elementów strony Śmietnik zamiast kodu. Często występowała tabelka w tabelce osadzona w tabelce. Trudności w odbiorze stron przez osoby niedowidzące (Text-To-Speech) Strona wyświetla się po pobraniu wszystkich elementów. ZNACZNA nadmiarowość kodu
Jak stworzyć strukturę strony?
Jak dodać warstwę wizualną Pliki CSS czyli jak powiedzieć komputerowi jak ma wyświetlać każdy element.
Przykład dobrej nawigacji po stronie
Zgodność z HTML5 przeglądarek
Od czego zacząć edytor http://www.jetbrains.com/phpstorm/
Od czego zacząć serwer zewnętrzny Na pewnym etapie przyda się zewnętrzny hosting. Ofert jest w bród, także bezpłatnych. Na co zwracać uwagę przy wyborze? Cena Gdzie fizycznie jest serwerownia (pingi!) Czy support działa w nocy i w weekendy? Dostęp do zarządzania domeną (np. cpanel) Możliwości (np. cron, catch-all na pocztę, dostęp przez SSH, itp.)
Jak to zainstalować 1. Zainstaluj XAMPPa: http://sourceforge.net/projects/xampp/ 2. Zainstaluj PHP Storm: http://www.jetbrains.com/phpstorm/ 3. Stwórz nowy projekt (pusty) 4. Files -> Settings -> Deployment -> + 1. Name: Lampka 2. Type: FTP 3. Login, Pass, itp.: jak do serwera LAMP 4. Zakładka Mappings: Jak na rysunku
Tak to ma wyglądać
Tak to ma wyglądać
I jeszcze baza danych 5. View -> Tool Windows ->Database -> + -> Data Source -> MySQL 1. User, pass: jak w serwerze FTP 2. Host: lamp.ii.us.edu.pl 3. ACHTUNG: Nie zapomnij o kliknięciu na Download driver files
Tak to ma wyglądać
Przydatne narzędzia http://browsershots.org/
Przydatne narzędzia http://www.ffonts.net/
Przydatne narzędzia http://colorexplorer.com/
Przydatne narzędzia http://freemusicarchive.org/
Przydatne narzędzia http://jigsaw.w3.org/css-validator/
Przydatne narzędzia http://www.colorzilla.com/gradient-editor/
Przydatne narzędzia http://www.blended-html.com/index.html
Przydatne narzędzia http://csslayoutgenerator.com/
Przydatne narzędzia http://www.layoutit.com/
Przydatne narzędzia Firebug / Web Inspector
Od czego zacząć - wiedza Niezbędne będą: Znajomość podstawowego HTMLa (2h): http://pl.wikibooks.org/wiki/html Znajomość podstaw CSSa (2h): http://pl.wikibooks.org/wiki/css Przydadzą się gdzieś po drodze: JavaScript (5h): http://www.codecademy.com/en/tracks/javascript jquery (8h): http://www.codecademy.com/en/tracks/jquery http://try.jquery.com/ Bootstrap (bardzo opcjonalnie): http://getbootstrap.com/
Język PHP Język interpretowalny, a nie kompilowany Powstał w celu programowania po stronie serwera Jest obecnie najbardziej popularnym językiem programowania w Internecie
PHP i HTML w jednym stali domu Aby plik był rozpoznawany przez serwer musi mieć odpowiednie rozszerzenie Oprócz tego serwer musi mieć prawa do wykonania takiego pliku (CHMOD o+x) Ale rozszerzenie to nie wszystko: <? echo ( Skrypt osadzony w pliku");?> <?php echo( Troszkę dłuższy sposób");?> <script language="php"> echo ( Sposób podobny do osadzania JavaScriptu"); </script>
Pierwszy skrypt
Komentarze Pamiętaj, aby nie zagnieżdżać komentarzy wielolinijkowych!
Obsługa zmiennych Zmienne oznaczamy za pomocą znaku $ Po nim musi następować litera lub znak podkreślenia _ Zmienne w PHP nie muszą być inicjalizowane Nie trzeba też z góry deklarować ich typu! $Test!= $test!= $test
Zmienne PHP jest proste jak nie wiem $dwa 2
Stałe Takie zmienne, tylko niezmienne Definiowane wcześniej
Typy zmiennych Nie trzeba się o to martwić, ale warto wiedzieć, że PHP ma kilka wbudowanych typów zmiennych: liczby całkowite (integer) liczby rzeczywiste (double) ciągi (string) tablice (array) obiekty (object)
Rzutowanie, settype
Operatory arytmetyczne i Przykład przypisania Wynik $a + $b Suma $a i $b $a - $b Różnica $a i $b $a * $b Iloczyn $a i $b $a / $b Iloraz $a i $b $a % $b Reszta z dzielenia $a i $b Przykład Równoznaczne z: Wynik $c += 10 $c = $c + 10 Do zmiennej $c dodaj 10 $c -= 10 $c = $c 10 Od zmiennej $c odejmij 10 $c *= 10 $c = $c * 10 Pomnóż $c przez 10 $c /= 10 $c = $c / 10 Podziel $c przez 10 $c %= 10 $c = $c % 10 Do $c przypisz resztę z dzielenia $c przez 10 $c.= tekst $c = $c. tekst Do $c dopisz ciąg znaków tekst
Inne operatory Operatory porównania tożsame jak w innych językach programowania (==,!=, <, >, <=, >=) Operator kontroli błędów: @ Operator wywołania: $listning = `ls -l /home/`; Operatory inkrementacji i dekrementacji (pre i post!) Operatory logiczne (&&,,!) Operator ciągu
Instrukcje warunkowe Warunki można grupować za pomocą Nic nowego: operatorów logicznych <?php if(warunek1a warunek1b) echo Pierwszy warunek spełniony ; elseif(warunek2a && warunek 2b) echo Drugi warunek spełniony, pierwszy nie ; else echo Żaden z warunków nie spełniony?> Brak ścisłej kontroli typów powoduje, że warunkiem może być cokolwiek zwracające wartość. Warunek spełniony === wartość większa od zera.
Pętla for <?php for( $x = 3; $x <= 100; $x+=3 ) echo $x."<br>";?> Wynikiem będzie wypisanie wszystkich liczb podzielnych przez 3, a mniejszych niż 100. Ogólna konstrukcja: for(zmienna kontrolująca;warunek;modyfikacja zmiennej)
Pętla while Pętla wykonywana dopóki warunek jest spełniony Na starcie możemy nie znać konkretnej liczby przebiegów Pętla może się w ogóle nie wykonać jeśli warunek na wejściu będzie niespełniony! <?php $x=3; while($x <= 100) { echo $x."<br>"; $x+=3; }?>
Pętla do while Pętla wykonywana dopóki warunek jest spełniony Na starcie możemy nie znać konkretnej liczby przebiegów Pętla wykona się co najmniej raz, warunek sprawdzamy na końcu! <?php $x=3; do { echo $x."<br>"; $x+=3; } while($x <= 100)?>
Przerywanie wykonania pętli Instrukcja continue pomija aktualnie wykonywany przebieg Instrukcja break wychodzi całkowicie z pętli
Wielokrotna instrukcja warunkowa <?php switch($zmienna) { case 'wartość1':... instrukcje... break; case 'wartość2':... instrukcje... break; default:... instrukcje... }?>