Posledný diel seriálu Fórum v PHP a MySQL Vám prinesie hotovú "prevozu" schopnú aplikáciu, ktorú je odporúčané si upraviť podľa seba.
function zobraz_temy($zacni){ echo "<h2>Fórum</h2>n"; menu(); // volanie funkcie pre menu $strana = urlencode($_GET['strana']); $zobrazit = urlencode($_GET['zobrazit']); $pocet = mysql_num_rows(mysql_query("SELECT id_temy FROM temy")); $pocet = ceil($pocet/$zacni); if($pocet == NULL){ echo "V databáze sa momentálne nenachádzajú žiadne články!<br />n"; require_once("layout/bottom.php"); exit(); } if(isset($_GET['zobrazit'])){ if($_GET['zobrazit'] == $zobrazit){ $zobrazit = ceil($zobrazit); if($_GET['strana']){ if($_GET['strana'] == $strana--){ $strana = ceil($strana*$zacni); $sql = mysql_query("SELECT id_temy, nadpis, datum FROM temy ORDER BY uprava DESC LIMIT $strana, $zobrazit"); while($stlpec = mysql_fetch_object($sql)){ $id_temy = $stlpec->id_temy; $nadpis = $stlpec->nadpis; $datum = $stlpec->datum; echo "<div class="tema">n"; echo "<strong><a href="?id=$id_temy" title="$nadpis">$nadpis</a></strong><br />n"; echo "<small>[ Dátum:$datum ]</small>n"; echo "</div>n"; } } } } } else { $sql = mysql_query("SELECT id_temy,nadpis,datum FROM temy ORDER BY uprava DESC LIMIT 0, $zacni"); while($stlpec = mysql_fetch_object($sql)){ $id_temy = $stlpec->id_temy; $nadpis = $stlpec->nadpis; $datum = $stlpec->datum; echo "<div class="tema">n"; echo "<strong><a href="?id=$id_temy" title="">$nadpis</a></strong><br />n"; echo "<small>[ Dátum:$datum ]</small>n"; echo "</div>n"; } } while($cislo != $pocet){ $cislo++; echo "<a href="?strana=$cislo&zobrazit=$zacni" title="$cislo">$cislo</a> n"; } }Funkciu si môžete podrobne preštudovať a zistíte, že celé stránkovanie je založené iba na podmienkach. Samozrejme iba v tomto prípade. Spôsobov ako ho vytvoriť je nespočetne.
<? #index.php
require_once("config.php");
require_once("functions.php");
include_once("layout/top.php");
if(isset($_GET['id'])){
if($_GET['id'] == $id)
{
zobraz_temu($id);
}
} elseif(isset($_GET['tema']))
{
vytvor_temu();
} else
{
zobraz_temy($zacni);
}
include_once("layout/bottom.php");
mysql_close();
?>
Parameter $zacni je už teraz vložený do funkcie zobraz_temy().
Je to vlastne premenná, ktorá je už dopredu definovaná v konfiguračnom súbore
config.php. Ďalšia úprava bude anti-spam. Urobíme ho jednoducho.
Stačí ak pri výpise s databázy zmeníte načítaný reťazec.$email = $zaznam->email; $email = Str_Replace("@"," (at) ",$email);Pri každom takomto výpise sa email upraví s tvaru email@domena.tld na tvar email(at)domena.tld. Rovnako si môžete zmeniť aj bodku alebo podobne. Posledná zmena sa týka funkcie zobraz_temu(). Vyhľadajte časť funkcie kde sa zapisuje príspevok do databázy k téme a pridajte tam tento riadok.
mysql_query("UPDATE temy SET uprava=NOW() WHERE id_temy='$id'");V kódoch fóra sú aj komentáre takže Vám budú nápomocné. Bude tam popis typu "čo robí čo". Odporúčam si naštudovať aj tento článok, ak chcete mať ostrú aplikáciu umiestnenú na internete.