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



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

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);

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

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

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

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

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í

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

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

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

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

Dynamika na straně serveru

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

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

Šifrování Autentizace Bezpečnostní slabiny. Bezpečnost. Lenka Kosková Třísková, NTI TUL. 22. března 2013

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í

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

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

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

Tvorba webových stránek

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

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

test_form.html, all_request_vars.php

Skriptovací jazyky. Obsah

NSWI142 Webové aplikace Zkouškový test

Webové Aplikace (6. přednáška)

PHP a Large Objecty v PostgreSQL

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

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

DYNAMICKÉ WEBOVÉ STRÁNKY

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

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

Aplikační vrstva. Úvod do Php. Ing. Martin Dostal

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

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

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

AJAX. Dynamické změny obsahu stránek

INFORMAČNÍ SYSTÉMY NA WEBU

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

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

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

Jaku b Su ch ý 1

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

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:

Nová struktura souborů a složek

Dokumentaci k semestrální úloze z předmětu Internet a WWW (X36WWW)

1. Programovací jazyky

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

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

Uživatelská příručka 6.A6. (obr.1.)

1 Webový server, instalace PHP a MySQL 13

DUM 14 téma: Interakce s uživatelem

WEBOVÉ ROZHRANÍ PRO PŘEKLADATELE GNU GETTEXT

Vývoj Internetových Aplikací

Informační systémy 2008/2009. Radim Farana. Obsah. Aktivní serverové stránky ASP. Active Server Pages. Activex Data Objects. LDAP database.

Rezervační systém Tvorba WWW stránek

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace

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íč

PHP a bezpečnost. nejen veřejná

1. Webový server, instalace PHP a MySQL 13

Dokumentace k nevizuálnímu rozhraní aplikace DopisOnline

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

IPAS Server komunikační rozhraní

API pro službu mobilem.cz, verze XML 5.04

Obsah. Začínáme programovat v Ruby on Rails 9. Úvod Vítejte v Ruby 15. O autorovi 9 Poděkování 9

Středoškolská odborná činnost 2007/2008. Naprogramování webové ankety pomocí jazyka PHP a databáze MySQL

Kurz je rozdělen do čtyř bloků, které je možné absolvovat i samostatně. Podmínkou pro vstup do kurzu je znalost problematiky kurzů předešlých.

PHP. Středa 7. září. Středa 21. září. Anonymní test znalostí

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ářů

Dokumentový sklad. Dokumentový sklad v.1. Dokumentový sklad v.2. Koncepce skladu v.2. Petr Lampa

Atribut Význam Hodnoty

Zranitelnosti webových aplikací. Vlastimil Pečínka, Seznam.cz Roman Kümmel, Soom.cz

VÝVOJ INTERNETOVÝCH APLIKACÍ - VIA

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

E-learningový modul pro pochopení technologií PHP a MySQL/MS SQL ve výuce

NÁVOD K ON-LINE DATŮM

Použití databází na Webu

Uživatelská technická dokumentace Verze 1.0

Popis frameworku REDCap

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

HTTP. Webový server. generátor HTML stránek (CGI, Perl, PHP, Python, Ruby, Java, ASP.NET) zpracování požadavku/ odeslání odpovědi.

Javascript. Javascript - jazyk

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace

Ukázka knihy z internetového knihkupectví

Artlingua Translation API

Webová stránka. Matěj Klenka

TECHNICKÁ DOKUMENTACE SOCIÁLNÍ SÍŤ MRSHARE. David Malát, Adam Novák, David Vurbs, Dominik Walta. SPŠ Na Proseku 2012/13. Pod velením Davida Vurbse

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

[APLIKACE PRO PŘEHRÁVÁNÍ VIDEA - PROJEKT MIAMI]

Technická specifikace Platební brána IBS

RNDr. Michal Kopecký, Ph.D. Department of Software Engineering, Faculty of Mathematics and Physics, Charles University in Prague

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

XSLT pomocí JavaScriptu v Mozille (... Opeře a Safari)

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

Uživatelská příručka k portálu Společnost pro kvalitu školy, o. s. část třetí. testování žáků

Formuláře. Internetové publikování

RNDr. Michal Kopecký, Ph.D. Department of Software Engineering, Faculty of Mathematics and Physics, Charles University in Prague

Serverové skriptovací technologie

Transkript:

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

Generování tabulky <html> <body> $skoly = Array("UK", "CVUT", "MUNI", "ZCU", "VUT", "VSE"); echo "<table border=\"1\">"; foreach ($skoly as $i => $v) { echo "<tr><td>".$i."</td><td>".$v."</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> 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ů $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 $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"; -------------------------- 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> 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ů $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 $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);

Ukládání a čtení session Na začátku skriptu musí být session_start() Data na serveru uživatel<->server se přenáší jen ID řetězec session_start(); If (! isset($_session['logged']){ If (login($_post['jmeno'], $_POST['heslo'])){ $_SESSION['logged'] = 1; else { Echo Chyba v prihlasovani ; else{ Echo jste prihlasen ;

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> ------------------------------------------------------------------------------------ $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>

AJAX Asynchronous JavaScript and XML Nutně nemusí s XML souviset Viz https://developer.mozilla.org/cs/ajax/jak_za%c4%8d%c3%adt Prohlížeč komunikuje na pozadí se serverem Nemusí se přenačítat celá stránka

Úkoly Vylepšete svoje formuláře z minula o Přihlašování přes sessions (poviné) Přihlášený uživatel může nahrát soubor Kdo stíhá, předělejte přihlašování na AJAX Jeden konektor nastaví přes session a odesle XML odpověď Druhý konektor poskytne (jako text) nový obsah stránkx Vše musí fungovat i bez JS!