WA1
Z OI wiki
(→Zkouška 18.1.2012) |
(→Zkoušky: pridan termin 20.1.) |
||
Řádka 27: | Řádka 27: | ||
== Zkoušky == | == Zkoušky == | ||
+ | |||
+ | === Zkouška 20.1.2012 === | ||
+ | |||
+ | Zkouška 20.1.2012 | ||
+ | |||
+ | Rozřazovací test (musite mit 6spravne z 10b, opravujete cizi test, doporuciji modre propisovacky s sebou a nebudte svine ;-) ): | ||
+ | |||
+ | 1) Vyberte co platí o clonování v php(shallow copy pomoci __clone()) | ||
+ | |||
+ | 2) Co platí o javascriptu(vyvolává akce, odchytává akce, přidává odebírá listenery...) neplati: manipulace se soubory na disku, manipulace s kamerou ci mikrofonem | ||
+ | |||
+ | 3) AJAX | ||
+ | stav aplikace se udrzuje v DOMu, ale je lespi ho zalohovat na serverove strane | ||
+ | |||
+ | 4) server s rozsirenim CGI | ||
+ | sdileni operacni pameti je nemozne, jelikoz kazdy skript bezi jako samostatny proces | ||
+ | |||
+ | 5) CSS | ||
+ | sirka (plati pro jakykoliv rozmer) udana v % se pocita z absolutne vypocitane hodnoty sirky primeho predka | ||
+ | |||
+ | |||
+ | Hlavni test (max 16b): | ||
+ | |||
+ | 1) Basic access authentication | ||
+ | jmeno:heslo zakodovane v BASE64 | ||
+ | zakodovane ale nezasifrovane (zadna MD5, to je DIGEST) | ||
+ | NEnahrazuje prihlasovani pomoci cookies (tj. prihlaseni, odhlaseni, skladovani udaju o prihlasenem uzivateli) - asi proto ze neumime odhlasit uzivatele jinak nez zavrenim prohlizece | ||
+ | |||
+ | |||
+ | 2) MYSQL | ||
+ | MyIsam nema transakce | ||
+ | InnoDB ma transakce | ||
+ | lze propojit tabulky ruznych typu | ||
+ | lze mit jine kodovani v ruznych sloupeckach jedne tabulky (v db) | ||
+ | |||
+ | 3) alokace pamtei v PHP | ||
+ | programator se o ni nemusi starat | ||
+ | o alokaci pameti se stara interpretr | ||
+ | |||
+ | |||
+ | Implementační (9 bodů) | ||
+ | |||
+ | Implementujte MVC architekturu - formular s policky jmeno a prijmeni | ||
+ | - na zacatku zobraz prazdne | ||
+ | - predvypln pokud uzivatel zadal nejake hodnoty, ale neproslo to validaci (validace je jmeno ma delku alespon tri znaky) | ||
+ | - uspesne validovana data ulozte do db metodou DB::save(jmeno, prijmeni), kterou si ale musite sami implementovat (neresil presne nazvy metod, jen obecne abyste vedeli, kdy co pripojit, napsat, ze tady by to chtelo osetrit, kdyz se nepovede pripojeni k db...) | ||
+ | - javascriptem osetrete, ze formular nepujde odeslat kdyz jmeno bude kratsi jak 3 znaky | ||
+ | |||
+ | zretelne oznacte ktera cast je M, ktera V, ktera C | ||
+ | |||
+ | |||
+ | Ustni | ||
+ | |||
+ | oblibene temata | ||
+ | - cachovani ve Smartym (sablony) | ||
+ | - web proxy | ||
+ | |||
+ | temata | ||
+ | - box model v CSS | ||
+ | - konflikty v CSS (kdo ma prednost pred kym, doporucuji Macikovy slidy ze cviceni na CSS) | ||
+ | - DOCTYPE, DTD, XML | ||
+ | |||
+ | |||
=== Zkouška 18.1.2012 === | === Zkouška 18.1.2012 === |
Verze z 20. 1. 2012, 20:52
|
|
Info o předmětu
- Přednášející: Ing. Martin Klíma, Ph.D.
- Cvičící:
Pravidla předmětu
Studijní materiály
Zkoušky
Zkouška 20.1.2012
Zkouška 20.1.2012
Rozřazovací test (musite mit 6spravne z 10b, opravujete cizi test, doporuciji modre propisovacky s sebou a nebudte svine ;-) ):
1) Vyberte co platí o clonování v php(shallow copy pomoci __clone())
2) Co platí o javascriptu(vyvolává akce, odchytává akce, přidává odebírá listenery...) neplati: manipulace se soubory na disku, manipulace s kamerou ci mikrofonem
3) AJAX stav aplikace se udrzuje v DOMu, ale je lespi ho zalohovat na serverove strane
4) server s rozsirenim CGI sdileni operacni pameti je nemozne, jelikoz kazdy skript bezi jako samostatny proces
5) CSS sirka (plati pro jakykoliv rozmer) udana v % se pocita z absolutne vypocitane hodnoty sirky primeho predka
Hlavni test (max 16b):
1) Basic access authentication jmeno:heslo zakodovane v BASE64 zakodovane ale nezasifrovane (zadna MD5, to je DIGEST) NEnahrazuje prihlasovani pomoci cookies (tj. prihlaseni, odhlaseni, skladovani udaju o prihlasenem uzivateli) - asi proto ze neumime odhlasit uzivatele jinak nez zavrenim prohlizece
2) MYSQL
MyIsam nema transakce
InnoDB ma transakce
lze propojit tabulky ruznych typu
lze mit jine kodovani v ruznych sloupeckach jedne tabulky (v db)
3) alokace pamtei v PHP programator se o ni nemusi starat o alokaci pameti se stara interpretr
Implementační (9 bodů)
Implementujte MVC architekturu - formular s policky jmeno a prijmeni - na zacatku zobraz prazdne - predvypln pokud uzivatel zadal nejake hodnoty, ale neproslo to validaci (validace je jmeno ma delku alespon tri znaky) - uspesne validovana data ulozte do db metodou DB::save(jmeno, prijmeni), kterou si ale musite sami implementovat (neresil presne nazvy metod, jen obecne abyste vedeli, kdy co pripojit, napsat, ze tady by to chtelo osetrit, kdyz se nepovede pripojeni k db...) - javascriptem osetrete, ze formular nepujde odeslat kdyz jmeno bude kratsi jak 3 znaky zretelne oznacte ktera cast je M, ktera V, ktera C
Ustni
oblibene temata - cachovani ve Smartym (sablony) - web proxy
temata - box model v CSS - konflikty v CSS (kdo ma prednost pred kym, doporucuji Macikovy slidy ze cviceni na CSS) - DOCTYPE, DTD, XML
Zkouška 18.1.2012
Rozřazovací test:
1) Vyberte co platí o clonování v php(shallow copy pomoci __clone())
2) Co platí o javascriptu(vyvolává akce, odchytává akce, přidává odebírá listenery...)
3) Co platí o odchytávání akcí
Hlavní test:
1) Kde probíhá validace ajaxu(na serveru, u clienta, neni potřeba atd...)
2) Které z následujících věcí jsou hrozba pro php (dával tam názvy neexistujících tipu SQL influence nebo Cross side script forgery)
3) Vyberte co platí o alokaci paměti v php
4) Otázka na práci php se soubory 1
5) Otázka na práci php se soubory 2
6) Popis zabezpečení Digest
7) ...
Implementační (9 bodů)
Implementujte v model view a controller pro vytahování dat z tabulky people (id firstname lastname) view mají být 2 jedno pro zadání křestního jméno podle kterého chceme vyhledávat a druhé pro zobrazení výsledků
Zkouška 4.1.2012
Moc si toho už nepamatuji, kdyžtak doplňte... --Hanx 6. 1. 2012, 17:49 (UTC)
Vstupní test ke zkoušce - 10 zaškrtávacích odpovědí, žádná nebo právě jedna správná, pro postup nutno 6 bodů z 10. Otázky byly poměrně náročné na pochopení významu (např. dvojitý zápor apod.)
Nepamatuji si přesně obsah, ale byl to víceméně průřez všemi přednáškami na základní věci. Možná jsem něco z toho napsal k písemnému testu...
Písemný test - zaškrtávací odpovědi, žádná, jedna nebo až všechny správné, pro postup nutno 15 bodů z 25 ; některé otázky bylo nutné napsat/nakreslit a poslední otázka byla implementační.
Testové otázky: 1) Web Proxy -> Pracuje na aplikační vrstvě 2) Smarty implementuje -> Pouze View 3) Co je nutné, aby mohlo dojít k XSRF útoku -> Uživatel navštíví v jednom prohlížeči v tomto pořadí: napadená stránka, útočníkova stránka -> Napadená stránka spoléhá pouze na ověření pomocí Cookies/Sessions -> jeste jedna odpoved 4) Dotaz na implementaci komunikace PHP - DB -> Pomocí dynamicky linkované knihovny nebo přikompilovaným modulem 5) Co zajišťuje DNS -> převod textového jména na IP adresu -> převod IP adresy na textové jméno 6)... Dále pak nějaké otázky na PHP a JavaScript Psané otázky: 1) Co je pseudotřída v CSS + alespoň jeden příklad 2) Co je pseudoelement v CSS + alespoň jeden příklad 3) Vysvětlete MVC v realizaci Front Controlleru + popište význam Modul a View Implementační otázka: Implmentujte zpracování formuláře (vstup: Jméno, Příjmení, Submit). Předpokládejte, že máte metody: * validuj($jmeno, $prijmeni) - kontroluje validitu vstupu, return boolean * save($jmeno, $prijmeni) - provede bezpečné uložení do DB Kontrolujte vstup formuláře, v případě špatného vyplnění formuláře se formulář zobrazí znovu se zadanými hodnotami. Pokud dojde k uložení, informujte o úspěšném uložení (k dispozici na thankyou.html) *zde bylo potřeba hlavně hlídat, aby jsme nevypisovali neošetřené vstupy (htmlspecialchars)...
Ústní zkouška - Pokud jste prošli písemným testem, dostali jste otázku (já za 5b - udržovací, zda si zasloužím za C). Pokud jste odpověděli správně (a chyběl vám bod do lepší známky), mohli jste si zkusit vzít další za 5b (získal jsem tak lepší známku, v případě neúspěchu bych byl na nule).
Otázku vybíral tak, že kouknul na přehled přednášek a vypral nějaké téma, někdo si téma i mohl vybrat...
Pokud byste ale měli z testu např. 17b a z ústní -5b >> 12b, zkoušku jste neudělali. Takže se vlastně výsledky z písemné a ústní sečetly a museli jste mít 15 a více bodů...