Ovládněte tvorbu webu!
S námi to zvládne opravdu každý.
Upozornění: Pokud máte možnost používat i MySQL byla by hloupost používat toto jednoduché fórum.
PHP & MySQL diskuse: miniBB, phpBB, punBB.
Možná jste si někdy chtěli chtěli udělat fórum, ale nevěděli jste jak na to, popíšu zde fórum, které jsem si vytvořil. Navazuji na návod jak si udělat jednoduché fórum (tvorba velmi jednoduché diskuse).
Jednou jsem potřeboval vytvořit fórum bez použití databáze mysql, docela dlouho jsem na tom dělal a nakonec to ani nikde nepoužil. Možná se to bude někomu hodit, proto popíšu co všechno tohle fórum umí.
Podívejte se na ukázku a fórum otestujte.
Pro správný běh tohoto fóra je zapotřebí hosting s podporou php (mysql být nemusí).
Popř. můžete ještě něco upravit (html, css, php).
Nejprve vše nahrajte přes ftp třeba pomocí Total comanderu pak otevřete složku data a označte celý její obsah (složky i soubory) pak klikněte na Soubory » Změna atributů... nastavte na 777 přesně jak je na obrázku.
A fórum by mělo být funkční.
Zdrojáky nepotřebujete vše můžete stáhnout v zipu, jsou tu proto pokud vás pouze zajímá jak něco funguje.
Jsou tu jen zajímavé poznámky pro pochopení a označené kousky kódu které je zapotřebí změnit a to je:
<?
Header ("Pragma: no-cache");
Header ("Cache-Control: no-cache");
Header ("Expires: ".GMDate("D, d M Y H:i:s")."GTM");
@$strana = $_GET["strana"];
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Language" content="cs">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
<meta name="description" content="Diskuse - Diskusní fórum (c) 2007 Roman Žďárek.">
<link rel="stylesheet" type="text/css" media="all" href="style.css">
<link rel="shortcut icon" href="favicon.ico">
<title>Diskusní fórum</title>
</head>
<body>
<h1>Diskusní fórum</h1>
<p><a href="./">Diskuse</a> » Diskusní fórum</p>
<table class="diskuse-odkazy">
<tr><th width="60%">Název téma:</th><th width="20%">Autor:</th><th width="20%">Založeno:</th></tr>
<?
$heslo_spam = "fwzd";
@$strana = $_GET["strana"];
$soubor="data/diskuse.txt";
if ($strana!="all"){
//0 9
//10 19
//20 29
//30 39
//1*10-1
if ($strana=="")$strana=1;
$i1 = $strana*10-10;
$i2 = $strana*10-1;
$radek_souboru = file($soubor);//načte celý soubor do pole, každý prvek pole
obsahuje jednu řádku souboru
for ($i=$i1;$i<=$i2;$i++) echo @$radek_souboru[$i];//dělej dokud i<=19 na
zacatku je i=0 postupne se zvetsuje o 1 ($i++)
}
//echo @$radek_souboru[1]; vypíse druhý řádek
//echo @$radek_souboru[2]; vypíse 3 řádek.....
elseif ($strana=="all"){
readfile ($soubor);
}
?>
<tr><th colspan="3"><?
$radek_souboru = file($soubor);
$pocet_radku = count($radek_souboru);//kolik má soubor řádků
$pocet_radku_odkazu = ceil(count($radek_souboru)/10);//děleno 10
for ($x=1; $x <= $pocet_radku_odkazu; $x++) echo "<a href=\"./?strana=$x\">$x</a>
";
?></th></tr>
</table>
<h2>Založení nového téma</h2>
<ul>
<li>Než položíte dotaz prohledejte diskusi.</li>
<li>Vše co začína http:// bude odkaz.</li>
<li>Nepište prosím bez hacku a carek.</li>
<li>Spam, nebo jiné nevhodné příspěvky budou mazány.</li>
</ul>
<form action="pridej.php?vytvarim_tema=ok" method="post">
<table class="diskuse-formular">
<tr><th width="25%">*Název téma:</th><td><input type="text" name="nove_tema"
size="30" maxlength="50"></td></tr>
<tr><th width="25%">*Jméno:</th><td><input type="text" name="jmeno" size="30"
maxlength="30"></td></tr>
<tr><th width="25%">E-mail:</th><td><input type="text" name="email" size="30"
maxlength="50"> [nepovinné]</td></tr>
<tr><th width="25%">Web:</th><td><input value="http://" type="text" name="web"
size="30" maxlength="50"> [nepovinné]</td></tr>
<tr><th width="25%">*Kontrolní kód:</th><td><input type="text" name="anti_spam"
size="30" maxlength="50"> Opište: <b><? echo $heslo_spam ?></b></td></tr>
<tr><th width="25%">*Text zprávy:</th><td><textarea rows="4" cols="40" name="zprava"></textarea></td></tr>
<tr><td colspan="2"><input class="sender" type="submit" value="Odeslat"></td></tr>
</table>
<input type="hidden" name="sekce" value="<? echo "$soubor" ?>">
<input type="hidden" name="c" value="<? echo(Time()); ?>">
</form>
<p class="pata">Copyright (c) 2007 <a href="http://www.zdarek.com/" title="Design
& Kód vytvořil Roman Žďárek">Roman Žďárek</a> - <a href="./rss/" title="RSS pro
vaši čtečku">RSS Zdroj</a> - <a href="editace.php" title="Nástroj Edit - pouze
pro admina" rel="nofollow">Edit</a></p>
</body>
</html>
Zde je potřeba upravit RSS (pouze změna adresy) je to tam v kódu výrazně vyznačeno.
<?
Header ("Pragma: no-cache");
Header ("Cache-Control: no-cache");
Header ("Expires: ".GMDate("D, d M Y H:i:s")."GTM");
$mujEmail = "roman@zdarek.com";
$heslo_spam = "fwzd";
// zavináče potože... ...neinicalizované proměné pokud se vše nevyplní
@$vytvarim_tema = $_GET["vytvarim_tema"];
@$c = $_POST["c"];
@$nove_tema = $_POST["nove_tema"];
@$sekce = $_POST["sekce"];
@$jmeno = $_POST["jmeno"];
@$email = $_POST["email"];
@$web = $_POST["web"];
@$zprava = $_POST["zprava"];
@$anti_spam = $_POST["anti_spam"];
$soubor = "./data/diskuse/$c.inc";
$soubor_nazev_tema = "./data/nazev-tema/$c.inc";
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Language" content="cs">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
<link rel="stylesheet" type="text/css" media="all" href="style.css">
<?
if($vytvarim_tema=="ok")
{
if ($anti_spam==$heslo_spam and $jmeno!="" and $zprava!="" and $nove_tema!="")echo
"<meta http-equiv=\"refresh\" content=\"1;url=t.php?c=$c\">";
}
else
{
if ($anti_spam==$heslo_spam and $jmeno!="" and $zprava!="")echo "<meta http-equiv=\"refresh\"
content=\"1;url=t.php?c=$c\">";
}
?>
<link rel="shortcut icon" href="favicon.ico">
<title>Diskuse » Odesílám zprávu</title>
</head>
<body>
<?
//Varování pokud se nevyplní vše co je potřeba
$varovani ="<h1>Zpráva nebyla odeslána</h1><p style=\"color:red;\">Nezadal(a)
jste všechny povinné údaje, nebo jste zadal(a) špatný kontrolní kód <b>zpráva
bohužel nemůže být zapsána.</b></p>";
if($vytvarim_tema=="ok")
{
if ($anti_spam!=$heslo_spam or $jmeno=="" or $zprava=="" or $nove_tema=="") echo
"$varovani";
else echo "<h1>Zpráva odeslána - probíhá přesměrování</h1><p>Pokud neproběhlo
přesměrování přejděte na: <a href=\"t.php?c=$c\">diskuse - téma: $c</a><p>";
}
else
{
if ($anti_spam!=$heslo_spam or $jmeno=="" or $zprava=="") echo "$varovani";
else echo "<h1>Zpráva odeslána - probíhá přesměrování</h1><p>Pokud neproběhlo
přesměrování přejděte na: <a href=\"t.php?c=$c\">diskuse - téma: $c</a><p>";
}
///////////////////////////////////////////////////////////////////////////
/////////////////////////// přidání zprávy do aktuální diskuse ////////////
///////////////////////////////////////////////////////////////////////////
$jmeno=HTMLSpecialChars($jmeno); //převede některé znaky na entity
$email=HTMLSpecialChars($email);
$web=HTMLSpecialChars($web);
$zprava=HTMLSpecialChars($zprava);
$jmeno=stripslashes($jmeno); //odstraní lomítka
$email=stripslashes($email);
$web=stripslashes($web);
$zprava=stripslashes($zprava);
$zprava = str_replace("\n"," <br> ", $zprava); //nové řádky nahradí <br>
$zprava = substr($zprava, 0, 5000);//zpráva bude mít maximálně 5000 znaků pomocí
substr
$zprava = preg_replace_callback('~((https?|ftp)://\S{4,40})\S*~',
create_function(
'$match',
'$possiblyLastEntity = strrpos($match[1], "&");
$match[1] = $possiblyLastEntity === false ? $match[1] : substr($match[1], 0, $possiblyLastEntity);
return " <a href=\"$match[0]\" rel=\"nofollow\">$match[1]" . ($match[0] != $match[1]
? "..." : "") . "</a>";'
),
$zprava);
///////////////////////
$email_celek=" | <a href=\"mailto:$email\">$email</a>";
$web_celek=" | <a href=\"$web\">$web</a>";
$timeDate = date('j.n.Y <b>v</b> H:i');
@$ip = (gethostbyname($REMOTE_ADDR));
if ($web=="http://" or $web==""){$web_celek="";} //pokud se nevyplní nic se
nevypíše
if ($email==""){$email_celek="";} // -||-
$celek="<p class=\"header\"><strong>$jmeno</strong> Nám poslal(a) zprávu
<b>dne</b> $timeDate $email_celek $web_celek [$ip]</p><p>$zprava</p>";
$celek="$celek \n";//kazda zprava na nový řádek
if($vytvarim_tema=="ok")
{
if ($anti_spam==$heslo_spam and $jmeno!="" and $zprava!="" and $nove_tema!="") {
$soubor_open = fopen ($soubor, "a"); //otevře soubor pro doplňování
fwrite ($soubor_open, $celek); //zapíše zprávu
fclose ($soubor_open); //zavře soubor
@chmod($soubor, 0766);//nastaví práva souboru
}
}
else{
if ($anti_spam==$heslo_spam and $jmeno!="" and $zprava!="") {
$soubor_open = fopen ($soubor, "a"); //otevře soubor pro doplňování
fwrite ($soubor_open, $celek); //zapíše zprávu
fclose ($soubor_open); //zavře soubor
@chmod($soubor, 0766);//nastaví práva souboru
}
}
/////////////////////////////////////////////////////////////////////////////
//zapíše odkaz který vytvoří tuto diskusi pomocí parametru v adrese//////////
/////////////////////////////////////////////////////////////////////////////
$nove_tema=strip_tags($nove_tema);
$nove_tema=stripslashes($nove_tema);
$nove_tema = htmlspecialchars($nove_tema);//převede některé znaky na entity
$c=strip_tags($c);
$c=stripslashes($c);
$c = htmlspecialchars($c);
$jmeno=strip_tags($jmeno);
$jmeno=stripslashes($jmeno);
$jmeno = htmlspecialchars($jmeno);
$time_Date = date('j.n.Y v H:i');
if ($anti_spam==$heslo_spam and $jmeno!="" and $zprava!="" and $nove_tema!=""){
$fopen_odkaz = fopen ("$sekce", 'r');//otevře ke čtení
$odkazy_na_diskuse = fread ($fopen_odkaz, '1000000("$sekce")');//celý soubor se
uloží do $odkazy_na_diskuse
$radek_tabulky='<tr><td width="60%"><a href="t.php?c='.$c.'">'.$nove_tema.'</a></td><td>'.$jmeno.'</td><td>'.$time_Date.'</td></tr>';
$radek_tabulky="$radek_tabulky \n".$odkazy_na_diskuse;
fclose ($fopen_odkaz);
$fopen_odkaz = fopen ($sekce, "w");//otevřu pro zápis pokud soubor existuje bude
smazán!
fwrite ($fopen_odkaz, $radek_tabulky);
fclose ($fopen_odkaz);//fp3
chmod($sekce, 0766);
}
//////////////////////////////////////////////////////////////////
////////////////////////uloží název téma//////////////////////////
//////////////////////////////////////////////////////////////////
$nove_tema=strip_tags($nove_tema);
$nove_tema=stripslashes($nove_tema);
$nove_tema = htmlspecialchars($nove_tema);
if ($anti_spam==$heslo_spam and $jmeno!="" and $zprava!="" and $nove_tema!=""){
$fopen_nazev_tema = fopen ($soubor_nazev_tema, "w");//otevřu pro zápis pokud
soubor existuje bude smazán!
fwrite ($fopen_nazev_tema, $nove_tema);
fclose ($fopen_nazev_tema);
chmod($soubor_nazev_tema, 0766);
}
//////////////////////////////////////////////////////////////////
////////////////////////uloží DATA RSS//////////////////////////
//////////////////////////////////////////////////////////////////
$rss_file="data/rss.txt";
$nove_tema=strip_tags($nove_tema);
$nove_tema=stripslashes($nove_tema);
$nove_tema = htmlspecialchars($nove_tema);
$c=strip_tags($c);
$c=stripslashes($c);
$c = htmlspecialchars($c);
if ($anti_spam==$heslo_spam and $jmeno!="" and $zprava!="" and $nove_tema!=""){
$fopen_rss = fopen ("$rss_file", 'r');//otevře ke čtení
$rss_data = fread ($fopen_rss, '1000000("$rss_file")');//celý soubor se uloží do
$rss_data
$rss_zapis="<item><title>$nove_tema</title><link>http://diskuse.zdarek.com/t.php?c=$c</link><description>Diskutujeme
na téma: $nove_tema</description></item>
$rss_data";
fclose ($fopen_rss);
$fopen_rss = fopen ($rss_file, "w");//otevřu pro zápis pokud soubor existuje
bude smazán! //fp5
fwrite ($fopen_rss, $rss_zapis);
fclose ($fopen_rss);
chmod($rss_file, 0766);
}
?>
<p class="pata">Copyright (c) 2007 <a href="http://www.zdarek.com/"
title="Design & Kód vytvořil Roman Žďárek">Roman Žďárek</a> - <a href="./rss/"
title="RSS pro vaši čtečku">RSS Zdroj</a> - <a href="editace.php" title="Nástroj
Edit - pouze pro admina" rel="nofollow">Edit</a></p>
</body>
</html>
<?
Header ("Pragma: no-cache");
Header ("Cache-Control: no-cache");
Header ("Expires: ".GMDate("D, d M Y H:i:s")."GTM");
$heslo_spam = "fwzd";
$c = $_GET["c"];
$soubor = "./data/diskuse/$c.inc";
$soubor_nazev_tema = "./data/nazev-tema/$c.inc";
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Language" content="cs">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
<meta content="Rneco - Roman Žďárek" name="author">
<meta name="description" content="<? require "$soubor_nazev_tema"; ?>">
<link rel="stylesheet" type="text/css" media="all" href="style.css">
<link rel="shortcut icon" href="favicon.ico">
<title>Diskuse » <? require "$soubor_nazev_tema"; ?></title>
</head>
<body>
<h1><? require "$soubor_nazev_tema"; ?></h1>
<p><a href=".">Diskuse</a> » <? require "$soubor_nazev_tema"; ?></p>
<? @include ("$soubor"); ?>
<h2>Přidání nové zprávy</h2>
<ul>
<li>Nepište prosím bez hacku a carek.</li>
<li>Spam, nebo jiné nevhodné příspěvky budou mazány.</li>
<li>Vše co začína http:// bude odkaz.</li>
</ul>
<form action="pridej.php" method="post">
<table class="diskuse-formular">
<tr><th width="25%">*Jméno:</th><td><input type="text" name="jmeno" size="30"
maxlength="30"></td></tr>
<tr><th width="25%">E-mail:</th><td><input type="text" name="email" size="30"
maxlength="50"> [nepovinné]</td></tr>
<tr><th width="25%">Web:</th><td><input value="http://" type="text" name="web"
size="30" maxlength="50"> [nepovinné]</td></tr>
<tr><th width="25%">*Kontrolní kód:</th><td><input type="text" name="anti_spam"
size="30" maxlength="50"> Opište: <b><? echo $heslo_spam ?></b></td></tr>
<tr><th width="25%">*Text zprávy:</th><td><textarea rows="4" cols="40" name="zprava"></textarea></td></tr>
<tr><td colspan="2"><input class="sender" type="submit" value="Odeslat"></td></tr>
</table>
<input type="hidden" name="c" value="<? echo "$c"; ?>">
</form>
<p>Počet zobrazení <? include "pocitadlo.php"; $pocet_pristupu="data/pocitadlo/$c.inc";
include "$pocet_pristupu"; ?>.</p>
<p class="pata">Copyright (c) 2007 <a href="http://www.zdarek.com/" title="Design
& Kód vytvořil Roman Žďárek">Roman Žďárek</a> - <a href="./rss/" title="RSS pro
vaši čtečku">RSS Zdroj</a> - <a href="editace.php?c=<?echo $c?>" title="Nástroj
Edit - pouze pro admina" rel="nofollow">Edit</a></p>
</body>
</html>
<?
$file_counter = "data/pocitadlo/$c.inc"; //soubor do kterého se to ukládá
if(File_Exists($file_counter))//pokud nebude soubor tak ho php vytvoří
{
$open_file = fopen ($file_counter,'r+'); //otevře soubor pro čtení a zápis
$pocet = fread ($open_file, '100("file_counter")') + 1; //přičte k $open_file 1
rewind ($open_file); //nastavení na začátek souboru
}
else
{
$open_file = fopen ($file_counter,'w');//otevře soubor pro...zápis pokud sobor
existuje bude smazán
$pocet = "1";//počet nastavíme na 1
}
fwrite ($open_file, $pocet); //zapíše do souboru aktuální počet přístupů
fclose ($open_file); //zavře soubor
?>
Zde si nezapomeňte změnit heslo.
<?
Header ("Pragma: no-cache");
Header ("Cache-Control: no-cache");
Header ("Expires: ".GMDate("D, d M Y H:i:s")."GTM");
@$c = $_GET["c"];
//pro editaci souboru s daty aktuální diskuse
@$editovany_soubor = $_POST["editovany_soubor"];
@$heslo = $_POST["heslo"];
@$soubor_diskuse = $_POST["soubor_diskuse"];
//pro editaci souboru s názvem diskuse
@$soubor_nazev_tema = $_POST["soubor_nazev_tema"];
@$nazev_tema = $_POST["nazev_tema"];
@$editovany_soubor_nazev_tema = $_POST["editovany_soubor_nazev_tema"];
@$heslo_nazev_tema = $_POST["heslo_nazev_tema"];
//pro editaci souboru s odkazy které "vytvoří" diskusi t.php?c=1170614084
@$soubor_odkaz = $_POST["soubor_odkaz"];
@$editovany_soubor_odkaz = $_POST["editovany_soubor_odkaz"];
@$heslo_odkaz = $_POST["heslo_odkaz"];
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Language" content="cs">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
<meta name="robots" content="noindex,follow">
<link rel="stylesheet" type="text/css" media="all" href="style.css">
<link rel="shortcut icon" href="favicon.ico">
<title>Edit</title>
<style type="text/css">
input{width:50%};
textarea{width:100%};
</style>
</head>
<body>
<h1>Edit - <a href="./">diskuse</a></h1>
<hr>
<h2>Data diskuse <?echo $c?></h2>
<form action="editace.php" method="post">
<?
$soubor="./data/diskuse/$c.inc";
if ($c=="")$soubor="./data/edit.txt";
?>
<p><textarea name="editovany_soubor" cols="110" rows="20"><? include "$soubor"
?></textarea></p>
<p><input type="text" name="soubor_diskuse" value="<? echo "$soubor" ?>"> :
Soubor kam se to uloží.</p>
<p><input type="password" name="heslo"> : Administrační heslo.</p>
<p><input type="submit" value="Odeslat"></p>
</form>
<?
if (@$soubor_diskuse!="" and $heslo=="4879"){ //provede se pokud není prázdný
soubor a je správné heslo
$editovany_soubor=stripslashes($editovany_soubor);//aby to nepsalo lomítka pred
uvozovky
$soubor = fopen ($soubor_diskuse,'w'); //otevře soubor pokud sobor existuje bude
smazán
fwrite ($soubor, $editovany_soubor);//zapíše zprávu
fclose ($soubor); //zavře soubor
}
?>
<hr>
<h2>Nazev téma diskuse <?echo $c?></h2>
<form action="editace.php" method="post">
<?
$nazev_tema="./data/nazev-tema/$c.inc";
if ($c=="")$nazev_tema="./data/edit-nazev-tema.txt";
?>
<p><input name="editovany_soubor_nazev_tema" value="<? include "$nazev_tema"
?>"></p>
<p><input type="text" name="soubor_nazev_tema" value="<? echo "$nazev_tema" ?>">
: Soubor kam se to uloží.</p>
<p><input type="password" name="heslo_nazev_tema"> : Administrační heslo.</p>
<p><input type="submit" value="Odeslat"></p>
</form>
<?
if (@$soubor_nazev_tema!="" and $heslo_nazev_tema=="2222"){ //provede se pokud
není prázdný soubor a je správné heslo
$editovany_soubor_nazev_tema=stripslashes($editovany_soubor_nazev_tema);//aby to
nepsalo lomítka pred uvozovky
$nazev_tema = fopen ($soubor_nazev_tema,'w'); //otevře soubor pokud sobor
existuje bude smazán
fwrite ($nazev_tema, $editovany_soubor_nazev_tema);//zapíše zprávu
fclose ($nazev_tema); //zavře soubor
}
?>
<hr>
<h2>Odkaz na diskusi <?echo $c?></h2>
<form action="editace.php" method="post">
<?$soubor_odkaz="./data/diskuse.txt";?>
<p><textarea name="editovany_soubor_odkaz" cols="110" rows="20"><? include
"$soubor_odkaz" ?></textarea></p>
<p><input type="text" name="soubor_odkaz" value="<? echo "$soubor_odkaz" ?>"> :
Soubor kam se to uloží.</p>
<p><input type="password" name="heslo_odkaz"> : Administrační heslo.</p>
<p><input type="submit" value="Odeslat"></p>
</form>
<?
if (@$soubor_odkaz!="" and $heslo_odkaz=="2222"){ //provede se pokud není
prázdný soubor a je správné heslo
$editovany_soubor_odkaz=stripslashes($editovany_soubor_odkaz);//aby to nepsalo
lomítka pred uvozovky
$soubor_odkaz = fopen ($soubor_odkaz,'w'); //otevře soubor pokud sobor existuje
bude smazán
fwrite ($soubor_odkaz, $editovany_soubor_odkaz);//zapíše zprávu
fclose ($soubor_odkaz); //zavře soubor
}
?>
</body>
</html>
<? echo "<?xml version=\"1.0\" encoding=\"windows-1250\"?>";?>
<rss version="0.92">
<channel>
<title>Diskuse</title>
<link>http://diskuse.zdarek.com/</link>
<description>Diskusní fórum o tvorbě www stránek.</description>
<language>cs</language>
<managingEditor>roman@zdarek.com</managingEditor>
<webMaster>roman@zdarek.com</webMaster>
<?
$soubor="../data/rss.txt";
$radek_souboru = file($soubor);//načte celý soubor do pole, každý prvek pole
obsahuje jednu řádku souboru
for ($i=0;$i<=19;$i++) echo @$radek_souboru[$i];//19 == zobrazíme 20 řádků(pole)
?>
</channel>
</rss>
V patičce fóra mám odkaz, pokud vám to nevadí nechte ho tam, pokud vadí klidně ho smažte.
Copyright (c) 2004-2008 Amatérská tvorba Webu - Autor: Roman Žďárek - mapa webu - výměna odkazů, odkazy - RSS
PR články :: Půjčky :: Tvorba www stránek :: Webhosting :: Tvorba webových stránek :: Web pohání Webhosting C4