18 20 M/01 Informační technologie

Podobné dokumenty
PROJEKT WEBOVÉ STRÁNKY Conor Anthony McGregor

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

PHP PHP je skriptovací programovací jazyk dynamických internetových stránek PHP je nezávislý na platformě

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

MySQLi (objektově) Příklad vytvoření instance třídy včetně parametrů pro připojení: $mysqli = new mysqli('localhost', 'login', 'heslo', 'databaze');

STŘEDNÍ ŠKOLA INFORMAČNÍCH TECHNOLOGIÍ A SOCIÁLNÍ PÉČ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);

Webové stránky fotbalového klubu

WEBsro.cz. Krok za krokem Založení webu. krásné weby pro české podnikatele 1 / 10

E-NABÍDKA PARTNER.REDA.CZ

PHP a Large Objecty v PostgreSQL

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

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

Fingerprint Verification Control

Informační systém webhostingu

INOVACE PŘEDMĚTŮ ICT. MODUL 11: PROGRAMOVÁNÍ WEBOVÝCH APLIKLACÍ Metodika

Vstupní požadavky, doporučení a metodické pokyny

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

Alsenta.com Zbynek Lakomý

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í

ŘÍDÍCÍ STRUKTURY - PODMÍNKY

Redakční systém Joomla. Prokop Zelený

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

NÁVRH A TVORBA HUDEBNÍ DATABÁZE

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

Databázové aplikace pro internetové prostředí PHP úvod, základní princip, vkládání skriptu, komentáře, výpis na obrazovku

Nástrojová lišta v editačním poli

Maturitní projekt do IVT Pavel Doleček

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

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

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

1 Webový server, instalace PHP a MySQL 13

Úvodem 9. Zpětná vazba od čtenářů 10 Zdrojové kódy ke knize 10 Errata 10. Než začneme 11

Klíčová slova: dynamické internetové stránky, HTML, CSS, PHP, SQL, MySQL,

Postup při zasílání dokumentů smluvních partnerů České pojišťovny prostřednictvím aplikace externí upload

Uživatelský modul Stunnel

5.2 Controller zastupce

SAMUEL LEROY JACKSON. Projekt webové stránky. Programové vybavení Jáchym Kubáček, IT3B Brno 2016

Úvod do PHP s přihlédnutím k MySQL

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

CMSSS manuál k použití

Manuál pro žadatele OBSAH

Manuál. Omluvenky online

Úvod do tvorby internetových aplikací

PHP tutoriál (základy PHP snadno a rychle)

WEBOVÉ STRÁNKY

POKYNY K REGISTRACI PROFILU ZADAVATELE

Informační systém pro e-learning manuál

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

ABC Linux běží z CD české prostředí tištěná příručka obsah portálu Mutt Jak začít? Jan Fuchs

Uživatelská příručka aplikace. SPRÁVA NEMOVITOSTÍ pro bytová družstva a společenství vlastníků jednotek

Sada 1 - PHP. 09. Formuláře

Aplikace objednávání svozů

Příprava prostředí pro výuku PHP a MySQL

ON-LINE PORADA PRO TEST

Na vybraném serveru vytvoříme MySQL databázi. Soubory scratch.jpa, kickstart.php a en-gb.kickstart.ini nahrajeme na vybraný server.

Rozklad na prvočinitele. 3. prosince 2010

OBSAH. 1. Úvod Požadavky na SW vybavení... 3

4. lekce Přístup k databázi z vyššího programovacího jazyka

Uživatelská příručka

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

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

DESETIMINUTOVKY HTML - DOVEDNOSTI TÉMATA:

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.

VISUAL BASIC. Přehled témat

Elektronické propozice Manuál

Ares 10/12 První spuštění

Dokumentace k API SSLmarketu. verze 1.3

WEBOVÉ STRÁNKY

Ukázka knihy z internetového knihkupectví

UŽIVATELSKÝ MANUÁL PERSONALIZACE MOJE SODEXO V

PŘ Í ŘUČ KA PŘO Š KOLNÍ A OKŘEŠNÍ GAŘANTY

Maturitní otázky z předmětu PROGRAMOVÁNÍ

M E T O D I K A W I K I

Manuál PVU zadavatel Platnost pro elektronický nástroj X-EN verze 3 a novější

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

SMTPServer - Příručka

Dokumentace ke službě SMS Connect.

Portál Značení tabáku Uživatelská příručka pro registrované uživatele

UŽIVATELSKÝ MANUÁL PERSONALIZACE MOJE SODEXO V

ČNHP. Příručka pro pacienty. Institut biostatistiky a analýz. Vytvořil:

Na vod k nastavenı u

Nastavení Sony Ericsson XPERIA X1

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

Uživatelská příručka administrativního rozhraní Vědecké knihovny v Olomouci

43 HTML šablony. Záložka Šablony v systému

Příručka nastavení funkcí snímání

Příručka pro editaci kontaktů na eagri

Manuál PVU zadavatel Platnost pro elektronický nástroj X-EN verze 4 a novější

Snadná úprava stránek, nemusím umět HTML, tvořím obsah téměř jako ve Wordu. Jak změnit obsah nástěnky: vpravo nahoře Nastavení zobrazených informací

INFORMAČNÍ SYSTÉMY NA WEBU

Údržbové prostředí Rebeca44

Uživatelská příručka

Návod na internetové bankovnictví

Výukový materiál zpracovaný v rámci projektu

REGISTRACE UŽIVATELE

Analýza požadavků. 1. Funkční požadavky - popisují chování, funkce a operace uživatelů, které systém musí podporovat. 1.1 Operace uživatelů

Reliance 3 design OBSAH

Sentech AL 7000 C. Instalace a ovládání programu BREATH

Transkript:

STŘEDNÍ ŠKOLA TECHNICKÁ A EKONOMICKÁ, BRNO, PŘÍSPĚVKOVÁ ORGANIZACE 18 20 M/01 Informační technologie TEMNÝ PÁN SAURON PROJEKT WEBOVÉ STRÁNKY ADAM FOLTÝN Předmět: Programové vybavení Třída: IT3B Vytvořeno v roce 2016 a 2017 v Brně

Obsah 1. Výběr tématu:... 3 2. Návrh a grafický design:... 4 3. Popis layoutu:... 5 4. Screen stránky:... 6 5. Dynamická struktura:... 7 6. Použité nástroje:... 18 7. Závěr... 19 8. Zdroje:... 20

1. Výběr tématu: Saurona jsem si vybral, protože knižní svět Hobita a Pána prstenů je velice zajímavý. Ačkoliv je Sauron hlavní zápornou postavou v knižní trilogii Pán prstenů, tak o něm zase není tolik známo, proto jsem se rozhodl zpracovat historii tohoto druhého temného pána Středozemě a dalších duchů, kteří byli s ním nebo se Středozemí byli významně spojeni, včetně stvoření Prstenů moci i jejich osudy. 3

2. Návrh a grafický design: Tento grafický design jsem si vybral, protože mám rád šedou a jí podobné odstíny. Současně si myslím, že se výběr barev hodí k webu o démonické bytosti. 4

3. Popis layoutu: Smartphone: Desktop: Za hashtagy jsou názvy použitých divů a jejich účel: #background + #foreground: Logo #menu: Zde si vybíráte stránku skrze tlačítka #hlavni: Slouží pro seskupení článků v jedné rovině #clanek: Je do něj vložen hlavní obsah, každý článek je oddělen #bok: Panel se základními informacemi o Sauronovi #pata: Údaje o autorovi, linky na stáhnutí a validaci 5

4. Screen stránky: 6

<?php else { 5. Dynamická struktura: if (isset($_get['stranka'])) { require($_get['stranka']. '.php'); } require('sauron'. '.php'); }?> Výše vypsaný skript se nalézá v souboru index.php a řeší načítání obsahu z dalších souborů jako je například soubor feedback.php. Pokud je splněna podmínka tím, že je zadán cílový soubor kliknutím na tlačítko, skript načte jeho obsah, pokud ale podmínka splněna není, skript načte obsah souboru sauron.php. 7

<?php $zdroj=$_get['stranka']; switch($zdroj){ case "sauron": echo '<p > Sauron. In: The Lord of the Rings Wiki: Fandom powered by Wikia [online]. [cit. 28.11.2016]. Dostupné z: <a href="http://lotr.wikia.com/wiki/sauron" target="_blank">http://lotr.wikia.com/wiki/sauron</a> </p>'; break; case "valar": echo '<p > Valar. In: The Lord of the Rings Wiki: Fandom powered by Wikia [online]. [cit. 28.11.2016]. Dostupné z: <a href="http://lotr.wikia.com/wiki/valar" target="_blank">http://lotr.wikia.com/wiki/valar </a> </p>'; break; case "maiar": echo '<p >Maiar. In: The Lord of the Rings Wiki: Fandom powered by Wikia [online]. [cit. 28.11.2016]. Dostupné z: <a href="http://lotr.wikia.com/wiki/maiar" target="_blank">http://lotr.wikia.com/wiki/maiar</a> </p>'; break; case "rings": echo '<p >Rings of Power. In: The Lord of the Rings Wiki: Fandom powered by Wikia [online]. [cit. 28.11.2016]. Dostupné z: <a href="http://lotr.wikia.com/wiki/rings_of_power" target="_blank">http://lotr.wikia.com/wiki/rings_of_power</a> </p>'; 8

break; case "feedback": echo '<p> Markle, B (2016) PHPMailer (Verze 5.2.0) [Source code]. Dostupné z: <a href="http://www.inmotionhosting.com/support/email/send-emailfrom-a-page/using-phpmailer-to-send-mail-throughphp">http://www.inmotionhosting.com/support/email/send-emailfrom-a-page/using-phpmailer-to-send-mail-through-php</a> </p>'; break; default: echo '<p > Sauron. In: The Lord of the Rings Wiki: Fandom powered by Wikia [online]. [cit. 28.11.2016]. Dostupné z: <a href="http://lotr.wikia.com/wiki/sauron" target="_blank">http://lotr.wikia.com/wiki/sauron</a> </p>'; }?> Skript řeší která stránka je momentálně zobrazená, podle toho jí zobrazí citaci v patičce. 9

<?php // $name a $message jsou data, // která byla sem přenesena z php stránky obsahující feedback formulář $name = $_REQUEST['name'] ; $message = $_REQUEST['message'] ; $vzhled = $_REQUEST['vzhled'] ; $tema = $_REQUEST['tema'] ; $kvalita = $_REQUEST['kvalita'] ; $ns = "Zpravu napsal: ". $name; require('phpmailer_5.2.0/class.phpmailer.php'); $mail = new PHPMailer(); // nastaví používání protokolu SMTP $mail->issmtp(); $mail->smtpdebug = 2; $mail->smtpauth = true; // zapne SMTP autentizaci $mail->smtpsecure = 'ssl'; $mail->host = "smtp.gmail.com"; $mail->port = 465; $mail->ishtml(true); // Při posílání e-mailu skrze PHPMailer, musíte použít validní e-mailovou adresu // Pro tento případ jsem vytvořil tuto e-mailovou adresu: $mail->username = "saursend@gmail.com"; // SMTP uživatelská adresa $mail->password = "StopBeingAPleb"; // SMTP heslo 10

// Adresa e-mailu kam budeme posílat feedback $mail->addaddress("saurget@gmail.com"); // nastaví word wrap (zalomení dlouhého slova) na 50 znaků $mail->wordwrap = 50; // nastaví e-mailu formát HTML $mail->ishtml(true); $mail->subject = "Obdrzel jste feedback z vasi stranky!"; // $message obsahuje uživatelovu zprávu // obsah $message nastavujeme // na vrcholu této stránky příkazem: // $message = $_REQUEST['message'] ; $mail->body = $ns. '<br> <br> Hodnoceni: <br> vzhled: '. $vzhled. '<br> tema: '. $tema. '<br> kvalita zpracovani informaci: '. $kvalita. '<br> <br> feeback: '. $message; $mail->altbody = $ns. '<br> <br> Hodnoceni: <br> vzhled: '. $vzhled. '<br> tema: '. $tema. '<br> kvalita zpracovani informaci: '. $kvalita. '<br> <br> feeback: '. $message; if(!$mail->send()) { echo "Zpráva nemohla být odeslána. <p>"; echo "Mailer Error: ". $mail->errorinfo; echo ("Návrat: "); exit; } echo ("Zpráva odeslána, návrat: ");?> Výše vypsaný skript je ze souboru email.php a řeší zasílání feedbacku přes SMTP skrze jeden Gmailový účet na druhý Gmailový účet. Na začátku skriptu se uloží zadaná data ve formuláři do proměnných, nastaví se připojení, například číslo portu a příjemce. Ke konci skriptu se do těla mailu nahraje obsah a e-mail se odešle, zkontroluje se, zda byl e-mail odeslán a v případě neúspěchu se zobrazí příčina chyby. 11

<?php $con=mysqli_connect("localhost","root","","comment"); //pripojuje se k databazi // Check connection if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: ". mysqli_connect_error(); //pokud nastala chyba vypise error, jinak se pripoji?> } Slouží k připojení k databázi jménem comment jako root bez hesla na localhostu. 12

<?php $name = $_REQUEST['name']; //vytahne si jmeno a obsah komentare $comments = $_REQUEST['comments']; if (!$name) {$name="anonym";} //pokud je jmeno nevyplnene, pak se nastavi na anonym require("db/db.php"); //spoji se s php souborem, ktery zajistuje pripojeni k databazi mysqli_query($con, "INSERT INTO comments(name, comments) VALUES('$name','$comments')"); //vlozi do databaze data $result = mysqli_query($con, "SELECT * FROM comments ORDER BY id ASC"); //nacte data z databaze while($row=mysqli_fetch_array($result)){ echo "<div class='comments_content'>"; echo "<h1>". $row['name']. "</h1>"; //postupne data vypisuje echo "<p>". $row['comments']. "</p></br>"; echo "<h3>". $row['date_publish']. "</h3>"; echo "</div>"; } mysqli_close($con); //ukonci spojeni s databazi?> Vloží odeslaný komentář do databáze a následně jej vypíše, v 1. řádku bude jméno, ve 2. bude obsah komentáře a ve 3. bude čas a datum odeslání komentáře. Ke konci spojení s databází ukončí. 13

<?php require("db/db.php"); //spoji se s php souborem, ktery zajistuje pripojeni k databazi $result = mysqli_query($con, "SELECT * FROM comments ORDER BY id ASC"); //nacte data z databaze, bude je vypisovat postupne podle id od nejmensi po nejvetsi while($row=mysqli_fetch_array($result)){ echo "<div class='comments_content'>"; //radek po radku vypisuje vysledky kazdy do sve tabulky echo "<h1>". $row['name']. "</h1>"; echo "<p>". $row['comments']. "</p></br>"; echo "<h3>". $row['date_publish']. "</h3>"; echo "</div>"; } mysqli_close($con);?> Připojí se k databází a následně vypíše komentáře z databáze. Nejprve vypíše jméno, poté komentář a na posledním řádku datum. 14

6. Návrh Databáze $result = mysqli_query($con, "SELECT * FROM acc ORDER BY id_user ASC"); while($row=mysqli_fetch_array($result)){ if (($name==$row['name']) and ($pwd==$row['pass'])){ $g=1; $id=$row['id_user']; } } if ($g==1) { mysqli_query($con, "INSERT INTO comments(id_user, comments) VALUES('$id','$comments')"); Tato část kódu slouží k získání uživatelů z databáze a porovnávání přihlašovacích údajů. Pokud je nalezena shoda, tak je proměnné g přiřazena hodnota 1 a do proměnné id se uloží id uživatele, který přidává obsah. V podmínce, kde se porovnává g, se vkládá obsah komentáře do databáze, jako pojítko s uživatelem, který ho tam vložil slouží id_user. 15

$result = mysqli_query($con, "SELECT * FROM comments INNER JOIN acc ON comments.id_user = acc.id_user ORDER BY id ASC;"); while($row=mysqli_fetch_array($result)){ echo "<div class='comments_content'>"; echo "<h1>". $row['name']. "</h1>"; echo "<p>". $row['comments']. "</p></br>"; echo "<h3>". $row['date_publish']. "</h3>"; echo "</div>"; } } else { echo "Neplatné jméno nebo heslo";} mysqli_close($con); //ukonci spojeni s databazi?> Tato část kódu se stará o vypisování obsahu z databáze. Pomocí inner join se spojí dvě tabulky tam, kde je shodný id_user a zařídí se tak, aby při vypsání byl komentáři přiřazen správný autor. 16

7. Generátor Aplikace generuje dvě postavy, první uloží do proměnných a zároveň do sessionu, druhá postava se při druhém zadávání formuláře uloží pouze do proměnných. Při každém odeslání formuláře proběhne boj. Nejprve se porovná hodnota štěstí, jako první začíná postava s větším štěstím, pokud jsou hodnoty štěstí stejné, tak o pořadí rozhodne náhodně skript pomocí funkce random. Poté započne cyklus while, který probíhá do té doby, dokud má proměnná $konec hodnotu 0. V cyklu se začnou vypisovat kola, jako první útočí ten s vyšším štěstím, obránci se od bodů života odečte poškození útočníka, pokud obránce přežije první kolo, tak útočí on. Jakmile životy jedné z postav klesnou přinejmenším na nulu, cyklus se ukončí a vypíše se výsledek. 17

PsPad 8. Použité nástroje: Editor; pro psaní kódu. Malování Grafický editor; pro uložení screenu obrazovky. Gimp Grafický editor; pro úpravu obrázků. Google Chrome Prohlížeč; pro prohlížení vzhledu stránek. W3C online validátor Validační nástroje; ověření validity HTML a CSS. Endora Hosting; nahrání a online prezentování vytvořených stránek. Síla SEO Test SEO; Kontrola, zda web má potřebné meta tagy, zda je optimalizovaný pro tisk atd. Draw.io Online nástroj pro tvorbu diagramů; Pro vytvoření schéma layoutu. Color Combos Online nástroj pro generování barev; Identifikace hlavních barev z webu. Coolors Online nástroj pro generování barev; Vytvoření barevného schéma. EasyPHP Vývojové prostředí lokálního serveru; vývoj a testování php skriptů a databází. 18

9. Závěr Po upřesnění mých představ o vzhledu stránek byl můj první problém s obrázky ve funkci float, obrázek například vyskočil mimo článek, nebo jej neobtékal text, tento problém byl však vyřešen změnou obrázku. Po vyřešení tohoto problému jsem se zaměřil na chyby v HTML kódu, často způsobenými neukončenými tagy, nevěnoval jsem však pozornost responzivitě webu. Responzivitu webu jsem opravil až při druhém odevzdávání webu, a současně jsem trochu změnil vzhled. Ze souboru index.php jsem vyjmul obsah a vložil jsem ho do souboru sauron.php, v indexu však zůstal layout a na původní místo obsahu jsem dal PHP skript, který vypíše obsah zvoleného souboru. Dále jsem vytvořil PHP skript, který odešle informace z formuláře na e-mail prostřednictvím dalšího e-mailu. Tento skript jsem sice stáhnul z internetu, ale i přesto jsem si ho musel upravit podle sebe, aby fungoval správně. Vytvořil jsem generátor, který vytvoří dvě postavy, ty se však musí vytvářet až po sobě, jedna postava se proto musí uložit do sessionu. Po vytvoření dvou postav nastane cyklus, kde se odečítají životy obránce od poškození útočníka, každé kolo je okomentované a vítěz je vypsán. Pro přidávání komentářového obsahu a odesílání feedbacku je třeba se zaregistrovat. Registrovaný uživatel má možnost přidávat komentáře, ty se ukládají do databáze a tabulka komentářů je propojena s tabulkou uživatelů skrze společné id_user a inner join. Feedback se stále odesílá na emailovou adresu, ale také se nyní ukládá i do databáze pro případ znepřístupnění adresy. 19

10. Zdroje: Sauron. In: The Lord of the Rings Wiki: Fandom powered by Wikia [online]. [cit. 28.11.2016]. Dostupné z: http://lotr.wikia.com/wiki/sauron Valar. In: The Lord of the Rings Wiki: Fandom powered by Wikia [online]. [cit. 28.11.2016]. Dostupné z: http://lotr.wikia.com/wiki/valar Maiar. In: The Lord of the Rings Wiki: Fandom powered by Wikia [online]. [cit. 28.11.2016]. Dostupné z: http://lotr.wikia.com/wiki/maiar Rings of Power. In: The Lord of the Rings Wiki: Fandom powered by Wikia [online]. [cit. 28.11.2016]. Dostupné z: http://lotr.wikia.com/wiki/rings_of_power Markle, B (2016) PHPMailer (Verze 5.2.0) [Source code]. Dostupné z: http://www.inmotionhosting.com/support/email/send-email-from-a-page/usingphpmailer-to-send-mail-through-php Parbuaya, G (2014) Chat box (Verze 1.0.0) [Source code]. Dostupné z: http://www.sourcecodester.com/php/7191/how-create-comment-box-using-phpmysql.html 20