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

Ako zbaviť fotky hmly

08.12.2016 11:59

Hmla alebo dym sú často veľmi kreatívne nástroje. No všetkého veľa škodí. Fotka potom stráca kontrast a v podstate na nej nič nevidieť. Hmlu môžete neraz následnými úpravami odstrániť alebo zredukovať ...

Ako na to

Užitočné SW nástroje

08.12.2016 11:53

AllDup v4.0.3 Určenie: program na vyhľadávanie a odstraňovanie duplicitných súborov Vlastnosti: duplicitné súbory sa vyhľadávajú len na zvolených diskových jednotkách alebo len v rámci vybraných ...

Ako na to

Fotografovanie s bleskom

08.12.2016 11:47

Ak máte moderný fotoaparát so vstavaným alebo externým bleskom, zdá sa vám téma článku triviálna. Jednoducho nastavíte vhodný režim, vyberiete najlepšiu kompozíciu záberu, exponujete a o zvyšok sa už ...

Žiadne komentáre

Vyhľadávanie

Kyocera - prve-zariadenia-formatu-a4-s-vykonom-a3

Najnovšie videá