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://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 przypisania
Przykład 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 Nic nowego: <?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.
Warunki można grupować za pomocą operatorów logicznych
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 ...
} ?>