Fórum na www

Zdravíme všechny vespolek,

dovolili by jsme se poníženě poprosit, zda by byl někdo tak ochoten a prohlédl si přiložený skript a zprovoznil jej tak, aby bylo možno jej využít na našich webových stránkách www.fcchomutov.wz.cz, neboť stále nám činí problémy...


<?
//odstraneni nebezpecnych znaku
$jmeno = HTMLSpecialChars($jmeno);
$email = HTMLSpecialChars($email);
$web = HTMLSpecialChars($web);

//formatovani prispevku
$jmeno = "<table><tr><td class=jmeno>$jmeno</td></tr>";
$email = "<tr><td class=odkaz><A HREF=mailto:$email>$email</A></td></tr>";
if ($web!="" && $web!="http://"):
$www = "<tr><td class=odkaz><A HREF='$web'>$web</A></td></tr>";
endif;
$cas = "<tr><td class=cas>" . Date("j. " . "m. " . "Y, " . "H:i:s") . "</td></tr>";

$zprava = SubStr($zprava, 0, 1500); //bereme pouze 1500 znaku
$zprava = Trim($zprava); //odstraneni mezer z konce retezce
$zprava = HTMLSpecialChars($zprava); //odstraneni nebezpecnych znaku
$zprava = Str_Replace("n"," <BR> ", $zprava); //nahrazeni koncu radku na tagy <BR>

$znak = 66; //dlouha slova delit po .. znacich
$slovo = Split("[[:blank:]]+", $zprava); //rozdeleni textu na slova
for($y=0;$y<Count($slovo);$y++):
$slovo[$y] = Trim($slovo[$y]); //odstraneni mezer na konci slova
if (Strlen($slovo[$y])<=$znak): //nebudeme delit
if (EregI("^(www..+..{2,3})$", $slovo[$y])): //jedna se odkaz typu www......
$odkaz = EregI_Replace("^(www..+..{2,3})$", "<a href=http://1>1</a> ", $slovo[$y]);
elseif (EregI("^(http://.+..{2,3})$", $slovo[$y]))://jedna se odkaz typu http://.......
$odkaz = EregI_Replace("^(http://.+..{2,3})$", "<a href=1>1</a> ", $slovo[$y]);
else:
$odkaz = $slovo[$y] . " "; //jedna se o normalni slovo
endif;
$celek .= $odkaz; //spojime vsechny slova opet dohromady
else:
$delit = Ceil(StrLen($slovo[$y])/$znak); //delime dlouhe slovo
for($z=0;$z<$delit;$z++):
$cast = Substr($slovo[$y], $z*$znak, $znak);
$celek .= $cast . " - "; //na konec jednotlivych casti pridame pomlcku
endfor;
endif;
endfor;

//povolime tyto tagy <b> <u> <i>
$zprava = Str_Replace("<b>", "<b>", $celek);
$zprava = Str_Replace("</b>", "</b>", $zprava);

$zprava = Str_Replace("<i>", "<i>", $zprava);
$zprava = Str_Replace("</i>", "</i>", $zprava);

$zprava = Str_Replace("<u>", "<u>", $zprava);
$zprava = Str_Replace("</u>", "</u>", $zprava);

$zprava = "<tr><td class=text><br>$zprava</td></tr></table><hr color=#00008B>n";

$write = StripSlashes($jmeno . $email . $www . $cas . $zprava); //odstraneni escape sekvenci

if (File_Exists ("book.dat")): //existuje soubor book.dat
$fp = FOpen ("book.dat", "r"); //otevře soubor book.dat pro čtení
$data = FRead ($fp, FileSize("book.dat")); //přečte data ze souboru a uloží do proměnné "data" - kvůli tomu aby se zobrazoval poslední příspěvek nahoře
FClose($fp); //zavře book.dat
endif;
$fp = FOpen ("book.dat", "w"); //otevře book.dat pro přepis nebo vytvoření
FWrite ($fp, $write.$data); //zápis do souboru book.dat (nejprve aktuální příspěvek, poté předešlý obsah souboru book.dat)
FClose ($fp); //zavře soubor book.dat
?>
<head>
<META HTTP-EQUIV="Refresh" CONTENT="0; URL=kniha.php">
</head>

Za projevenou účast předem děkujeme...
fcchv (fcchomutov.wz.cz)
zprovoznis mi
"aaa"
?

vis, co "aaa" ma delat?
vis, jake chyby a potize "aaa" dela?
Tim padem sem muzes dat i zdrojaky linuxu a nic tim nedocilis.

http://www.volny.cz/peter.mlich/www.htm#msub11
zdroj: PPguest5.txt

jinak chybu zpusobuje
cz.php.net/flock
viz ostatni temata. Soubor neni uzavren a 2 pozadavky na zapis smazou obsah.
a to si mame jeste pracne zjistovat, co na tom nefunguje?
no my to tipujeme na to, ze se obcas smaze obsah souboru book.dat (a pokud ne, tak se to jednou stane). tenhle problem resi spravny pouziti funkce flock, a to jsme tady ve foru uz dvakrat podrobne popisovali - vcera jsme na to davali neokomu odkaz. staci, kdyz budete hledat slova "flock tonik" (bez uvozovek) v sekci php a to v autorovi, nadpisu a textu
Koukám, návštěvní kniha z intervalu, že? ;-)
Taky sem si ji stáhnul, a funguje bez problémů. Rozhodně ti ale doporučím aby sis našel jiný skript.
a) ošetření proti spamu nulové
b) když zadáš přímou adresu souboru insert.php, tak se odešle prázdnej příspěvek. to bys měl ošetřit jako první.
Ale raději doporučuju podívat se po lepším řešení...
Mike: "Koukám, návštěvní kniha z intervalu, že? ;-)"
To už na Intervalu nemají co publikovat, že tam dávají takovýhle zvěrstva? No teda, Intervale FUJ! ;)

BTW: A já si pořád říkal, že už jsem to někde viděl ?! :)