Image
15.5.2016 0 Comments

Databázy II / 4.časť

Späť na úvod >> Späť na seriál

Už viackrát sme si povedali, že HTTP server síce prijme požiadavku na stránku s príkazmi PHP, ale jej vytvorenie nechá práve na preprocesor PHP. Ten, len čo spracuje úlohy spojené s databázou, vytvorí súbor vo formáte jazyka HTML a ten cestou servera odošle žiadateľovi. Na výpise č. 7 je zdrojový text takej HTML stránky, ktorú vytvorí PHP po spracovaní skriptu priklad2.php:

V tabulke KNIHA je 10 zaznamov.<P><BR>Angelika a kral -- Golon, Anne a Serge<BR>
KGB -- Gordijevsky, Oleg<BR>
Bratia Ricovci -- Simenon, Georges<BR>
Vtaky v trni -- McCulloughova, Collen<BR>
Linux - prakticky pruvodce -- Sobell, Mark G.<BR>
Naucte se programovat v Delphi -- Binzinger, Thomas<BR>
Pouzivame linux -- Welsh, M., Kaufman, L.<BR>
Z polovnickej kapsy -- Moric, Rudo<BR>
Plebejska kosela -- Mihalik, Vojtech<BR>
Europou bez penazi -- Hlubucek, Petr, Ing.<BR>

 

Toto dosiahneme, keď po prijatí odpovede, prejdeme do menu View - Page Source (v NetScape 4.7). Môžeme porovnať, že výpis na obr. 5 nie je vôbec zhodný s týmto HTML výpisom, ale je jeho výsledkom. A to je práve úlohou PHP.
Skúsení tvorcovia HTML stránok namietnu, že tieto skripty sú síce funkčné, ale nečisté. Odporujú zásadám pre tvorbu HTML stránok a niektoré prehliadače by ich nemuseli interpretovať správne. Preto skript priklad2.php „oblečieme“ do správneho kódu HTML. Zároveň ošetríme chybové hlásenia. Vieme, že ak nastane chyba pri behu skriptu, chybové hlásenie sa zobrazí na obrazovke a beh skriptu sa ukončí. Oveľa prijateľnejšie a používateľsky príjemnejšie je vlastné ošetrenie chýb. Pomocou znaku @ potlačíme zobrazovanie štandardných chybových hlásení a vytvoríme vlastné chybové hlásenia. Je to veľmi jednoduché. Skoro každá funkcia v PHP pri chybovom stave vráti hodnotu false. Takže také ošetrenie pripojenia k MySQL bude vyzerať asi takto:

if (!$spojenie):
echo "Nepodarilo sa pripojit k MySQL.<BR>\n";
                               break;
                endif;

čo môžeme interpretovať – ak nie je spojenie, vypíš čosi a zastav sa!
Efektné, však?
Správne a podľa všetkých regulí vytvorený skript priklad3.php, v ktorom budú ošetrené aj chyby, je na výpise č. 8.

<HTML>  <HEAD>    <META HTTP-EQUIV="Content-Type" CONTENT="text/html;windows-1250">
    <TITLE>Náš tretí PHP skript</TITLE>
  </HEAD>
<BODY>
<H1>Výpis titulov a autorov z tabulky KNIHA</H1>
<?
do {
   @$spojenie = MySQL_Connect("localhost","root","heslo");
   if (!$spojenie):
      echo "Nepodarilo sa pripojit k MySQL.<BR>\n";
      break;
   endif;
   MySQL_Select_DB("kniznica",$spojenie);
   @$vysledok = MySQL_Query("select * from kniha", $spojenie);
   if (!$vysledok):
      echo "Došlo k chybe spracovania SQL príkazu.<BR>\n";
      break;
   endif;
   $pocet = MySQL_Num_Rows($vysledok);
   echo "V tabulke KNIHA je tychto $pocet zaznamov:<BR>\n";
   echo "<P>";
   while ($zaznam = MySQL_Fetch_Array($vysledok))
         echo $zaznam["nazov"]." -- ".$zaznam["autor"]."<BR>\n";
   MySQL_Close($spojenie);
   } while (false);?>
</BODY>
</HTML>

 

Znova ho uložíme na web a zavoláme v prehliadači, kde uvidíme obr. č. 1.

Aspoň trochu user friendly program
Tvrdíte, že to stále nie je to pravé orechové? Áno, súhlasím, veď sme iba na začiatku. Pôvodne som chcel už ukončiť dnešnú lekciu, ale mám pre vás takú perličku. Na záver si vytvoríme aspoň trochu user-friendly aplikáciu do našej knižnice. Bude ilustrovať, čo sme sa doteraz naučili, a bude využívať aj prístupové práva, ktoré sme tak prácne tvorili. Jej činnosť bude takáto: po zavolaní príslušnej stránky sa zobrazí vstupný formulár. Po jeho vyplnení sa návštevníkovi (alebo zamestnancovi) knižnice zobrazí zoznam kníh v knižnici. Tak ideme na to!

Najprv si musíme vytvoriť súbor aplikacia1.htm. Jeho obsah je na výpise č. 10.

<HTML>
<HEAD>
    <META NAME="Generator" CONTENT="Golden HTML Editor 4.8.1">
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=windows-1250">
    <TITLE>Náš komunikatívny program</TITLE>
</HEAD>
<BODY>
<H1>Zadaj prístupové meno a heslo do databáze:</H1>
<PRE>

<FORM ACTION="priklad4a.php" METHOD=POST>
  Meno   : <INPUT NAME=meno><BR>
  Heslo   : <INPUT NAME=heslo><BR>
<INPUT TYPE=Submit VALUE="Odoslanie  formulara">
</FORM>
</PRE>
</BODY>
</HTML>

Takto sme vytvorili dopytovací formulár, kde zadáme meno a heslo na prístup do databázy. Ako je zrejmé, tie sa uložia do premenných meno a heslo. Vyplnené údaje nakoniec odošleme tlačidlom s nápisom „Odoslanie formulára“. Všimnime si riadok
<FORM ACTION="priklad4a.php" METHOD=POST>
ktorý hovorí, ktorému skriptu budú zadané údaje odoslané na spracovanie. Je to skript priklad4a.php, ktorý je čiastočne upraveným naším skriptom priklad4.php z výpisu č. 8. Zmena spočíva v úprave riadka
@$spojenie = MySQL_Connect("localhost",$meno,$heslo);
kde sme „napevno“ napísané meno používateľa a jeho heslo – teda “root” a “heslo” – vymenili za premenné z formulára. Takto je nový skript variabilný, lebo za premenné môžeme dosadiť ľubovoľné meno a heslo.

Za riadok so spojením môžeme doplniť ešte jeden riadok:
echo "<H3>Vítam Vás, $meno !</H3>"."<P>";
ktorý zabezpečí prívítacie hlásenie podľa mena prihlasujúceho.

A ako taký formulár vyzerá? Tak ako na obrázku č. 2.

Ako vidíte, vyplnili sme prihlasovacie meno riaditel a jeho heslo direktor. Stlačíme sivé tlačidlo, a ak sú zadané údaje správne, dostaneme okno, ako je na obr. č. 3.

Ak nie, nastane chyba. Keďže sme chyby ošetrili a nahradili našimi chybovými hláseniami, môžeme v prípade zle zadaného mena alebo hesla uvidieť takýto obrázok (obr. č. 4).

Dobrí fajnšmekri by vedeli do skriptu vložiť zopár formátovacích tagov, ktoré by urobili peknú tabuľku okolo výpisu a podobne. To však nie je cieľom tejto lekcie.
Teraz máme hotovú prvú aplikáciu. Nie je ešte dokonalá, ale je aspoň funkčná. Vyskúšajte si zadávať všetky mená a heslá, ktoré sme definovali v 9. a 10. časti seriálu. Aspoň zistíte, ako reaguje.
Všetky zdrojové texty nemusíte prácne odpisovať, ale si ich môžete stiahnúť z redakčnej webovej stránky www.pcrevue.sk alebo mojej web stránky na adrese www.mior.host.sk. Zároveň vás tam čaká niekoľko zaujímavých noviniek.

Nabudúce si naše nové poznatky trošku rozšírime.

Zobrazit Galériu

Nechajte si posielať prehľad najdôležitejších správ emailom

Mohlo by Vás zaujímať

Ako na to

CES 2017: Lenovo predstavilo nové notebooky ThinkPad X1, Miix 720 a prvý smartfón s podporou Tango - Lenovo Phab 2

03.01.2017 00:09

Lenovo odštartovala ďalší ročník veľtrhu s celou škálou nových produktov. Nová generácia produktov radu ThinkPad X1 Carbon 2017 je najľahším 14-palcovým biznis notebookom, ktorý váži len 1,14kg a obsa ...

Ako na to

Tipy a triky: Ako správne poskytovať IT pomoc a ako o ňu správne žiadať?

14.12.2016 09:40

Či už ste pokročilý používateľ počítača, ktorý často poskytuje IT pomoc známym a rodine, alebo ste to vy, kto o takúto pomoc zvyčajne žiada, ľahko sa stanete nechcenou príčinou frustrácie a obrovskej ...

Ako na to

Tipy a triky: Ako diagnostikovať a opravovať neúspešné upgrady Windows 10

14.12.2016 09:37

Microsoft prešiel s Windows 10 do celkom novej éry vývoja. Namiesto samostatných verzií Windows, vydávaných zvyčajne s odstupom dvoch až piatich rokov (XP, Vista, 7 a podobne), začal svoj systém vyvíj ...

Žiadne komentáre

Vyhľadávanie

ShowIT

Najnovšie videá