Języki i narzędzia programowania III Łukasz Kamiński Wykład II - 2012-10-08
Wykład II Wprowadzenie kontynuacja Cookie HTML (JS/CSS/Flash/Java) Instalacja Apache, PHP, MySQL Konfiguracja Hosting i domeny PHP
HTML HTML zawartość (części składowe - osadzenie) Obrazki CSS style Javascript skrypty (programy) Flash Java
Cookie inne zastosowania Ustawienia użytkowników. gazeta.pl ustawienia kolejności boxów. Automatyczne logowanie. Identyfikacja użytkowników bez ich wiedzy. Słaba autoryzacja Koszyki zakupowe Liczniki odwiedzin Sondy Oszustwa Plotka o cenach w sklepach i innych serwisach Przykład ustawienia cookie dla poddomeny.
CSS Idea rozdzielenia renderowania treści od zawartości treści. Opis wyglądu niezależny od treści. Tworzenie strukturalnego HTML-a. Zalety Bardzo dobrze nadaje się do formatowania typu: Kolory, wyrównanie, szerokości kolumn, czcionki, kroje, style. Optymalizacja objętości i przejrzystości kodu HTML. Wady Duże różnice pomiędzy przeglądarkami. Problemy z cachowaniem plików CSS.
Javascript Wbudowany w przeglądarki. Język programowania wykonywany przez przeglądarkę. Teoretycznie bezpieczny dla użytkownika. Różne standardy i różniej interpretowany przez przeglądarki. Niezależne od realizacji strony serwerowej serwisu WWW. Możliwość generacji dynamicznej, np. przez Perla czy PHP. AJAX, GWT, GXT, JSON
Javascript Niejasny i ubogi model wątków. Problem z operacjami długotrwałymi. Niejasne podejście do modalności. Problem zarządzania asynchronicznymi zdarzeniami. Brak standardowego podejścia typu VCL Thread, AWT Thread. Problem z modalnością.
Javascript - AJAX Asynchroniczna komunikacja tle + XML + DOM (JavaScript). Możliwość wysłania z poziomu kodu JS komunikatu HTTP do serwera (uprawnienia + sesja). Asynchroniczna realizacja żądania. Wysyłanie żądania i parsowanie wyniku (JSON + XML). Modyfikacja bieżącego dokumentu w zależności od wyniku.
JavaScript - problemy Źródło - wikipedia.
Javascript Ogromne możliwości budowy całych aplikacji Zgodność z przeglądarkami poprzez biblioteki GWT/GXT Większość aplikacji google tego używa Pisanie kodu w Javie i kompilacja do JS + HTML. Bardzo kosztowne tworzenie i utrzymanie. JQuery Niezależny sposób manipulowania dokumentem w przeglądarce Dojrzały, darmowy, dobry produkt.
Flash Wykonywany po stronie klienta. Maszyna wirtualna Flash, produkt firmy Adobe. Dedykowana dla platformy i dla przeglądarki. Lekka i prosta instalacja. Często problemy z wydajności animacji. Problemy z bezpieczeństwem. Używany, niestety, głównie do spamu.
Java Język programowania Java. Maszyna wirtualne dostarczana zewnętrznie. Instalacja ciężka. Maszyna wirtualna ciężka. Możliwość pełnego dostępu do komputera użytkownika. System praw dostępu. Strona serwerowa zrealizowana jakkolwiek. Możliwość integracja z konkretną stroną WWW w przeglądarce.
Apache + PHP + MySQL Apache PHP MySQL Instalacja Konfiguracja
Instalacja System operacyjny Linux Windows Dowolny inny Serwer WWW Apache Praktycznie dowolny inny. Język programowania PHP Baza danych MySQL
Instalacja Gotowe paczki zawierające wszystko LAMP Uwaga na istniejące wersja oprogramowania. Polecam instalowanie ręczne. Linux PLD Poldek Instalacja pakietów wszystko działa. Prawdopodobnie analogicznie dla innych dystrybucji. Pobranie z sieci. Open Source.
Apache Serwer WWW. Standardowo umożliwia dostęp do plików na dysku przez WWW. Parsowanie nagłówków HTTP. Zwraca dane odczytane z pliku z dysku. Rodzaje plików. Grafika: JPEG, PNG, BMP, itd. HTML, PDF, TXT, itd. Możliwość podłączenia uchwytów do przetwarzania żądań. Uchwyt komunikacja przez standardowe IN/OUT. Przekazanie nagłówków HTTP. Zwrócenie wyniku HTTP.
Podłączenie PHP i Apache Sposoby podłączenia CGI przez system plików i plik wykonywalny. Moduł przez dynamicznie ładowane moduły (.so,.dll) CGI znacznie prostsze do instalacji, zmuszenia do działania, konfiguracji. CGI wolniejsze działanie, dobre do debugu i tworzenia oprogramowania, działa bez żadnych problemów nawet pod Windows. Moduły działa szybciej. Moduły problemy z uruchomieniem. Moduły PHP jest ładowane do wnętrza kodu Apache, więc jak się wywali to...
Podłączenie PHP Windows. httpd.conf. ScriptAlias /php/ "C:/Program Files/PHP/" Action application/x-httpd-php "/php/php-cgi.exe" W katalogu Apache powinien być katalog htdocs, który odpowiada żądaniu do http://localhost/ Stworzenie pliku index.php. Zawartość <? phpinfo();?> W tym momencie na http://localhost/index.php powinna się pojawić konfiguracja PHP. Na XP bez problemów, problemy z modyfikacją plików w C:\Program Files\* w Vista i 7.
phpinfo(); - Windows
Podłączenie PHP Linux Po zainstalowaniu odpowiednich pakietów powinno działać po prostu. Jeśli nie działa to należy zmienić dystrybucję. Jeśli nie działa to analogicznie jak pod Windows. Uwaga na prawa dostępu do katalogów, szczególnie do katalogów typu tmp.
Apache - konfiguracja Maszyna do pracy prawa edycji
PHP konfiguracja - php.ini Ogólnie można podzielić na definicje modułów i na parametry działania PHP. Parametry działania mają na celu dostosowanie zachowania do potrzeb, np. Maksymalna ilość pamięci do wykonania skryptu. Maksymalny czas wykonania skryptu. Domyślna kompresja wyjścia. Poziom logowania błędów. Do kodowania standardowe ustawianie są całkowicie ok. Zmiany przy 10 wejściach na minutę!
PHP Moduły. Służy do określenia, które funkcje dodatkowe PHP są dostępne dla programisty. Możliwość dodania funkcjonalności do języka przez dodanie funkcji. Należy używać rzeczywiście koniecznego podzbioru modułów. Testowanie działania linia poleceń. Logi z PHP - Apache! (np. brak dll), np. [Tue Feb 09 17:34:26 2010] [error] [client 127.0.0.1] PHP Warning: Unknown(): Unable to load dynamic library './extensions\\php_pgsql.dll' - Nie mo\xbfna odnale\x9f\xe6 okre\x9clonego modu\xb3u.\r
PHP - moduły Realizacja przez ładowanie plików.so lub.dll. Brak załadowania modułu powoduje, że funkcja po prostu nie działa. Np. mysql_real_connect. W pliku php.ini jest gotowa lista dostępnych modułów wystarczy odkomentować co trzeba. Moduły są standardowo dostarczane razem z PHP do katalogu ext (extensions, itp.). PHP funkcje wbudowane wg php.net. Np. mysql i sqlite w wersjach 4 i 5.
phpinfo(); - Windows
phpinfo() - home.pl
phpinfo() - 000webhost
Przykład
Phpinfo - przykład Firebug Dodatek do Firefoxa Wiele różnych funkcjonalności Konsola pokazywanie błędów HTML CSS Skrypt debugger Javascript DOM Sieć CSS Phpinfo - sieć