V následujícím seriálu se naučíte vytvářet webový rozcestník v PHP s použitím databáze MySQL. Webovým rozcestníkem se zde rozumí služba, která nabízí registraci internetových stránek do vyhledávače s předvolenými kategoriemi.
Výsledek webového rozcestníku si můžete prohlédnout zde.
Struktura webového rozcestníku
Jednotlivé kategorie rozcestníku budou vypisovány do úvodní tabulky s názvem, popisem a počtem uložených stránek v něm. U každého zařazeného odkazu v rozcestníku bude název, popis a počet HITů (klepnutí na odkaz). V administrační části budete moci přidávat a editovat kategorie a editovat registrované odkazy. Vše přitom bude zabezpečeno heslem, které musíte zadat v níže uvedeném konfiguračním souboru.
Struktura souborů, které budeme používat:
admin.php – skript pro administraci rozcestníku.
config.php – skript, v němž je uloženo veškeré hlavní nastavení.
count.php – díky tomuto skriptu budete vědět, kolik návštěvníků odešlo na danou stránku.
install.php – instalační skript, který pohodlně vytvoří mySQL tabulky.
links.php – zde se budou zobrazovat odkazy v rozcestníku pro jednotlivé kategorie.
pridej.php – zde budete přidávat odkazy.
Config.php
<?php $server = ‚localhost‘; // výchozí jméno hosta databáze "localhost" $dbname = ‚databaze‘; // jméno databáze $dbuser = ‚uzivatel‘; // uživatel databáze $dbpass = ‚heslo‘; // heslo databáze |
|
Právě jste nastavili spojení s databází MySQL. Proměnná $server je jméno databázového serveru, který vám sdělí správce serveru. Tento název bývá nejčastěji "localhost", "default" nebo IP adresa serveru, na kterém MySQL běží. Proměnná $dbuser udává uživatelské jméno, které vám bylo přiděleno pro vstup do databáze. Proměnná $dbpass je heslo pro vstup do databáze a $dbname je jméno databáze, kterou vám přidělil správce serveru. Kdybyste některou z položek nevěděli, požádejte správce serveru a on vám ji určitě rád sdělí.
// hlavní nastavení rozcestníku $adminpass = ‚moje_heslo‘; $heading = ‚Rocestnik‘; $homename = ‚Interval‘; $home_url = ‚http://www.interval.cz/‘; |
|
Proměnná $adminpass je heslo pro administrační část, $heading udává jméno rozcestníku. Proměnná $homename obsahuje jméno domovské stránky a $home_url její URL adresu.
// nastavení barev $bgcolor = ‚#FFFFFF‘; // pozadí $text = ‚#000000‘; // barva textu $link = ‚#0088FF‘; // barva linků $alink = ‚#FFFFFF‘; // aktivní link $vlink = ‚#0088FF‘; // navštívený link $hlink = ‚#FFDD00‘; // link $topbarcolour = ‚#0088FF‘; // barva vrchního řádku tabulky $topbartext = ‚#FFFFFF‘; // barva textu ve vrchním řádku ?> |
|
Výše jsou uvedené proměnné k barvám, myslím, že zde není potřeba nic popisovat, jelikož u proměnných máte popisky, které jsou dostačující.
Pridej.php
<? require("config.php"); ?> <html> <head> <title><? echo „$heading“; ?> – Přidání linku</title> <style> A,P,TD,TH {font-family: Verdana,Helvetica,Arial; font-size: 11px;} A:HOVER {color: <? echo „$hlink“; ?>;} </style> </head> <body bgcolor=“<? echo „$bgcolor“; ?>“ text=“<? echo „$text“; ?>“ link=“<? echo „$link“; ?>“ vlink=“<? echo „$vlink“; ?>“ alink=“<? echo „$alink“; ?>“> <p><b><? echo „$heading“; ?> – Přidání odkazu</b><br><hr></p> |
|
Takhle vypadá „hlavička“ stránky, v níž se načtou proměnné z konfiguračního souboru.
<?php if($a) { if($stranky && $odkaz && $kategorie && $popis) { $stranky=str_replace(„<„,“<“,$stranky); $stranky=str_replace(„>“,“>“,$stranky); $odkaz=str_replace(„<„,“<“,$odkaz); $odkaz=str_replace(„>“,“>“,$odkaz); $popis=str_replace(„<„,“<“,$popis); $popis=str_replace(„>“,“>“,$popis); // tímto zrušíte uvozovky, tudíž nepůjdou zadávat HTML tagy.
// konexe do databáze : $conn=mysql_connect($server,$dbuser,$dbpass); $c="select count(*) from odkazy“; $get=mysql_db_query($dbname,$c,$conn); $x = mysql_result($get,0); $x++; $q=“INSERT INTO odkazy VALUES(‚$x‘,’$kategorie‘,’$stranky‘,’$odkaz‘,’$popis‘,’0′)“; $r=mysql_db_query($dbname,$q,$conn); ?> <p>Link byl úspěšně přidán, děkujeme !</p> <?php } else { echo „<p>Nebyly zadány všechny požadavky.</p>“; } |
|
Uvedená část přidává do databáze dané stránky. Funkce str_replace jednoduše řečeno nahradí "prvek" v prvních uvozovkách tím, co je v uvozovkách druhých a pokračuje dále. Jestliže budou zadaná všechna pole, zápis do databáze bude proveden, jestliže ne, provede se else.
} else { ?> <p> <form action=“pridej.php“ method=“POST“> <table cellspacing=“0″ cellpadding=“3″ border=“1″ width=“80%“ align=“center“> <th colspan=“2″ bgcolor=“<? echo „$topbarcolour“; ?>“> <font color=“<? echo „$topbartext“; ?>“>Přidání odkazu</font> </th> <tr> <td>Jméno stánek</td> <td><input size=“30″ name=“stranky“ maxlength=“30″></td> </tr> <tr> <td>URL stránek</td> <td><input size="30" name="odkaz" value="http://" maxlength="50"></td> </tr> <tr> <td>Kategorie</td> <td> <?php // konexe do databáze : $conn=mysql_connect($server,$dbuser,$dbpass); $q="select * from odkazkat"; $r=mysql_db_query($dbname,$q,$conn); while($row=mysql_fetch_array($r)) { echo „<input type=\"radio\" name=\"kategorie\" value=\"$row[uid]\">$row[hlavicka] „; } // dostaneme na výběr všechny kategorie // tato možnost by šla nahradit také příkazem <SELECT>, do echa byste pak dali <OPTION> ?> </td></tr> <TR> <td>Popis stránek</td> <td><input size=“30″ name=“popis“ maxlength=“50″></td> </TR> <TR> <td>Přidat</td> <td> <input type=“hidden“ name=“a“ value=“addlink“> <input type=“submit“ value=“Přidat link“></td> </TR></table> </form> </p> <?php } ?> |
|
Takto vypadá formulář pro přidávání odkazů do databáze pro danou kategorii.
<p> <hr> <table cellspacing=“0″ cellpadding=“2″ border=“0″ width=“100%“> <tr> <td align=“left“> <p> [<a href=“<? echo „$home_url“; ?>“><? echo „$homename“; ?></a>] [<a href=“links.php“>Zpět na odkazy</a>] </td> <td align=“right“> <p> <i><? echo date(„D M d, Y H:i:s“) ?></i> </p> </td> </tr> </table> </body> </html> |
|
A nakonec zápatí stránky s datumem ve tvaru např.: "Mon Feb 11, 2002 12:00:00". V dalším díle se podíváme na administrační skript.
Starší komentáře ke článku
Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.