The course focuses on the development of dynamic web applications using open source technology Apache - MySQL - PHP. The course first introduces students to the HTTP communication and current technology of applications running in the Internet environment, then focuses on the basic techniques (kernel commands, generating output, databases handling, etc.) and advanced techniques (sessions and cookies handling, user authentication, etc.) for writing code of applications in a server scripting language PHP, of which data is stored and retrieved dynamically to/from MySQL database server. The course also helps students to acquire the necessary knowledge to implement applications in the Apache web server, to program selected functions in the client browser using JavaScript scripting language and also to optimize web applications for web search engines (SEO).
Last update: Nachtigalová Iva (23.07.2013)
Předmět je zaměřen na vývoj dynamických webových aplikací pomocí triády open source technologií Apache - MySQL - PHP. Předmět nejprve seznamuje studenty s HTTP komunikací a současnými technologiemi aplikací v prostředí Internetu, poté se zaměřuje na základy (příkazy jádra, pro generování výstupu, pro manipulaci s databází atd.) i pokročilé techniky (obsluhování sezení, autentizaci uživatelů apod.) programování kódu aplikací v serverovém skriptovacím jazyce PHP, jejichž data se ukládají a dynamicky načítají do/z databázového serveru MySQL. Předmět také pomáhá studentům získat nezbytné znalosti pro provoz aplikací v prostředí webového serveru Apache, pro zajištění vybraných funkcí na straně prohlížeče pomocí klientského skriptovacího jazyka JavaScript a také pro optimalizaci aplikací pro vyhledávače (SEO).
Last update: Nachtigalová Iva (09.11.2012)
Course completion requirements - Czech
Studenti jsou povinni absolvovat souhrnný test, který ověřuje znalosti z látky probírané za celý semestr a trvá 75 minut. K vypracování testu nelze využít žádných písemných či elektronických materiálů nebo pomůcek.
Studenti jsou povinni vypracovat samostatný projekt na vybrané téma.
Klasifikovaný zápočet je udělován na základě bodového hodnocením souhrnného testu a samostatného projektu a obdrží ho ti studenti, kteří získají z každé povinnosti alespoň 50 z maximálních 100 bodů. Klasifikovaný zápočet je dán aritmetickým průměrem bodů získaných z obou povinností.
Last update: Nachtigalová Iva (13.02.2018)
Literature -
R: Murach's PHP and MySQL (Murach: Training & Reference): Murach's PHP and MySQL (Murach: Training & Reference). Mike Murach & Associates; First Printing edition (November 23, 2010). ISBN: 1890774561.
R: Bowen, R. - Coar, K.: Apache Cookbook: Solutions and Examples for Apache Administrators. O'Reilly Media; Second Edition edition (January 11, 2008). ISBN-10: 0596529945.
R: Tim Wright: Learning JavaScript: A Hands-On Guide to the Fundamentals of Modern JavaScript. Addison-Wesley Professional; 1 edition (August 5, 2012). ISBN: 0321832744.
R: Michael H. Fleischner: SEO Made Simple (Third Edition): Strategies for Dominating the World's Largest Search Engine. CreateSpace Independent Publishing Platform; 3 edition (January 2, 2013). ISBN: 1481838067.
Last update: TAJ445 (30.09.2013)
Z: Bowen, R. - Coar, K.: Apache Cookbook: Solutions and Examples for Apache Administrators. 2. vydání. O'Reilly Media: January 2011. 310 s. ISBN-10: 0596529945.
Z: Darie, C. - Sirovich, J.: SEO v PHP - Programujeme profesionálně. Computer Press: Brno, 2008. 384 s. ISBN: 978-80-251-2083-5.
Z: Gilmore, W. J.: Velká kniha PHP a MySQL 5 - kompendium znalostí pro začátečníky a profesionály. 3. vydání. Zoner Press: Brno, 2011. 736 s. ISBN: 978-80-7413-163-9.
Z: Yank, K. - Adams, C.: Začínáme s JavaScriptem. 3. vydání. Zoner Press: Brno, 2008. 336 s. ISBN: 978-80-86815-94-7.
D: Bernd, Ö. - Kofler, M.: PHP 5 a MySQL 5 - průvodce webového programátora. Obsahuje CD. Computer Press: Brno, 2007. 608 s. ISBN: 978-80-251-1813-9.
D: Kabir, J. M.: Apache Server 2 - kompletní příručka administrátora. Computer Press: Brno, 2004. 722 s. ISBN: 80-251-0319-6.
D: Dover, D. - Dafforn, E.: SEO - Optimalizace pro vyhledávače profesionálně. Zoner Press: Brno, 2012. 400 s. ISBN: 978-80-7413-172-1.
D: Zakas, J. M.: JavaScript pro webové vývojáře - programujeme profesionálně. Computer Press: Brno, 2009. 832 s. ISBN: 978-80-251-2509-0.
Last update: Nachtigalová Iva (09.11.2012)
Teaching methods -
The 5-hour course starts with two-hour lecture followed by a three-hour thematic exercises in a computer lab where students solve tasks together and gradually step by step create sample web application like web blog. Each student works on his own computer at the same time regularly alternates with with other students at the teacher's computer and actively participates in the preparation of the specification in discussion with others. In the exercises, students learn to work with off-line and on-line resources and to analyse case studies and program codes as well.
Last update: Nachtigalová Iva (22.07.2013)
Předmět je 5hodinový. Na dvouhodinovou přednášku tématicky navazují tříhodinová cvičení v počítačové učebně, kde studenti pod vedením vyučujícího a s pomocí přednášek, literatury a studijních opor řeší dílčí úlohy a postupně metodou krok za krokem vytváří vzorovou webovou aplikaci typu blog. Každý student pracuje na svém počítači, zároveň se však pravidelně střídá s ostatními u počítače vyučujícího a aktivně se podílí na vypracování zadání svými znalostmi a schopnostmi, které může v diskuzi konfrontovat se znalostmi a schopnostmi ostatních studentů. V rámci cvičení si studenti osvojují práci s on-line zdroji, analyzují kódy atd.
1. HTTP protocol - protocol versions and their characteristics, communication model, the structure of requests and responses, HTTP methods, headers and status codes.
2. Technology and tools of design and implementation of dynamic web applications - client technologies, server technologies, PHP language, Apache web server, the basic configuration.
3. Introduction to PHP - lexical structure, data types, constants, variables, (superglobal) arrays, commands for control the code flow, string interpretation, including files, built-in and user functions.
4. Advanced PHP properties - arrays and time data handling, string handling, regular expressions, basic and advanced OOP capabilities, handling with file and operating system.
5. Connection PHP with MySQL database - using the mysqli extension, starting and termination connection, errors handling, interaction with databases, queries and decomposition of the query results. PhpMyAdmin web client.
6. Form elements in XHTML. Transmission of data on a web server - GET and POST method, data transmission, data processing in PHP.
7. Maintaining status information - cookies method, structure, receiving and sending out/in PHP, session method, SID and the way of transmission, session variables, session handling in PHP, HTTP authentication, forms authentication in PHP.
8. Introduction to JavaScript - lexical structure, data types, constants, variables, arrays, control commands for control the code flow, user functions.
9. Advanced capabilities of JavaScript - client side of language, connection to hypertext documents, BOM and DOM, object hierarchy, DOM nodes handling, cookies handling, CSS handling, forms handling, events handling.
10. Web applications security - causes of vulnerability, attacks over all inputs, attacks through cookies and session cookies, attacks exploit technology bugs, social engineering.
11. Web applications security - passwords breaking, form spam, methods of protection.
12. Web applications architecture, templating systems, SMARTY system, systems Model-View-Controller (MVC), functions of MVC parts.
13. Search Engine Optimization - searching principles, indexing, generation of search results, evaluation factors, on-page and off-page optimization factors, recommended techniques, XML maps.
14. The development of sample dynamic web application like web blog.
Last update: TAJ445 (30.09.2013)
HTTP protokol - schopnosti verzí protokolu, model komunikace, struktura požadavků a odpovědí, HTTP metody, hlavičky, stavové kódy.
Technologie a prostředky tvorby a provozování dynamických webových aplikací - klientské technologie, serverové technologie, jazyk PHP, server Apache, základní konfigurace.
Úvod do jazyka PHP - lexikální struktura, datové typy, konstanty, proměnné, (superglobální) pole, příkazy pro řízení běhu kódu, interpetace řetezců, vnořování souborů, vestavěné a vlastní funkce.
Pokročilé schopnosti PHP - práce s poli, práce s časovými údaji, práce s řetězci, regulární výrazy, základy i pokročilé schopnosti OOP, práce se souborovým a operačním systémem.
Používání PHP s databází MySQL - práce s rozšířením mysqli, příprava připojení a jeho ukončení, obsluha chyb připojení, interakce s databází, dotazy a rozklad výsledků dotazu. Webový klient phpMyAdmin.
Formulářové prvky v XHTML. Předávání dat na webserver - metoda GET, metoda POST, odesílání dat, zpracování dat v PHP.
Udržování stavových informací - metoda cookies, struktura, přijímaní a odesílání z/v PHP, metoda session, SID a způsoby předávání, session proměnné, obsluha session v PHP, HTTP autentizace, formulářová autentizace v PHP.
Úvod do jazyka JavaScript - lexikální struktura, datové typy, konstanty, proměnné, pole, příkazy pro řízení běhu kódu, vlastní funkce.
Pokročilé schopnosti JavaScriptu - klientská část jazyka, propojení s hypertextovými dokumenty, BOM a DOM, hierarchie objektů, práce s uzly DOM, práce s cookies, práce s CSS, obsluha formulářů, ošetřování událostí.
Bezpečnost webových aplikací - příčiny zranitelnosti, útoky přes všechny vstupy, útoky přes cookies a session cookie, útoky zneužívající chyby technologií, sociální inženýrství.
Bezpečnost webových aplikací - prolamování hesel, formulářové spamy, metody ochrany.
Architektura webových aplikací, šablonovací systémy, systém SMARTY, systémy Model-View-Controller (MVC), funkce jednotlivých částí.
Optimalizace pro vyhledávače - objasnění vyhledávání vyhledávači, indexování, sestavování výsledků, hodnotící faktory, optimalizace on-page a off-page faktorů, doporučené techniky, XML mapy.
The Apache Software Foundation: Apache HTTP Server Documentation [on-line][cit. 9. 11. 2012] Availability on the Internet: http://httpd.apache.org/docs/.
Refsnes Data: w3schools.com - the world's largest web development site [on-line][cit. 9. 11. 2012]. Availability on the Internet: http://w3schools.com/.
Last update: Nachtigalová Iva (22.07.2013)
The PHP Group: PHP Manual [on-line]. Dokumentace s mnoha ukázkami kódu skriptovacího jazyka PHP. Jazyk: angličtina. [cit. 9. 11. 2012] Dostupné na Internetu: http://www.php.net/manual/en/.
The Apache Software Foundation: Apache HTTP Server Documentation [on-line]. Dokumentace k různým verzím HTTP serveru Apache. Jazyk: angličtina. [cit. 9. 11. 2012] Dostupné na Internetu: http://httpd.apache.org/docs/.
Čihař, M.: Přehled článků na Linuxsoft.cz v kategorii phpMyAdmin [on-line]. Série článků o prácis s webovým klientem phpMyAdmin, který slouží k návrhu a administraci databází MySQL přes webové rozhraní. Jazyk: čeština. [cit. 9. 11. 2012] Dostupné na Internetu: http://www.linuxsoft.cz/article_list.php?id_kategory=215.
Interval.cz: Programování [on-line]. Kategorie článků jak o programování kódu webových aplikací mj. v jazycích PHP a JavaScript, tak o databázových systémech, se kterými webové aplikace často spolupracují [cit. 9. 11. 2012]. Jazyk: čeština. Dostupnost na Internetu: http://interval.cz/programovani/.
Refsnes Data: w3schools.com - the world's largest web development site [on-line]. Web o technologiích tvorby statických i dynamických webových stránek mj. s mnoha ukázkami kódů PHP i JavaScriptu [cit. 9. 11. 2012]. Jazyk: angličtina. Dostupnost na Internetu: http://w3schools.com/.
Last update: Nachtigalová Iva (09.11.2012)
Learning outcomes -
Students will be able to:
program the advanced features of web applications in a server scripting language PHP
connect web applications programmed in PHP with MySQL database server to store/retrieve data
program selected features of web application in the client scripting language JavaScript
optimize applications and published content for web search engines (SEO).
Last update: Nachtigalová Iva (22.07.2013)
Studenti budou umět:
programovat pokročilé funkce webových aplikací v serverovém skriptovacím jazyce PHP
používat webové aplikace programované v PHP společně s databázovým serverem MySQL pro ukládání/načítání dat
programovat vybrané funkce webových aplikací v klientském skriptovacím jazyce JavaScript
optimalizovat aplikace a jejich zveřejňovaný obsah pro vyhledávače (SEO)
Last update: Nachtigalová Iva (09.11.2012)
Entry requirements -
Study of the course assumes:
knowledge to create valid, well-styled, usable and accessible hypertext documents in XHTML and CSS languages (i.e. to create published content using semantic and structural elements of XHTML in accordance with language standard, to create layouts and to format text, background, fonts, links, lists, and tables using properties and values of CSS in accordance with language standard, to improve and usability and accessibility of published content by recommended XHTML and CSS techniques)
knowledge of aspects of simple databases design (i.e. data types, relational data model, primary and foreign keys) and knowledge of using SQL queries to interact with databases (i.e. commands for creating and editing diagrams and commands for inserting, retrieving, editing and deleting data)
Required skills can be obtained after the studies of courses listed in the Registration Requirements.
Last update: Nachtigalová Iva (22.07.2013)
Studium předmětu přepokládá
znalost tvorby validních, "well-styled", použitelných a přístupných hypertextových dokumentů v jazycích XHTML a CSS (vytváření obsahu pomocí sémantických a strukturálních prvků podle standardu, vytváření layoutů a formátování textu, pozadí, písma, odkazů, seznamů a tabulek pomocí kaskádových stylů podle standardu, znalost zásad a XHTML a CSS technik zlepšujících přístupnost dokumentů, znalost zásad tvorby použitelných webů)
znalost aspektů návrhu jednoduchých databází (datových typů, relačního modelu dat, primárních a cizích klíčů) a použití SQL dotazů pro interakci s databázemi (příkazů pro tvorbu a úpravu schémat a pro vkládání, získávání, úpravu a mazání dat)
Požadované vstupní znalosti lze získat absolvováním předmětů uvedených v Studijních prerekvizitách.
Last update: Nachtigalová Iva (12.09.2013)
Registration requirements -
Database Systems, Computer Presentations
Last update: Nachtigalová Iva (22.07.2013)
Databázové systémy, Webdesign I
Last update: Nachtigalová Iva (13.02.2018)
Teaching methods
Activity
Credits
Hours
Účast na přednáškách
1
28
Příprava na přednášky, semináře, laboratoře, exkurzi nebo praxi
1
28
Práce na individuálním projektu
1
28
Příprava na zkoušku a její absolvování
1
28
Účast na seminářích
1
28
5 / 5
140 / 140
Coursework assessment
Form
Significance
Defense of an individual project
50
Continuous assessment of study performance and course -credit tests