Webový rozcestník v PHP – základ aplikace

29. března 2002

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(„<„,“&lt;“,$stranky);
$stranky=str_replace(„>“,“&gt;“,$stranky);
$odkaz=str_replace(„<„,“&lt;“,$odkaz);
$odkaz=str_replace(„>“,“&gt;“,$odkaz);
$popis=str_replace(„<„,“&lt;“,$popis);
$popis=str_replace(„>“,“&gt;“,$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.

Štítky: Články

Mohlo by vás také zajímat

Nejnovější

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *