<?
mysql_connect("localhost", "root", ""); // ПОДКЛЮЧЕНИЕ К БАЗЕ ДАННЫХ ?>
<html>
<head>
<title>Гостевая книга</title>
<script language="JavaScript">
function AddTags(tagsCode) //Фу-ия для вставки тегов в сообщения (textarea)
{
var tagsCode;
var newPost;
var oldPost = document.forma.text.value;
newPost = oldPost+tagsCode;
document.forma.text.value=newPost;
document.forma.text.focus();
return;
}
function open_tage() //Фу-ция для открытие окна с допустимыми тегами
{
var OW=window.open(" ", "", " ");
OW.document.write("<HTML>")
OW.document.write("<TITLE> Допустимые теги </TITLE>")
OW.document.write("<BODY>")
OW.document.write("<table border=1><TR bgcolor=#e2e2e2><TH>Обозначение</TD><TH>Результат</TD></TR>")
OW.document.write("<TR><TD>[B]Полужирный текст[/B]</TD><TD><B>Полужирный текст</B></TD></TR>")
OW.document.write("<TR><TD>[I]Курсивный текс[/I]</TD><TD><I>Курсивный текс</I></TD></TR>")
OW.document.write("<TR><TD>[U]Подчеркнутый текст[/U]</TD><TD><U>Подчеркнутый текст</U></TD></TR>")
OW.document.write("<TR><TD>[red]Текст красным цветом[/red]</TD><TD><font color=red>Текст красным цветом</font></TD></TR>")
OW.document.write("<TR><TD>[sup]Верхний индекс[/sup]</TD><TD><sup>Верхний индекс</sup></TD></TR>")
OW.document.write("<TR><TD>[sub]Нижний индекс[/sub]</TD><TD><sub>Нижний индекс</sub></TD></TR></table>");
OW.document.write("</BODY></HTML>")
self.name="main window";
}
</script>
</head>
<!-- Ну, а это, я думаю понятно... Для оформления:) -->
<style type="text/css">
.text{
font-family:Verdana;
font-size:12px;
color:#000099;
width:60%;
}
.text_admina{
font-family:Verdana;
font-size:11px;
color:#000033;
}
.text{
font-family:Verdana;
font-size:13px;
color:#000099;
}
input{
font-family:Verdana;
font-size:12px;
color:#000000;
}
textarea{
font-family:Verdana;
font-size:11px;
color:#000000;
}
</style>
<body>
<H2 align=center><font color="#0000cc">Гостевая книга</font>
<br><font size=3>(Добавление записи)</font></H2>
<?
if(@$submit){ // Если нажата кнопка Добавить, то...
$check_email=!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $email); // Записываем в переменную, функцию для проверки правильности введенного E-mail`а if(trim($name)=='' || trim($email)=='' || $check_email || trim($text)==''){ // Если поля обязательные для заполнения не заполнены, то выводим соответствующие предупреждения echo "<table border=0 width=50% align=center><tr><td><font color=red><b>Во время добавления записи произошли следующие ошибки:</b></font></td></tr><tr><td>";
echo "<li>Вы не ввели свое <b>имя (ник)</b><br>";
}
echo "<li>Вы не ввели свой <b>E-mail</b>";
} else if(!empty($email)){ // Если поле E-mail заполнено, if($check_email) // то проверяем его (чтобы он был введен вида mail@mail.ru)
echo "<li>E-mail введен неверно. (введите e-mail в виде: mail@mail.ru)<br>";
}
echo "<li>Вы не ввели <b>сообщение</b>";
}
echo "<hr color=#000099 width=450 size=1></table>";
}
if(!trim($name)=='' && !trim($email)=='' && !$check_email && !trim($text)==''){ // Если поля обязательные для заполнения заполнены все и E-mail введен правильно, то... $name=strip_tags($name); // убираем HTML и PHP тэги для поля name $email=strip_tags($email); // убираем HTML и PHP тэги для поля email $city=strip_tags($city); // убираем HTML и PHP тэги для поля city $url=strip_tags($url); // убираем HTML и PHP тэги для поля url $text=strip_tags($text); // убираем HTML и PHP тэги для поля text include("str_raplace.php"); // подключаем файл с доступными тегами
$date=date("d.m.y, H:i:s"); // Записываем дату и добавления в переменную $date $answer_admin=""; // Ответ администратора. Сначало делаем пустым
if(trim($city)==''){ $city=""; } // Если Город не указан, то делаем поле city пустым if(trim($url)=='') { $url=""; } // Если Сайт не указан, то делаем поле url пустым... else if(!ereg("^http://(.*)$", $url)) $url = 'http://'.$url; // А Если указан сайт, то проверяем наличия http:// в поле url. Если нет http://, тогда ставим. $sql="INSERT INTO gb VALUES ('$name', '$email', '$city', '$url', '$text', '$date', '$answer_admin')"; // Запрос на добавление информации в базу данных MySQL
Header("Location: gb.php"); // обновляем страницу }
}
?>
<!-- Ну, а это объяснять я думаю не надо :-) -->
<form action="gb.php" method="post" name=forma>
<table border=0 class=text align=center width="50%"><tr><td align=right>
<b>Ваше имя</b> (ник):<font color="red">*</font></td><td>
<input type="text" size="30" name="name" title="Ваше имя (ник)" value="<?=@$name?>"></td></tr><tr><td align=right>
<b>Ваш E-mail:</b><font color="red">*</font></td><td>
<input type="text" size="30" name="email" title="Ваш E-mail" value="<?=@$email?>"></td></tr><tr><td align=right>
<b>Город:</b></td><td>
<input type="text" size="30" name="city" title="Ваш город" value="<?=@$city?>"></td></tr><tr><td align=right>
<b>URL:</b></td><td>
<input type="text" size="30" name="url" title="URL вашего сайта (если есть)" value="<?=@$url?>"></td></tr><tr height=10><td colspan=2>
</td></tr><tr><td colspan=2><input type="Button" name="B" value=" B " title="Полужирный текст" OnClick="AddTags(' [B]ваш текст[/B] ');">
<input type="Button" name="B" value=" I " title="Курсивный текс " OnClick="AddTags(' [I]ваш текст[/I] ');">
<input type="Button" name="B" value=" U " title="Подчеркнутый текст" OnClick="AddTags(' [U]ваш текст[/U] ');">
<input type="Button" name="B" value="red" title="Выделение текста красным цветом" OnClick="AddTags(' [red]ваш текст[/red] ');">
<input type="Button" name="B" value="sup" title="Верхний индекс" OnClick="AddTags(' [sup]ваш текст[/sup] ');">
<input type="Button" name="B" value="sub" title="Нижний индекс" OnClick="AddTags(' [sub]ваш текст[/sub] ');">
- <a href="javascript:open_tage()">Допустимые теги</a>
</td></tr><tr><td colspan=2 align=center><b>Сообщение:</b><font color="red">*</font></td></tr><tr><td colspan=2 align=left>
<textarea name="text" rows=12 cols=95><?=@$text?></textarea></td>
</tr><tr><td height=6></td></tr><tr><td align=left>
<input type="reset" value="Очистить"></td><td align=right>
<input type="submit" name="submit" value="Добавить »"></td></tr><tr height=50><td colspan=2>
<font color="red">*</font> - поля обязательные для заполнения
</td></tr>
</table></form>
<hr color="blue" width=79% size=1>
</center>
<p>
<!-- -->
<?
/* Это код для вывода информации */
$numresults=mysql_query("SELECT * FROM gb"); // Выбираем все записи из таблицы $rows=mysql_num_rows($numresults); // Подсчитываем сколько в таблице записей
if (empty($page)) { $page=0; } // Если переменная page пуста, то присваиваем ей значение 0. (Это для постраничного вывода) $limit=5; // Здесь указано кол-во сообщений которые будут выводиться на одной странице.
$sql=mysql_query("SELECT * FROM gb ORDER BY date DESC limit $page,$limit");
if($rows=='0'){ // Если записей нет,
echo "<H2><center>Нет сообщений</center></H2>"; // то выводим соответствующее сообщение
}
for ($i=0;$i<mysql_num_rows($sql);$i++)
{
/* Делаем оформление для вывода записи */
echo "<tr><td><table style='border-style: solid;border-width:1px;border-color:#d3d5e7;' border=0 align=center width=100% cellspacing=0 cellpadding=2 class=text>
<tr bgcolor='#d3d5e7'><td width=70%>
<b>Сообщение от:</b> ".$stroka['name']."</a></font> <a href='mailto:".$stroka['email']."' title='E-mail: ".$stroka['email']."'>E-mail</a> ";
if(!empty($stroka['url'])) echo "| <a href='".$stroka['url']."' target='_blank' title=".$stroka['url'].">url</a>";
else echo " ";
echo "</td><td width=60% align=right><font size=1>".$stroka['date']."</td></tr>
<tr><td colspan=3>".nl2br($stroka['text']).""; if(!empty($stroka['answer_admin'])) echo "<table class=text_admina><tr height=30><td><font color=#006600><b><u>Admin:</u>
</b> ".nl2br($stroka['answer_admin'])."</font></td></tr></table>"; echo "</td></tr></table></td></tr></table><br>";
}
/* Этот фрагмент кода отвечает за постраничный вывод */
// если это не первая страница, выводим ссылку "<<"
if(!$rows=='0'){
echo "<center>";
if ($page>=5) {
$data_page = $page - $limit;
print "<a href=\"gb.php?page=$data_page\"><<</a> ";
}
$pages=ceil($rows/$limit); if ($pages<($rows/$limit)){
$pages=($pages + 1);
}
// Выводим ссылки на страницы
for ($i=1;$i<=$pages;$i++) {
$data_page=$limit*($i-1);
if ($data_page==$page) {
print "[<b> $i </b>] ";
} else {
print "<a href=\"gb.php?page=$data_page\">$i</a> ";
}
}
// если это не последняя страница, выводим ссылку ">>"
if (!(($page/$limit)==($pages - 1)) && ($pages != 1)) {
$data_page = $page+$limit;
print "<a href=\"gb.php?page=$data_page\">>></a><p></center>";
}
echo "<p align=left>Всего сообщений: <b>$rows</b>";
}
?>
</body>
</html>