Cafte ludia. Par dni sa rapim nad jednou vecou. Prisposobil som si totiz jedno forum pre moju stranku. Tu je jeho kod:
Kód:
<div class="base_txt">
<?php
// argument pre funkciu zobraz_temy()
$zacni = 5;
// funkcia, ktorá bude vytvára» menu pre fórum
function menu(){
//echo " <div class=\"css_menu\">";
echo " <div class=\"bunka\">\n";
echo " <a href=\"index.php?action=forum&tema\" title=\"Vytvorenie novej témy\">Vytvorenie novej témy</a>\n";
echo " </div>\n";
//echo " </div>\n";
}
// funkcia, ktorá opraví zápis do databázy
function oprav($data){
global $con;
if(ini_get('magic_quotes_gpc')){
$data = stripslashes($data);
}
return mysql_real_escape_string($data, $con);
}
// funkcia pre vytvorenie témy
function vytvor_temu(){
$error = NULL;
if(isset($_POST[odoslat])){
if(empty($_POST[tema])){
$tema = FALSE;
$error .= "Nezadali ste meno témy!<br />\n";
} else {
$tema = oprav(htmlspecialchars($_POST[tema]));
}
if(empty($_POST[autor])){
$autor = FALSE;
$error .= "Nezadali ste autora témy!<br />\n";
} else {
$autor = oprav(htmlspecialchars($_POST[autor]));
}
if(empty($_POST[email])){
$email = "@";
} else {
$email = oprav(htmlspecialchars($_POST[email]));
}
if(empty($_POST[obsah])){
$obsah = FALSE;
$error .= "Nezadali ste obsah témy!<br />\n";
} else {
$obsah = oprav(nl2br(htmlspecialchars($_POST[obsah])));
}
if($tema && $autor && $email && $obsah){
$ip = $_SERVER[REMOTE_ADDR];
mysql_query("INSERT INTO temy(nadpis,obsah,autor,email,datum,uprava,ip) VALUES('$tema','$obsah','$autor','$email',NOW(),NOW(),'$ip')");
} else {
echo $error;
}
}
echo "<h2><a href=\"index.php?action=forum\" title=\"Vráti» sa na obsah fóra\">Fórum</a> -> Vytvorenie novej témy</h2>\n";
menu(); // volanie funkcie pre menu
echo "<form action=\"index.php?action=forum&tema\" method=\"post\">\n";
echo "<fieldset><legend>Vytvorenie novej témy</legend>\n";
echo "Názov témy<br /><input class='form' name=\"tema\" type=\"text\" /><br />\n";
echo "Autor<br /><input class='form' name=\"autor\" type=\"text\" /><br />\n";
echo "Email<br /><input class='form' name=\"email\" type=\"text\" value=\"@\" /><br />\n";
echo "Obsah témy:<br /><textarea class='form' name=\"obsah\" rows=\"7\" cols=\"60\"></textarea><br /><br />\n";
echo "<input class='form2' name=\"odoslat\" type=\"submit\" value=\"Odoslať\" />\n";
echo "<input class='form2' type=\"reset\" value=\"Reset\" />\n";
echo "</fieldset>\n";
echo "</form>\n";
}
// funkcia na výpis tém
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";
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=\"index.php?action=forum&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=\"bunka\">\n";
echo "<strong><a href=\"index.php?action=forum&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=\"index.php?action=forum&strana=$cislo&zobrazit=$zacni\" title=\"$cislo\">$cislo</a> \n";
}
}
// funkcia pre zobrazenie témy
function zobraz_temu($id){
$sql = mysql_query("SELECT * FROM temy WHERE id_temy='$id' LIMIT 1");
while($stlpec = mysql_fetch_object($sql)){
$id_temy = $stlpec->id_temy;
$nadpis = $stlpec->nadpis;
$obsah = $stlpec->obsah;
$autor = $stlpec->autor;
$email = $stlpec->email;
$email = Str_Replace("@"," (at) ",$email);
$datum = $stlpec->datum;
$ip = $stlpec->ip;
echo "<h2><a href=\"index.php?action=forum\" title=\"Vráti» sa na obsah fóra\">Fórum</a> -> $nadpis</h2>\n";
menu(); // volanie funkcie pre menu
echo "<div class=\"tema\">\n";
echo "<strong><a href=\"index.php?action=forum&id=$id_temy\" title=\"\">$nadpis</a></strong><br />\n";
echo "<small>[ Dátum:$datum | Autor:$autor | Email:$email | IP:$ip ]</small><br />\n";
echo "<div class=\"tema_obsah\">$obsah\n";
echo "</div></div>\n";
}
mysql_free_result($sql);
$sql = mysql_query("SELECT obsah,autor,email,datum,ip FROM prispevky WHERE k_teme='$id'");
while($zaznam = mysql_fetch_object($sql)){
$obsah = $zaznam->obsah;
$autor = $zaznam->autor;
$email = $zaznam->email;
$email = Str_Replace("@"," (at) ",$email);
$datum = $zaznam->datum;
$ip = $zaznam->ip;
echo "<div class=\"tema\">\n";
echo "<small>[ Dátum:$datum | Autor:$autor | Email:$email | IP:$ip ]</small><br />\n";
echo "<div class=\"tema_obsah\">$obsah\n";
echo "</div></div>\n";
}
mysql_free_result($sql);
if(isset($_POST[odoslat])){
if(empty($_POST[meno])){
$meno = FALSE;
} else {
$meno = oprav(htmlspecialchars($_POST[meno]));
}
if(empty($_POST[email])){
$email = FALSE;
} else {
$email = oprav(htmlspecialchars($_POST[email]));
}
if(empty($_POST[obsah])){
$obsah = FALSE;
} else {
$obsah = oprav(nl2br(htmlspecialchars($_POST[obsah])));
}
if($meno && $email && $obsah){
$ip = $_SERVER[REMOTE_ADDR];
// vloľenie príspevku do k danej téme
mysql_query("INSERT INTO prispevky(obsah,autor,email,datum,k_teme,ip) VALUES('$obsah','$meno','$email',NOW(),'$id','$ip')");
// úprava dátumu v téme kam sa odosiela príspevok na aktuálny
mysql_query("UPDATE temy SET uprava=NOW() WHERE id_temy='$id'");
} else {
die("Vsetky polia musia byt vyplnene!<a href=\"javascript:history.back()\">Navrat k teme</a><br />\n");
}
}
echo "<form action=\"index.php?action=forum&id=$id\" method=\"post\">\n";
echo "<fieldset>\n";
echo "Meno:<br /><input class='form' name=\"meno\" type=\"text\" /><br />\n";
echo "Email:<br /><input class='form' name=\"email\" type=\"text\" value=\"@\" /><br />\n";
echo "Obsah príspevku:<br /><textarea class='form' name=\"obsah\" rows=\"7\" cols=\"60\"></textarea><br /><br />\n";
echo "<input class='form2' name=\"odoslat\" type=\"submit\" value=\"Odoslať príspevok\" />\n";
echo "</fieldset></form>\n";
}
if(isset($_GET['id'])){
zobraz_temu($_GET['id']);
} elseif(isset($_GET['tema']))
{
vytvor_temu();
} else
{
zobraz_temy($zacni);
}
mysql_close();
?>
</div>
Seecko funguje jak ma. Na testovacom serveri to slape rychlo a pekne. Bohuzial, ked som to dal na ostry hosting, sript mrzne. Funguje, ale az tak s dvojminutovym oneskorenim.
Zdvoraznujem ze je to ten isty kod na oboch.
Netusite v com by mohol byt pes zakopany? To forum fakt potrebujem...