File size: 4.72Kb
<?php
//Last update - 23.04.2007
//Запрет кеша
header ("Expires: Mon, 23 May 1995 02:00:00 GMT");
header ("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header ("Cache-Control: no-cache, must-revalidate");
header ("Pragma: no-cache");
//Модули и конфиг
include "conf.php";
include "html_up.php";
//Если нажата кнопка - фильтруем переменные, иначе - выводим форму, которая внизу.
if (isset($_POST['Submit'])) {
$time=date("Y.m.d G:i:s");
$agent = htmlspecialchars($_SERVER['HTTP_USER_AGENT']);
$ip = htmlspecialchars($_SERVER['REMOTE_ADDR']);
$name = htmlspecialchars(strip_tags($_POST['name']));
$lengh = strlen($name);
$quot = htmlspecialchars(strip_tags($_POST['quot']));
$mess = htmlspecialchars(strip_tags($_POST['mess']));
$len = strlen($mess);
$email = htmlspecialchars(strip_tags($_POST['email']));
$url = htmlspecialchars(strip_tags($_POST['url']));
//Контроль
if (empty($name)) {
echo "Не введено имя! Пожалуйста, вернитесь назад и введите имя!";
exit();
}
if ($name == "admin" || $name == "Admin" || $name == "Administrator") {
echo "Нельзя писать в гостевой под ником администратора.";
exit();
}
if ($lenght <= 2) {
echo "Имя не может быть короче 2 символов!";
exit();
}
if ($lengh >= 20) {
echo "Слишком длинное имя. Вернитесь назад и введите имя не более 20 символов.";
exit();
}
if (empty($mess)) {
echo "Вы не ввели сообщение! Пожалуйста, вернитесь назад и введите сообщение!";
exit();
}
if ($len >= 150) {
echo "Нельзя вводить сообщения более 150 символов! Пожалуйста, вернитесь назад и введите сообщение не более 150 символов!";
exit();
}
if (!empty($email))
{
if (!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $email)) {
echo "Неверно введен E-mail! Пожалуйста, вернитесь назад и убедитесь в правильности ввода поля E-mail!";
exit(); }
}
if (!empty($url)) {
if (!preg_match("#http://[-a-z0-9_.]+[-a-z0-9_]*\.#i", $url)){
echo "Неверно введен URL! Пожалуйста, вернитесь назад и убедитесь в правильности ввода поля url!";
exit(); }
}
//Антиспам
$res = mysql_query("SELECT * FROM `guest`");
while ($anti = mysql_fetch_array($res)) {
if ($mess == $anti['mess']) {
echo "Антиспам: Такое сообщение уже есть в гостевой!";
exit();
}}
//Проверка забанен ли пользователь. Если нет-все ок.
$zap = @mysql_query("SELECT * FROM `bans`");
while ($por = @mysql_fetch_array($zap)) {
if ($por[1] == $ip and $por[2] == $agent) {
echo "Вы не можете больше добавлять сообщения в эту гостевую!";
exit();
}
}
//Если все ок - добавляем запись.
$sql = "INSERT INTO `guest` VALUES ('','$name','$quot','$mess','$url','$email','$time','$agent','$ip')";
@mysql_query($sql);
echo '<meta http-equiv="refresh" content="2; URL=index.php">Ваше сообщение добавлено!<br />
<a href="index.php">В гостевую</a>';
//Далее-цитата.
} else {
$id = $_GET['id'];
$action=$_GET['action'];
if ($action == "quote") {
$quote = @mysql_fetch_row(@mysql_query("SELECT * FROM `guest` WHERE id=$id"));
if (empty($quote)) {
echo "Не передано что собираетесь цитировать!";
exit();
}
}
//Дальше - форма. Можно вынести в отдельный файл.
?>
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="POST">
Ваше имя:<br />
<input type="text" name="name" maxlenght="20" /><br />
Сообщение:<br />
<input type="text" name="mess" maxlenght="150" /><br />
<?php if ($action == "quote") {
echo "Цитируем: Поле скрыто.<br />
<input type=\"hidden\" name=\"quot\" value=\"$quote[1] написал: <i>$quote[3]</i>\" maxlenght=\"200\" /><br />";
} ?>
E-mail:<br />
<input type="text" name="email" maxlenght="30" /><br />
Сайт:(http://)<br />
<input type="text" name="url" maxlenght="30" /><br />
<input type="submit" name="Submit" value="Добавить" /></form>
<a href="fqsm.php">Faq по смайлам</a>
<?php
}
//Подключаем модули.
include "html_down.php"
?>