Internet cvičení. ZS 2009/10, Cvičení 3.,8.12.2009. Tomáš Pop. DISTRIBUTED SYSTEMS RESEARCH GROUP http://dsrg.mff.cuni.cz



Podobné dokumenty
Internet cvičení. ZS 2009/10, Cvičení 4., PHP. Tomáš Pop. DISTRIBUTED SYSTEMS RESEARCH GROUP

Formuláře. Aby nám mohli uživatelé něco hezného napsat třeba co si o nás myslí!

Tvorba webových stránek

Základy HTML, URL, HTTP, druhy skriptování, formuláře

Třídy a objekty. Třídy a objekty. Vytvoření instance třídy. Přístup k atributům a metodám objektu. $z = new Zlomek(3, 5);

17. července :51 z moravec@yahoo.com

Návrh a tvorba WWW stránek 1/8. Formuláře

Formuláře. Internetové publikování. Formuláře - příklad

25. TVORBA HTML DIALOGŮ PRO PEVNÉ TVARY

!!Via!AUREA,!s.r.o.!

NSWI096 - INTERNET JavaScript

Tvorba WWW stránek. přehled technologií používaných na webu principy jednotlivých technologií a možnosti jejich vzájemného kombinování

Nová struktura souborů a složek

Javascript. Javascript - jazyk

Problémy aplikace On-line testů a jejich řešení. Autor: Ing. Lukáš Trombik

TNPW1 Cvičení aneta.bartuskova@uhk.cz

Základy webových aplikací ZWA Přednáška č. 3 tvorba formulářů na klientské straně. Martin Klíma

Formuláře. neomezený počet formulářových polí v rámci HTML dokumentu může být více formulářů, nelze je ale do sebe vnořovat

Tlačítkem Poskládej jiný počítač se hra vrátí na úvodní obrazovku a lze zvolit jiný obrázek.

Zabezpečení webové vrstvy a EJB projektu Část nastavení specifická pro Glassfish, část dána Java EE

PHP. Čtvrtek 8. září. Čtvrtek 15. září. Anonymní test znalostí

K práci budeme využívat souborového manažeru Unreal Commander alespoň si ho procvičíme

NSWI142 Webové aplikace Zkouškový test

Ajax - úvod. Klíčové pojmy: Ajax, skriptování na straně klienta a serveru, objekt XMLHttpRequest, DOM model.

Internet 2 css, skriptování, dynamické prvky

VYŠŠÍ ODBORNÁ ŠKOLA a STŘEDNÍ PRŮMYSLOVÁ ŠKOLA Mariánská 1100, Varnsdorf PROGRAMOVÁNÍ FUNKCE, REKURZE, CYKLY

Popis XML rozhraní Veřejného webu RŽP

Programování v jazyce JavaScript

DUM 14 téma: Interakce s uživatelem

PHP a Large Objecty v PostgreSQL

XHTML 1. Formuláře. Element form. <form>... </form>

12. Základy HTML a formuláře v HTML

language="javascript">... </script>.

Popis XML rozhraní Veřejného webu RŽP

JavaScript 101. "Trocha života do statických stránek"

HTML - Úvod. Zpracoval: Petr Lasák

NÁVOD K ON-LINE DATŮM

Dynamika na straně serveru

podnikatele ve formě PDF dokumentu nebo budou jednotlivé datové položky rozvedeny v XML subelementech.

Tvorba webových stránek

Programování v PHP. Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze. Další možnosti formulářů

Tvorba klientských skriptů v jazyce Java Script

Webová stránka. Matěj Klenka

Co se v modulu dozvíte? Co jsou návrhové vzory? Ukázky návrhových vzorů Vytvoření databáze

Formuláře. Internetové publikování

4. POČÍTAČOVÉ CVIČENÍ

Jaku b Su ch ý 1

České vysoké učení technické v Praze Fakulta elektrotechnická. Remote Flash Usability testing

Základy HTML. Obecná syntaxe HTML. Struktura HTML

CSS Stylování stránek. Zpracoval: Petr Lasák

Printris. Hra Printris je psána pomocí příkazů Javascriptu a standardních příkazů HTML.

Bottle -- příklad. Databáze. Testovací data. id Jedinečný identifikátor řádku: Bude typu INT s AUTO_INCREMENT a nastavíme ho jako primární klíč

Verzování a publikace dat na webu za pomoci PostgreSQL

Vyšší odborná škola a Střední škola,varnsdorf, příspěvková organizace. Šablona 14 VY 32 INOVACE

Střední odborná škola a Střední odborné učiliště, Hořovice

Základy CSS (3. přednáška)

rychlý vývoj webových aplikací nezávislých na platformě Jiří Kosek

Přehled kapitol 1. Základní kostra HTML dokumentu 2. Členění dokumentu 3. Kaskádové styly - CSS 4. Pozadí stránky 5.

JavaScript v praxi: Sokoban (5. přednáška)

AJAX. Dynamické změny obsahu stránek

Atribut Význam Hodnoty

TNPW1 Cvičení aneta.bartuskova@uhk.cz

Hitparáda webhackingu nestárnoucí hity. Roman Kümmel

Zpráva webmastera klubu pro členskou schůzi Radek Šíp, 7/2014 9/2015

Programování v jazyce JavaScript

(X)HTML, CSS a jquery

Návrh a tvorba WWW stránek 1/14. PHP a databáze

Tlačítko Teachers Guide obsahuje odkaz na stručný popis hry a její účel v projektu Ingot.

Po stisku Next se nám objeví seznam dostupných tříd (naše zkompilovaná třída User.KBI), viz následující obrázek.

VÝVOJ INTERNETOVÝCH APLIKACÍ - VIA

CSS Kaskádové styly. formátování webových stránek

Zabezpečení proti SQL injection

Formuláře v HTML. Evropský sociální fond Praha a EU Investujeme do vaší budoucnosti

jquery - úvod Zdroj: Jiří Zralý:

Střední odborná škola a Střední odborné učiliště, Hořovice

1. Programovací jazyky

Úvod do tvorby internetových stránek v jazyce HTML

Skriptovací jazyky. Obsah

Inovace a zkvalitnění výuky prostřednictvím ICT Tvorba webových stránek. Ing. Zelinka Pavel Číslo: VY_32_INOVACE_35 17 Anotace:

Testování webových aplikací Seznam.cz

Pravidla a technické parametry reklam

ČERV. Hra Červ je psána pomocí příkazů Javascriptu a standardních příkazů HTML.

WiFi4EU Komponent sloužící k prosazování politiky. Prováděcí příručka verze 1.0

NSWI096 - INTERNET. Úvod do HTML

<html> - párový tag, uzavírá celý dokument <head> - párový, určuje hlavičku dokumentu <body> - párový, uzavírá tělo dokumentu Př. Základní struktura

Webové formuláře v HTML5 a Web Forms 2.0

ČVUT Fakulta dopravní v Praze

Tomáš Herout

Tvorba www-stránek. Příkazy jazyka HTML. Budeme pracovat následovně: Základní struktura webové stránky. Příkazy sekce HEAD

Stručný úvod pro programátory. Michal Kuchta

Martin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. October 23, 2016

1. MOBILNÍ APLIKACE ESO9... 3

HTML Hypertext Markup Language

Inovace výuky prostřednictvím šablon pro SŠ

Koláčky, sezení. Martin Klíma

Název Live prez Sear enta Maps

5. POČÍTAČOVÉ CVIČENÍ

Využití OOP v praxi -- Knihovna PHP -- Interval.cz

Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal. Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni

Transkript:

Internet cvičení ZS 2009/10, Cvičení 3.,8.12.2009 Tomáš Pop DISTRIBUTED SYSTEMS RESEARCH GROUP http://dsrg.mff.cuni.cz CHARLES UNIVERSITY PRAGUE Faculty of Mathematics and Physics

Java Script obecně Moc ho nepoužívejte Uživatelé ho mohou mít vypnutý Rozumné použití (pro zápočťáky) Kontrola formulářů Nutné kontrolovat I na straně serveru Generování částí obsahu Musí fungovat I bez JS Vložení do stránky Externě v souboru, v tagu script,

Kontrola vyplnění formuláře <script type="text/javascript"> function zkontroluj_udaje() var f_udaje = document.forms["udaje"]; if (f_udaje.elements["jmeno"].value.length == 0) alert("jmeno je prazdne"); f_udaje.elements["jmeno"].focus(); return false; <html> <form name="udaje onsubmit="return zkontroluj_udaje()"> </form> </html> if (window.regexp) re = new RegExp("@"); if (!re.test(f_udaje.elements["email"].value))... return true; </script>

Aktivace odesílacího tlačítka function zkontroluj_udaje() var f_udaje = document.forms["udaje"]; var aktivuj = true; if (f_udaje.elements["jmeno"].value.length == 0) aktivuj = false; if (window.regexp) re = new RegExp("@"); if (!re.test(f_udaje.elements["email"].value)) aktivuj = false; <html> <form name="udaje > Jméno: <input name="jmeno onchange="zkontroluj_udaje();"/> <input type="submit" id= submit_id" disabled="disabled"/> </form> </html> if (aktivuj) f_udaje.elements["submit_id"].disabled=false; else f_udaje.elements["submit_id"].disabled=true;

Změna stylu po najetí myší var oldcolor; var oldbgcolor; function zvyrazni_text() textelem = document.getelementbyid("dulezity_text_id"); if (textelem!= null) oldcolor = textelem.style.color; textelem.style.color = "red"; oldbgcolor = textelem.style.backgroundcolor; textelem.style.backgroundcolor = "yellow"; <html> <div id="dulezity_text_id onmouseover="zvyrazni_text(); onmouseout="zrus_zvyrazneni();"> </div> </html> function zrus_zvyrazneni() textelem = document.getelementbyid("dulezity_text_id"); if (textelem!= null) textelem.style.color = oldcolor; textelem.style.backgroundcolor = oldbgcolor;

Otevření nového okna s pevnými rozměry function otevri_okno(url,jmeno,sirka,vyska) window.open(url, jmeno, 'top=0, left=0, width='+sirka+', height='+vyska+', toolbar=no, menubar=no, scrollbars=yes, resizable=no'); <html> <a href="javascript:otevri_okno( obrazek.jpg', Obrazek', 800, 600);"> <img src= obrazek.jpg" alt= Obrazek" width="50" height="40"/> </a> </html>

Rozbalovací menu var menuon = true; function toggle_menu() if (menuon) menuon = false; document.getelementbyid("menu_id").style.display="none"; else menuon = true; document.getelementbyid( menu_id").style.display="block"; <html> <body onload="toggle_menu();"> <div id="menu"> <div onclick="toggle_menu();"> MENU </div> <div id="menu_id"> Polozka 1<br/> Polozka 2<br/> Polozka 3<br/> </div> </div> </body> </html>

Periodická změna části stránky var curbannerindex = 0; var banners = new Array("www.lidovky.cz", "www.ihned.cz", "www.idnes.cz"); function changebanner() curbannerindex++; if (curbannerindex >= 3) curbannerindex = 0; document.getelementbyid("banner_id").innerhtml= "<b>" + banners[curbannerindex] + "</b>"; window.setinterval("changebanner()", 5000); <html> <div id="banner_id" style="font-size: 36pt"> <b>www.lidovky.cz</b> </div> </html>

Změna obsahu elementu JS code HTML code

Úkoly Vytvořte stránku, s formulářem kontrolovaným javascriptem Zvalidujte ji Upravte stránku tak, aby šel formulář javascriptem schovat/zobrazit

Úvod do PHP Domácí úkol Do příštího cvičení si někde vytvořte SQL databázi, ke které bude možné přistupovat z PHP Vložte do databáze aspoň 2 tabulky a naplňte je daty Možnosti: unix lab, free webhosting (např. www.ic.cz, www.webzdarma.cz)

Generování tabulky <html> <body> <?php $skoly = Array("UK", "CVUT", "MUNI", "ZCU", "VUT", "VSE"); echo "<table border=\"1\">"; for ($i = 1; $i <= 6; $i++) echo "<tr><td>".$i."</td><td>".$skoly[$i-1]."</td></tr>"; echo "</table>"; </body> </html>

Formulář pro zadání loginu a hesla <style type="text/css">.error_msg color: red; font-weight: bold </style> <?php if ($login_error == 1) <p class="error_msg">nesprávné přihlašovací údaje</p> <? if (!empty($_request)) $login_val = $_REQUEST["login"]; $passwd_val = $_REQUEST["passwd"]; <form action="login_check.php" method="post"> Login: <input type="text" name="login" size="15" value="<? echo $login_val; "/><br/> Heslo: <input type="text" name="passwd" size="15" value="<? echo $passwd_val; "/><br/> </form>

Skript pro kontrolu zadaných údajů <?php $uzivatele = Array("admin" => "heslo", "joe" => "doe"); $login_success = false; $login = $_REQUEST["login"]; $passwd = $_REQUEST[ passwd ]; if (!empty($login) &&!empty($passwd)) if ($uzivatele[$login] == $passwd) $login_success = true; if ($login_success == true) <html><body> <b>prihlasen</b>: <? echo $login; </body></html> <? else header("location: login_form.php?login_error=1&login=".$login."&passwd=".$passwd);

Varianta includování formuláře do skriptu <?php $uzivatele = Array("admin" => "heslo", "joe" => "doe"); $login_success = false; $login = $_REQUEST["login"]; $passwd = $_REQUEST["passwd"]; if (!empty($login) &&!empty($passwd)) if ($uzivatele[$login] == $passwd) $login_success = true; else $login_error = 1; if ($login_success == true) else include "login_form2.php"; -------------------------- <?php if ($login_error == 1) <p style="color: red; font-weight: bold">nespravne prihlasovaci udaje</p><? <form action="login_check2.php" method="post"> Login: <input type="text" name="login" size="15" value="<? echo $login; "/><br/> Heslo: <input type="text" name="passwd" size="15" value="<? echo $passwd; "/><br/> </form>

Formulář pro zadání údajů <style type="text/css">.error_label color: red.error_msg color: red; font-weight: bold </style> <?php if ($error == 1) <p class="error_msg">některé údaje nejsou vyplněny správně</p><? <form action="user_process.php" method="post"> <span <? if ($error_jmeno == 1) echo "class=\"error_label\""; >Jméno:</span> <input type="text name="jmeno" size="15" value="<? echo $_REQUEST["jmeno"]; "/><br/> <span <? if ($error_datum == 1) echo "class=\"error_label\""; >Datum narození (dd.mm.rrrr): </span> <input type="text" name="datum" size="15" value="<? Echo $_REQUEST["datum"]; "/><br/> <input type="submit" value="odeslat"/> </form>

Kontrola správného vyplnění údajů <?php $error = 0; $jmeno = $_REQUEST["jmeno"]; $error_jmeno = 0; if (empty($jmeno)) $error = 1; $error_jmeno = 1; if (!ereg("^.+@.+\..+$", $email)) if (!ereg("^[0-9]+$", $telefon)) // kontrola datumu if (empty($datum)) $error_datum = 1; else $date_parts = explode(".", $datum); $den = intval($date_parts[0]); $mesic = intval($date_parts[1]); $rok = intval($date_parts[2]); if (($den < 1) ($den > 31)) $error_datum = 1; if (($mesic < 1) ($mesic > 12)) $error_datum = 1; if ($rok == 0) $error_datum = 1; if ($error_datum == 1) $error = 1; if ($error == 0) <html> <body> <b>jmeno</b>: <? echo $jmeno; <br/> </body> </html> <? else $url = ("user_form.php?error=".$error); $url.= ("&jmeno=".$jmeno); if ($error_jmeno == 1) $url.= "&error_jmeno=1"; header("location: ".$url);

Ukládání a čtení cookies Formulář se nezmění Pole $_REQUEST obsahuje také cookies <?php $uzivatele = Array("admin" => "heslo", "joe" => "doe"); $login_success = false; // kontrola loginu a hesla if ($login_success == true) setcookie("login", $login, time() + 3600 * 24 * 365); else header("location: login_form.php?login_error=1&login=".$login."&passwd=".$passwd);

Upload souboru na server <form action="soubor_save.php" enctype="multipart/form-data" method="post"> Soubor: <input type="file" name="jmeno_souboru" size="25"/><br/> </form> ------------------------------------------------------------------------------------ <?php $error = 0; echo "Puvodni jmeno: ".$_FILES["jmeno_souboru"]['name']."<br/>"; $jmeno_souboru = $_FILES["jmeno_souboru"]['name']; if (!empty($jmeno_souboru)) $tmp_soubor = tempnam("/tmp", "cviceni"); if ($tmp_soubor) echo "Docasne jmeno na serveru: ".$_FILES["jmeno_souboru"]['tmp_name']."<br/>"; echo "Nove jmeno na serveru: ".$tmp_soubor."<br/>"; if (!move_uploaded_file($_files["jmeno_souboru"]['tmp_name'], $tmp_soubor)) $error = 1; else $error = 1; <html><body> <? if ($error == 0) echo "Soubor byl úspěšně uložen."; else echo "<span style=\"color: red; font-weight: bold\">soubor se nepodařilo uložit!</span>"; </body></html>