Jednoduchá kniha návštěv bez SQL (2) - ukázka zdrojového kódu zdrojový kód

<-- kniha.php -->

<html>
<head>
<LINK href="styl.css" rel="stylesheet" type="text/css">
<title>Kniha návštev</title>
<meta http-equiv="Content-Language" content="cs">
<meta http-equiv="cache-control" content="no-cache">
<SCRIPT LANGUAGE="JavaScript"><!--
function zkontroluj(formular)
{

if (formular.jmeno.value=="")
{
alert("Vaše jméno (přezdívku) musíte vyplnit!");
formular.jmeno.focus();
return false;
}
else if (formular.email.value=="")
{
alert("Adresu elektronické pošty musíte vyplnit!");
formular.email.focus();
return false;
}
else if (formular.zprava.value=="")
{
alert("Text zprávy musíte vyplnit!");
formular.zprava.focus();
return false;
}
else if (window.RegExp)
{
re = new RegExp("^[^.]+(\.[^.]+)*@([^.]+[.])+[a-z]{2,3}$");
if (!re.test(formular.email.value))
{
alert("Zadaná adresa není správnou adresou elektronické pošty!");
formular.email.focus();
return false;
}
}
else
return true;
}
// -->
</SCRIPT>
</head>

<body>
<table width="50%" align="center">
<tr><td width="100%" class=nadpis>
<center>Kniha hostů</center>
<br>
<table border="0" cellspacing="0" cellpadding="0" align="center">
<form action="insert.php3" method="post" onSubmit="return zkontroluj(this)">
<tr><td width=120 class=povinne>
Jméno:
</td><td>
<input type="text" name="jmeno" size="30" maxlength="60" class="inputbook">
</td></tr>
<tr><td width=120 class=povinne>
E-mail:
</td><td>
<input type="text" name="email" value="@" size="30" maxlength="60" class="inputbook">
</td></tr>
<tr><td width=120 class=nepovinne>
Web (i s http://):
</td><td>
<input type="text" name="web" value="http://" size="30" maxlength="60" class="inputbook">
<input type="hidden" name="odeslano" value="ano">
</td></tr>
<tr><td valign=top width=120 class=povinne>
Text zprávy:
</td><td>
<textarea cols="45" rows="10" class=inputbook name="zprava"></textarea>
</td></tr>
<tr><td width=120>&nbsp;</td><td>
<center><input type="submit" class=bluebutton value="Odeslat">&nbsp;&nbsp;&nbsp;<input type="Reset" class=bluebutton value="Vymazat"></center>
</form></td></tr></table>


<hr color="#00008B">
</table>


<?
function Odkaz()
{
if (
File_Exists ("book.dat")):
echo 
"<center><font class=cas>Zobrazit příspevky:<br><br>";

$prispevek File("book.dat"); //načte obsah souboru do pole
$strana Ceil(Count($prispevek)/20); //vypocita kolik zaberou příspěvky stran (po 20)

for ($x=1;$x<=$strana;$x++): //zobrazí tolik odkazů kolik je stran
echo "<a href=kniha.php?idprispevek=$x>" . ($x*20-19) . "-" $x*20 "</a>&nbsp;&nbsp;&nbsp";//do každého odkazu přidá číslo strany a jaké příspěvky budou zobrazovány
endfor;
echo 
"</center>";
endif;
}
Odkaz();
?>
<hr color="#00008B">
<?
if (File_Exists ("book.dat")): //existuje soubor book.dat
if (!IsSet($idprispevek)) $idprispevek=1//je zinicializována proměnná id, pokud ne přiřadí standartní jedničku
$pocatek $idprispevek*20-20//podle id spočítá od kolikátého
$konec $idprispevek*20-1//... do kolikáté příspěvku se bude zobrazovat

$prispevek File("book.dat"); //načte do pole obsah book.dat
for ($i=$pocatek;$i<=$konec;$i++):
echo 
$prispevek[$i]; //vypíše příspěvky mezi $prispevek a $konec
endfor;
endif;

Odkaz();
?>
<hr color="#00008B">
</td>
</tr>
</table>





<-- insert.php -->

<?
//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($zprava01500); //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("&lt;b&gt;""<b>"$celek);
$zprava Str_Replace("&lt;/b&gt;""</b>"$zprava);

$zprava Str_Replace("&lt;i&gt;""<i>"$zprava);
$zprava Str_Replace("&lt;/i&gt;""</i>"$zprava);

$zprava Str_Replace("&lt;u&gt;""<u>"$zprava);
$zprava Str_Replace("&lt;/u&gt;""</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 ($fpFileSize("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
?>
<html><head>
<script language="javascript">
<!--
window.open("namet.php","okno","width=100, height=100 menubar=no");
//-->
</script>
<META HTTP-EQUIV="Refresh" CONTENT="0; URL=kniha.php">
</head>
</html>

Vložil/Poslal/Autor: Admin
Funkčnost: běží na straně serveru, nemělo by záležet na typu prohlížeče
zavřít okno | jít na hlavní stránku JakNaWeb.com