| Вот Вам addrec.php, оформление, правда, я немного переделал под оформление сайта:
<?php
///////////////////////////////////////////////////
// Гостевая книга с использованием MySQL
// 2003-2004 (C) IT-студия SoftTime (http://www.softtime.ru)
// Симдянов И.В. (simdyanov@softtime.ru)
// Кузнецов М.В. (kuznetsov@softtime.ru)
// Голышев С.В. (softtime@softtime.ru)
///////////////////////////////////////////////////
// Устанавливаем соединение с базой данных
include "config.php";
$error = "";
$action = "";
// Возвращаем значение переменной action, переданной в урле
$action = $_POST["action"];
// Если оно не пусто - добавляем сообщение в базу данных
if (!empty($action))
{
// Проверяем сообщение на слишком длинные слова
$lenmsg = strlen($msg);
$templen = 0;
$temp = strtok($msg, " ");
if (strlen($msg)>60)
{
while ($templen < $lenmsg)
{
if (strlen($temp)>60)
{
$action = "";
$error = $error."<LI>Текст сообщения содержит слишком много символов без пробелов\n";
break;
}
else
{
$templen = $templen + strlen($temp) + 1;
}
$temp = strtok(" ");
}
}
// Проверяем правильность ввода информации в поля формы
echo "имя - $msg";
echo "сообщение - $name";
if (empty($msg))
{
$action = "";
$error = $error."<LI>Вы не ввели сообщение\n";
}
if (empty($name))
{
$action = "";
$error = $error."<LI>Вы не ввели имя\n";
}
// При помощи регулярных выражений проверяем правильность ввода e-mail
if($_POST["email"]!="")
{
if (!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $email))
{
$action = "";
$error = $error."<LI>Неверно введен е-mail.  Введите e-mail в виде <i>dp-studio@km.ru</i> \n";
}
}
// Обрабатываем HTML-тэги и скрипты в сообщении и информации
// об авторе, ограничиваем объём сообщения
$name = substr($_POST["name"],0,32);
$name = htmlspecialchars(stripslashes($name));
$city = substr($_POST["city"],0,32);
$city = htmlspecialchars(stripslashes($city));
$email = substr($_POST["email"],0,32);
$email = htmlspecialchars(stripslashes($email));
$url = substr($_POST["url"],0,60);
$url = htmlspecialchars(stripslashes($url));
$msg = substr($_POST["msg"],0,1024);
$msg = htmlspecialchars(stripslashes($msg));
// Добавляем протокол в url, если пользователь забыл это сделать сам
$url = strtr($url, "HTPF", "htpf");
if (trim($url)!="")
{
if (strtolower((substr($url, 0, 7))!="http://") && (strtolower(substr($url, 0, 7))!="ftp://")) $url="http://".$url;
}
// Пытаемся вырезать мат, насколько это возможно ;-)
$search_bad_words = array("'хуй'si","'пизд'si","'ёб'si",
"'сука'si","'суки'si","'дроч'si","'хуя'si","'ссуч'si");
$replace = array("*","*","*","*","*","*","*","*");
$msg = preg_replace($search_bad_words,$replace,$msg);
$name = preg_replace($search_bad_words,$replace,$name);
$city = preg_replace($search_bad_words,$replace,$city);
if (empty($error))
{
$msg = nl2br($msg);
// Обрабатываем встроенные тэги
$msg = str_replace("[u]","<u>",$msg);
$msg = str_replace("[U]","<u>",$msg);
$msg = str_replace("","<i>",$msg);
$msg = str_replace("[I]","<i>",$msg);
$msg = str_replace("","<B>",$msg);
$msg = str_replace("[B]","<B>",$msg);
$msg = str_replace("[sub]","<SUB>",$msg);
$msg = str_replace("[SUB]","<SUB>",$msg);
$msg = str_replace("[sup]","<SUP>",$msg);
$msg = str_replace("[SUP]","<SUP>",$msg);
$msg = str_replace("[/u]","</u>",$msg);
$msg = str_replace("[/U]","</u>",$msg);
$msg = str_replace("","</i>",$msg);
$msg = str_replace("[/I]","</i>",$msg);
$msg = str_replace("","</B>",$msg);
$msg = str_replace("[/B]","</B>",$msg);
$msg = str_replace("[/SUB]","</SUB>",$msg);
$msg = str_replace("[/sub]","</SUB>",$msg);
$msg = str_replace("[/SUP]","</SUP>",$msg);
$msg = str_replace("[/sup]","</SUP>",$msg);
$msg = eregi_replace("(.*)\\[url\\](.*)\\[/url\\](.*)","\\1<a href=\\2>\\2</a>\\3",$msg);
$msg = str_replace("\n"," ",$msg);
$msg = str_replace("\r"," ",$msg);
// Запрос к базе данных на добавление сообщения
$query = "INSERT INTO guest VALUES (0,
'$name',
'$city',
'$email',
'$url',
'$msg',
'-',
NOW(),
'show');";
if(mysql_query($query))
{
// Если в конфигурационном файле $sendmail = true отправляем уведомление
if($sendmail)
{
$thm = "guestbook - a new post";
$msg = "post: $msg\nname: $name";
mail($valmail, $thm, $msg);
}
// Возвращаемся на главную страницу если всё прошло удачно
print "<HTML><HEAD>\n";
print "<META HTTP-EQUIV='Refresh' CONTENT='0; URL=index.php'>\n";
print "</HEAD></HTML>\n";
exit();
}
else
{
// Выводим сообщение об ошибке в случае неудачи
echo "<a href='index.php'>Вернуться</a>";
echo("<P> Ошибка при добавлении сообщения</P>");
echo("<P> $query</P>");
exit();
}
}
}
if (empty($action))
{
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title></title>
<link rel="StyleSheet" type="text/css" href="guestbook.css">
</head>
<body bottommargin="0" marginheight="0" marginwidth="0" rightmargin="0" leftmargin="0" topmargin="0" link="#EAEAEA" vlink="#EAEAEA" alink="#FFFFFF" text="#EAEAEA" bgcolor="#000000">
<table border="0" width="800" id="table1" style="position: relative; left: 10px; top: 15px; border-left-width:1px; border-right-width:1px; border-top-style:solid; border-top-width:1px; border-bottom-width:1px">
<tr>
<td width="196"><font face="Arial" size="2">
<b>
<font color="#FFFFFF">Гостевая книга cтудии D&P</font></b></td>
<td width="421">
<p align="right"><font face="Arial" size="2"> <a href="index.php" title="Вернуться в гостевую книгу"><span style="text-decoration: none">Гостевая книга</span></a></font></td>
<td width="196">
<p align="right"><font face="Arial" size="2"> <a href="http://dp-studio.ru" title="Вернуться на сайт"><span style="text-decoration: none">На главную страницу</span></a></font></td>
</tr>
</table>
<p align="right"> </p>
<p align="right"> </p>
<form action=addrec.php method=post>
<input type=hidden name=action value=post>
<table height="438"><tr valign="top"><td width="25%"> </td><td>
<table border="0" align="center" cellpadding="6" cellspacing="0" width="441" height="429">
<tr valign="top">
<td colspan="3" height="33">
<p class="pcolor2" align="center"><font face="Arial" size="2" color="#FFFFFF"><b>Добавление сообщения</b>
</font>
</td>
</tr>
<tr>
<td width="78" align="left"><p class=ptd align="center">
<b>
<font face="Arial" size="2" color="#FFFFFF">Имя *</font></b></td>
<td width="197"><input type=text name=name maxlength=32 size=25 value='<? echo $name; ?>'></td>
<td rowspan="3" width="130">
<p class=help align="center"><font face="Arial" size="2" color="#FFFFFF">* Поля, обязательные для заполнения
</font>
</td>
</tr>
<tr>
<td align="left"><p class=ptd align="center">
<font face="Arial" size="2" color="#FFFFFF"><b>Город</b></font></td>
<td width="197"><input type=text name=city maxlength=32 size=25 value='<? echo $city; ?>'></td>
</tr>
<tr>
<td align="center"><p class=ptd>
<font face="Arial" size="2" color="#FFFFFF"><b><nobr>E-mail</nobr></b></font></td>
<td width="197"><input type=text name=email size=25 maxlength=32 value='<? echo $email; ?>'></td>
</tr>
<tr>
<td align="center"><p class=ptd>
<font face="Arial" size="2" color="#FFFFFF"><b>URL</b></font></td>
<td colspan="2"><input type=text size=40 name=url maxlength=36 value='<? echo $url; ?>'></td>
</tr>
<tr>
<td colspan="3" height="10"><nop></td>
</tr>
<tr>
<td colspan="3">
<p class=ptd><em class=em><font face="Arial" size="2"><b>
<font color="#FFFFFF">Сообщение *</font></font><em><br>
<textarea cols=51 rows=10 name=msg><? echo $msg; ?></textarea>
</td>
</tr>
<tr>
<td colspan="3">
<p align="center">
<input type="submit" value="Добавить">
</td>
</tr>
</table>
</td></tr></table>
</form>
</body>
</html>
<?php
// Выводим сообщение об ошибке
if (!empty($error))
{
print "<P><font color=red>Во время добавления записи произошли следующие ошибки: </font></P>\n";
print "<UL>\n";
print $error;
print "</UL>\n";
}
}
?>
И попутно, если можно, такой вопрос:
...
<p align="right"><font face="Arial" size="2"> <a class=link href="index.php" title="Вернуться в гостевую книгу"><span style="text-decoration: none">Гостевая книга</span></a></font></td>
...
class=link для чего нужно. Дело в том, что в оформлении страницы мне хотелось, чтобы ссылки были по цвету,размеру и т.д. такими как общий текст, но получалось серым цветом, размером меньше, и т.д. Я убрал class=link и ссылка приняла нужный мне вид, при этом она работает. Так для чего это нужно. | |