V tomto díle se podíváme, jak vytvořit jednoduchou návštěvní knihu s podporou databáze. Popíšeme si tu detailně všechny potřebné skripty. Všechny skripty, které se zde objeví budou bez použití kaskádových stylů, aby jste se v tom lépe vyznali. Pokud budete chtít kompletní návštěvní knihu i s použitím jednoduchého designu, stáhněte si prosím na konci stránky arhciv s návštěvní knihou.
Na tomto příkladu si ukážeme, jak se používájí dotazy na databázi pomocí PHP. Nebudou zde takové věci, jakou jsou třeba, kontrola správného tvaru emailu, či spambotová kontrola. Pokud chcete návštěvní knihu se všemi funkcemi i administrací, kontaktujte mě emailem, nebo po ICQ
Následující příkaz mužete použít například v PHPadminu Vaší databáze. Vytvoří Vám potřebnou tabulku, kam se budou ukládat všechny vzkazy.
CREATE TABLE `navstevni_kniha`( `ID` INT NOT NULL AUTO_INCREMENT , `NICK` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_czech_ci NOT NULL , `EMAIL` VARCHAR( 255 ) CHARACTER SET ucs2 COLLATE ucs2_czech_ci NULL , `WEB` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_czech_ci NULL , `ZPRAVA` VARCHAR( 255 ) CHARACTER SET ucs2 COLLATE ucs2_czech_ci NOT NULL , `DATUM` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_czech_ci NOT NULL , PRIMARY KEY ( `ID` ) )ENGINE = MYISAM
Skript obsahuje jednoduchý formulář k odeslání nového příspěvku, pokud bude formulář odeslán, skript vloží příspěvek do databáze. Dále si skript připojí další skript seznam_vzkazu.php, který vypíše všechny vzkazy v databázi.
<?php include('pripojeni.php'); ?> <form action="#" method="post"> <input type="text" name="nick" /> nick <br /> <input type="text" name="email" /> email<br /> <input type="text" name="web" /> Váš WEB<br /> Vzkaz:<br /> <textarea name="vzkaz"></textarea> <input type="submit" value="odeslat" /> </form> <?php // přijme všechny zadané informace do formuláře $nick = $_REQUEST["nick"]; $email = $_REQUEST["email"]; $web = $_REQUEST["web"]; $vzkaz = $_REQUEST["vzkaz"]; $datum = StrFTime("%d.%m.%Y", Time()); // pokud byly vyplněny všechny nezbytné informace, může se // nový příspěvek uložit do databáze if($nick!="" && $vzkaz!="") { // uloží se nový vzkaz do databáze a vrátí 1, // pokud uložení bude uspěšné $flag = mysql_query("INSERT INTO navstevni_kniha VALUES ('','$nick','$email','$web','$vzkaz','$datum');"); // vypíše, jestli byl vzkaz přidán, nebo ne echo ($flag) ? "vzkaz přidán" : "nepovedlo se přidat vzkaz"; } // vloží soubor s vypisem všech vzkazů, které jsou uloženy v databázi include('seznam_vzkazu.php'); ?>
Tento skript přečte všechny vzkazy, které jsou v databázi a vypíše je na obrazovku.
<?php //přečte počet vzkazů v databázi $pocet_vzkazu = mysql_query("select count(*) as pocet from navstevni_kniha;"); $cislo = mysql_fetch_array($pocet_vzkazu); $celkem_vzkazu = $cislo["pocet"]; echo "celkový počet vzkazů: ".$celkem_vzkazu."<br />"; //vrati vsechny vzkazy $vzkazy = mysql_query("SELECT * FROM navstevni_kniha;"); // pokud nebyly načteny žádné vzkazy, vypiš chybu if(!$vzkazy){ echo "chyba při načetní vzkazů"; } // jinak ulož vzkazy do pole a postupně je vypiš else{ // cyklus while projde všechny vzkazy, // pomoci pole $vzkaz[""] vypíše všechny informace jednotlivých vzkazů while ($vzkaz = MySQL_Fetch_Array($vzkazy)) { echo $vzkaz["ID"]."<br />"; echo $vzkaz["NICK"]."<br />"; echo $vzkaz["EMAIL"]."<br />"; echo $vzkaz["WEB"]."<br />"; echo $vzkaz["ZPRAVA"]."<br />"; echo $vzkaz["DATUM"]."<br />"; } } ?>
Skript je stený jako v minulém díle. Připojí PHP server k databázi, tím umožní čtení či zápis nových i starých příspěvků.
Soubory z archivu si zkopírujte do kořenového adresáře. Dále si includujte soubor navstevni_kniha.php na místo, kde chcete zobrazit návštěvní knihu.
Dále je potřeba si zeditovat soubor pripojeni.php. Zde musíte zadat, jak je uvedeno v minulém díle, všechny potřebné přihlašovací údaje do databáze.