require ("classHead.php");
// Подключаем файл "connect_db.php" для соединения с базой данных
require ("connect_db.php");
//----------------------Класс для отображения формы, если пришли по ссылке--------------------------
class Contact_form extends Head
{
//-----------------------------------------------------------------------
function Display()
// перекрытие функции отображения HTML-страницы
{
echo "\n
\n";
$this -> DisplayTitle();
echo "\n\n";
$this -> DisplayHeader();
$this -> DisplayForm();
echo "\n\n";
}
function DisplayForm()
// функция отображения формы
{
?>
Пожалуйста, напишите о себе:
* Звездочкой помечены поля, обязательные для заполнения!
}
}
//----------------------Класс для отображения формы, если пришли по нажатию кнопки------------------------
class Contact_process extends Head
{
//-----------------------------------------------------------------------
function Display()
// перекрытие функции отображения HTML-страницы
{
echo "\n\n";
$this -> DisplayTitle();
echo "\n\n";
$this -> DisplayHeader();
$this -> Contact_process();
echo "\n\n";
}
function Contact_process()
// функция отображения формы
{
//------------Проверяем нажата ли кнопка "Добавить сообщение"
//Если да, то делаем проверку полей, если нет, то выводим форму для заполнения
if (isset($HTTP_POST_VARS["submit"]) and $HTTP_POST_VARS["submit"])
{
//------------ Проверка на правильность заполнения полей------------------------
// Удаляем из строк лишние пробелы в начале и в конце строки с помощью функции trim()
$HTTP_POST_VARS ["surname"] = trim($HTTP_POST_VARS ["surname"]);
$HTTP_POST_VARS ["name"] = trim($HTTP_POST_VARS ["name"]);
$HTTP_POST_VARS ["patronymic"] = trim($HTTP_POST_VARS ["patronymic"]);
$HTTP_POST_VARS ["country"] = trim($HTTP_POST_VARS ["country"]);
$HTTP_POST_VARS ["city"] = trim($HTTP_POST_VARS ["city"]);
$HTTP_POST_VARS ["zip"] = trim($HTTP_POST_VARS ["zip"]);
$HTTP_POST_VARS ["street"] = trim($HTTP_POST_VARS ["street"]);
$HTTP_POST_VARS ["house"] = trim($HTTP_POST_VARS ["house"]);
$HTTP_POST_VARS ["flat"] = trim($HTTP_POST_VARS ["flat"]);
$HTTP_POST_VARS ["home_tel"] = trim($HTTP_POST_VARS ["home_tel"]);
$HTTP_POST_VARS ["working_tel"] = trim($HTTP_POST_VARS ["working_tel"]);
$HTTP_POST_VARS ["mobile_tel"] = trim($HTTP_POST_VARS ["mobile_tel"]);
$HTTP_POST_VARS ["email"] = trim($HTTP_POST_VARS ["email"]);
$HTTP_POST_VARS ["additional_info"] = trim($HTTP_POST_VARS ["additional_info"]);
//------------------------------------------------------------------------------
// Если в поле "Имя" ничего не введено
$error = "";
if (empty($HTTP_POST_VARS ["surname"]))
{
$error.= "
Вы не указали фамилию!\n";
//exit;
}
// Проверяем на правильность заполнения поле "Фамилия". Поле должно быть заполнено только буквами
if ((strlen($HTTP_POST_VARS ["surname"])>0)&&(!ereg("^([А-ЯA-Z]){1}[а-яa-z]+$", $HTTP_POST_VARS ["surname"])))
{
$error.= "
Неверно заполнено поле 'Фамилия'! "
."Фамилия должна состоять только из латинских букв и начинаться с заглавной!\n";
//exit;
}
/*if ((strlen($HTTP_POST_VARS ["surname"])>0)&&(!ereg("^([А-ЯA-Z]){1}[а-яa-z]+$", $HTTP_POST_VARS ["surname"])))
{
echo " Неверно заполнено поле 'Фамилия'! "
."Фамилия должна состоять только из латинских букв и начинаться с заглавной!\n";
//exit;
}*/
//----------------------------------------------------------------------------------
// Если в поле "Имя" ничего не введено
if (empty($HTTP_POST_VARS ["name"]))
{
$error.= "
Вы не указали имя!\n";
//exit;
}
// Проверяем на правильность заполнения поле "Имя". Поле должно быть заполнено только буквами
if ((strlen($HTTP_POST_VARS ["name"])>0)&&(!ereg("^([А-ЯA-Z]){1}[а-яa-z]+$", $HTTP_POST_VARS ["name"])))
{
$error.= "
Неверно заполнено поле 'Имя'! "
."Имя должно состоять только из латинских букв и начинаться с заглавной!\n";
//exit;
}
//-----------------------------------------------------------------------------------
// Проверяем на правильность заполнения поле "Отчество". Поле должно быть заполнено только буквами
if ((strlen($HTTP_POST_VARS ["patronymic"])>0)&&(!ereg("^([А-ЯA-Z]){1}[а-яa-z]+$", $HTTP_POST_VARS ["patronymic"])))
{
$error.= "
Неверно заполнено поле 'Отчество'! "
."Отчество должно состоять только из латинских букв и начинаться с заглавной!\n";
//exit;
}
//-----------------------------------------------------------------------------------
// Проверяем на правильность заполнения поле "Город". Поле должно быть заполнено только буквами в виде "Нижний", "Нижний Новгород", "Н.Новгород" или "Н. Новгород"
if ((strlen($HTTP_POST_VARS["city"])>0)&&
(!ereg("(^[А-ЯA-Z]{1}[а-яa-z]+$)|(^[А-ЯA-Z]{1}[а-яa-z]+\ [А-ЯA-Z]{1}[а-яa-z]+$)|(^[А-ЯA-Z]{1}[а-яa-z]*\.[А-ЯA-Z]{1}[а-яa-z]+$)|(^[А-ЯA-Z]{1}[а-яa-z]*\. [А-ЯA-Z]{1}[а-яa-z]+$)", $HTTP_POST_VARS ["city"])))
{
$error.= "
Неверно заполнено поле 'Город'! "
."Поле должно быть заполнено только буквами в виде 'Нижний', 'Нижний Новгород', 'Н.Новгород' или 'Н. Новгород'!\n";
//exit;
}
//-----------------------------------------------------------------------------------
// Проверяем на правильность заполнения поле "Почтовый индекс". Поле должно быть заполнено только цифрами
if ((strlen($HTTP_POST_VARS ["zip"])>0)&&(strlen($HTTP_POST_VARS ["zip"])<6))
{
$error.= "
Неверно введен почтовый индекс! "
."Индекс должен быть не меньше 6 цифр!\n";
//exit;
}
// С помощью регулярных выражений проверяем правильность ввода почтового индекса
if ((strlen($HTTP_POST_VARS ["zip"])>0)&&(!eregi("^[0-9]+$", $HTTP_POST_VARS ["zip"])))
{
$error.= "
Неверно введен почтовый индекс! "
."Индекс должен состоять только из цифр!\n";
//exit;
}
//-----------------------------------------------------------------------------------
// Проверяем на правильность заполнения поле "Улица". Поле должно быть заполнено только буквами
if ((strlen($HTTP_POST_VARS ["street"])>0)&&
(!ereg("(^[А-ЯA-Z]{1}[а-яa-z]+$)|(^[А-ЯA-Z]{1}[а-яa-z]+\ [А-ЯA-Zaа-яa-z]{1}[а-яa-z]+$)|(^[а-яa-z]+\. [А-ЯA-Z]{1}[а-яa-z]+$)|(^[А-ЯA-Z]{1}[а-яa-z]+\. [А-ЯA-Z]{1}[а-яa-z]+$)", $HTTP_POST_VARS ["street"])))
{
$error.= "
Неверно заполнено поле 'Улица'! "
."Поле должно быть заполнено только буквами в виде 'Кирова', 'Проспект Кирова', 'пр. Кирова', 'просп. Кирова', 'Кирова проспект'!\n";
//exit;
}
//-----------------------------------------------------------------------------------
// Проверяем на правильность заполнения поле "Дом". Поле должно составлять не более 5 символов
if (strlen($HTTP_POST_VARS ["house"])>4)
{
$error.= "
Неверно введен номер дома! "
."Номер должен составлять не больше 4х символов\n";
//exit;
}
// Проверяем на правильность заполнения поле "Дом". Поле должно состоять из не более трех цифр и/или одной буквы
if ((strlen($HTTP_POST_VARS ["house"])>0)&&(!ereg("(^[0-9]{1,3}$)|(^[0-9]{1,3}\ [a-zA-Zа-вА-В]{1})$", $HTTP_POST_VARS ["house"])))
{
$error.= "
Неверно введен номер дома! "
."Номер должен составлять не больше трех цифр и/или одной буквы\n";
//exit;
}
//-----------------------------------------------------------------------------------
// Проверяем на правильность заполнения поле "Квартира". Поле должно быть заполнено только цифрами и не более 3
if (strlen($HTTP_POST_VARS ["flat"])>3)
{
$error.= "
Неверно заполнено поле 'Квартира'! "
."Номер должен быть не больше 3 цифр!\n";
//exit;
}
// С помощью регулярных выражений проверяем правильность ввода номера квартиры
if ((strlen($HTTP_POST_VARS ["flat"])>0)&&(!eregi("^[0-9]+$", $HTTP_POST_VARS ["flat"])))
{
$error.= "
Неверно заполнено поле 'Квартира'! "
."Номер должен состоять только из цифр!\n";
//exit;
}
//--------------------------------------------------------------------------------------
// Если в поле "Домашний телефон" ничего не введено
if (empty($HTTP_POST_VARS ["home_tel"]))
{
$error.= "
Вы не указали домашний телефон!\n";
//exit;
}
// Проверяем поле "Домашний телефон". Номер телефона должен быть не менее 5 цифр
if ((strlen($HTTP_POST_VARS ["home_tel"])>0)&&(strlen($HTTP_POST_VARS ["home_tel"])<5))
{
$error.= "
Неверно введен домашний телефон! "
."Номер телефона должен быть не меньше 5 цифр!\n";
//exit;
}
// С помощью регулярных выражений проверяем правильность ввода номера телефона
if ((strlen($HTTP_POST_VARS ["home_tel"])>0)&&(!eregi("(^[0-9]+$)|(^\+[0-9]+$)", $HTTP_POST_VARS ["home_tel"])))
{
$error.= "
Неверно введен домашний телефон! "
."Номер телефона должен состоять только из цифр!\n";
//exit;
}
//---------------------------------------------------------------------------------------
// Проверяем поле "Рабочий телефон". Номер телефона должен быть не менее 5 цифр
if ((strlen($HTTP_POST_VARS ["working_tel"])>0)&&(strlen($HTTP_POST_VARS ["working_tel"])<5))
{
$error.= "
Неверно введен рабочий телефон! "
."Номер телефона должен быть не меньше 5 цифр!\n";
//exit;
}
// С помощью регулярных выражений проверяем правильность ввода номера телефона
if ((strlen($HTTP_POST_VARS ["working_tel"])>0)&&(!eregi("(^[0-9]+$)|(^\+[0-9]+$)", $HTTP_POST_VARS ["working_tel"])))
{
$error.= "
Неверно введен рабочий телефон! "
."Номер телефона должен состоять только из цифр!\n";
//exit;
}
//----------------------------------------------------------------------------------------
// Проверяем поле "Сотовый телефон". Номер телефона должен быть не менее 5 цифр
if ((strlen($HTTP_POST_VARS ["mobile_tel"])>0)&&(strlen($HTTP_POST_VARS ["mobile_tel"])<5))
{
$error.= "
Неверно введен сотовый телефон! "
."Номер телефона должен быть не меньше 5 цифр!\n";
//exit;
}
// С помощью регулярных выражений проверяем правильность ввода номера телефона
if ((strlen($HTTP_POST_VARS ["mobile_tel"])>0)&&(!eregi("(^[0-9]+$)|(^\+[0-9]+$)", $HTTP_POST_VARS ["mobile_tel"])))
{
$error.= "
Неверно введен сотовый телефон! "
."Номер телефона должен состоять только из цифр!\n";
//exit;
}
//----------------------------------------------------------------------------------------
// Если в поле "Электронный адрес" ничего не введено
if (empty($HTTP_POST_VARS ["email"]))
{
$error.= "
Вы не указали электронный адрес!\n";
//exit;
}
// При помощи функции strlen() проверяем правильность ввода e-mail
// Если длина введенной строки меньше 6, то выход
// С помощью регулярных выражений проверяем правильность ввода эдектронного адреса
if ((strlen($HTTP_POST_VARS ["email"])>0)&&(strlen($HTTP_POST_VARS ["email"])<5)&&(!eregi("^[0-9a-z_]+@([0-9a-z\-]+)[\.][a-zA-Z0-9]{2,3}$", $HTTP_POST_VARS ["email"])))
{
$error.= "
Неверно введен электронный адрес! Пожалуйста, "
."введите e-mail в виде support@garbuz.net\n";
//exit;
}
// Вывод сообщеня об ошибке
if (!empty($error))
{
print "
Во время добавления сообщения произошли следующие ошибки!:
";
print "
\n";
print "$error";
print "
\n";
}
//-----------------------------------------------------------------------------------------
// Проверяем поле "Дополнительная информация" на слишком длинные слова
// Функция strlen() проверяет длину строки "additional_info"
$lenmsg = strlen($HTTP_POST_VARS ["additional_info"]);
$templen = 0;
// С помощью функции strtok() в строке "additional_info" находим разделитель " "
$temp = strtok($HTTP_POST_VARS ["additional_info"], " ");
if (strlen($HTTP_POST_VARS ["additional_info"])>20)
{
while ($templen < $lenmsg)
{
if (strlen($temp)>20)
{
$error.= "
Поле 'Дополнительная информация' содержит слишком
много символов без пробелов!\n";
break;
}
else
{
$templen = $templen + strlen($temp) + 1;
}
$temp = strtok(" ");
}
}
//-----------------------------------------------------------
// Если не было ошибок, т.е форма заполнена правильно, то добавляем запись в базу
if (empty($error))
{
// Запрос на добавление новой записи в базу данных
$query = "INSERT INTO vsm_notebook (f_id, f_surname, f_name, f_patronymic,
f_country, f_city, f_zip, f_street, f_house, f_flat,
f_home_tel, f_working_tel, f_mobile_tel, f_email, f_additional_info, f_date_time, f_photo) VALUES
('', '$HTTP_POST_VARS[surname]', '$HTTP_POST_VARS[name]', '$HTTP_POST_VARS[patronymic]',
'$HTTP_POST_VARS[country]', '$HTTP_POST_VARS[city]', '$HTTP_POST_VARS[zip]',
'$HTTP_POST_VARS[street]', '$HTTP_POST_VARS[house]', '$HTTP_POST_VARS[flat]',
'$HTTP_POST_VARS[home_tel]', '$HTTP_POST_VARS[working_tel]', '$HTTP_POST_VARS[mobile_tel]',
'$HTTP_POST_VARS[email]', '$HTTP_POST_VARS[additional_info]', NOW(), '$HTTP_POST_VARS[photo]')";
$result = mysql_query($query);
// Вывод сообщения о добавлении новой записи
if ($result)
{
echo "
\n";
}
}
?>
}
}
}
// Если пришли по ссылке, то отображаем форму для заполнения,
// а если по нажатию на кнопку, то проверяем правильность заполнения полей и выводим ошибки
if ($_SERVER["REQUEST_METHOD"], "GET")
{
// экземпляр класса Contact_process с именем $form
$form = new Contact_form();
$form -> Display();
}
if ($_SERVER["REQUEST_METHOD"], "POST")
{
// экземпляр класса Contact_process с именем $form
$form = new Contact_process();
$form -> Display();
}
?>