2023-08-28 11:23:41 +00:00
< ? php
2022-06-06 21:30:34 +00:00
2023-08-28 11:23:41 +00:00
use Captcha\Captcha ;
2022-06-06 21:30:34 +00:00
2023-08-28 11:23:41 +00:00
session_start ();
2022-06-06 21:30:34 +00:00
require_once 'validator.php' ;
2023-08-28 11:23:41 +00:00
require_once '../_incl_data/class/Captcha/Captcha.php' ;
2022-06-06 21:30:34 +00:00
$validator = new Validator ();
$validator -> set_error_delimiters ( '<div class="error">' , '</div>' );
2023-08-28 11:23:41 +00:00
$security = new Captcha ();
2022-06-06 21:30:34 +00:00
//Задаем правила валидации
2023-08-28 11:23:41 +00:00
$rules = [
[
'field' => 'user_name' ,
'label' => 'Ваше ник в игре' ,
'rules' => [
'trim' => '' , //Обрезаем пробелы по бокам
'strip_tags' => '' , // Удаляем HTML и PHP теги
'required' => 'Поле %s обязательно для заполнения' ,
],
],
[
'field' => 'user_email' ,
'label' => 'Ваш e-mail адрес связанный с ником' ,
'rules' => [
'trim' => '' ,
'required' => 'Поле %s обязательно для заполнения' ,
'valid_email' => 'Поле %s должно содержать правильный email-адрес' ,
],
],
[
'field' => 'user_url' ,
'label' => 'URL info персонажа' ,
'rules' => [
'trim' => '' ,
'valid_url' => 'Поле %s должно содержать правильный URL адрес' ,
],
],
[
'field' => 'subject' ,
'label' => 'Тема обращения' ,
'rules' => [
'trim' => '' , //Обрезаем пробелы по бокам
'strip_tags' => '' , // Удаляем HTML и PHP теги
'required' => 'Поле %s обязательно для заполнения' ,
],
],
[
'field' => 'text' ,
'label' => 'Суть проблемы/обращения' ,
'rules' => [
'trim' => '' , //Обрезаем пробелы по бокам
'strip_tags' => '' , // Удаляем HTML и PHP теги
'required' => 'Поле %s обязательно для заполнения' ,
],
],
[
'field' => 'keystring' ,
'label' => 'Капча' ,
'rules' => [
'trim' => '' , //Обрезаем пробелы по бокам
'required' => 'Вы не ввели цифры изображенные на картинке' ,
'valid_captcha[keystring]' => 'Вы ввели не правильный цифры с картинки' ,
],
],
];
2022-06-06 21:30:34 +00:00
//Устанавливаем правила валидации
$validator -> set_rules ( $rules );
$message = '' ;
//Запускаем валидацию POST данных
2023-08-28 11:23:41 +00:00
if ( $validator -> run ()) {
2022-06-06 21:30:34 +00:00
2023-08-28 11:23:41 +00:00
//Здесь впишите свой e-mail адрес
//на негу будут приходить уведомления с формы
$to = 'support@new-combats.com' ;
2022-06-06 21:30:34 +00:00
2023-08-28 11:23:41 +00:00
$from = " =?UTF-8?b? " . base64_encode ( $validator -> postdata ( 'user_name' )) . " ?= " ;
$subject = " =?UTF-8?b? " . base64_encode ( $validator -> postdata ( 'subject' )) . " ?= " ;
2022-06-06 21:30:34 +00:00
2023-08-28 11:23:41 +00:00
$mail_body = " Поступил новый ответ от формы обратной связи. \r \n Автор оставил такие данные: \r \n " ;
2022-06-06 21:30:34 +00:00
2023-08-28 11:23:41 +00:00
//Формируем текст сообщения
foreach ( $rules as $rule ) {
if ( $rule [ 'field' ] == 'keystring' ) {
continue ;
}
$mail_body .= $rule [ 'label' ] . ': ' . $validator -> postdata ( $rule [ 'field' ]) . " \r \n " ;
}
2022-06-06 21:30:34 +00:00
2023-08-28 11:23:41 +00:00
$header = " MIME-Version: 1.0 \n " ;
$header .= " Content-Type: text/plain; charset=UTF-8 \n " ;
$header .= " From: " . $from . " < " . $validator -> postdata ( 'user_email' ) . " > " ;
2022-06-06 21:30:34 +00:00
2023-08-28 11:23:41 +00:00
//Отправка сообщения
if ( mail ( $to , $subject , $mail_body , $header )) {
2022-06-06 21:30:34 +00:00
2023-08-28 11:23:41 +00:00
$message = '<div class="error">Ваше сообщение успешно отправлено!</div>' ;
2022-06-06 21:30:34 +00:00
2023-08-28 11:23:41 +00:00
//Очищаем форму обратной связи
$validator -> reset_postdata ();
} else {
$message = '<div class="error">Ваше сообщение не отправлено!</div>' ;
}
} else {
2022-06-06 21:30:34 +00:00
2023-08-28 11:23:41 +00:00
//Получаем сообщения о б ошибках в виде строки
$message = $validator -> get_string_errors ();
2022-06-06 21:30:34 +00:00
2023-08-28 11:23:41 +00:00
//Получаем сообщения о б ошибках в виде массива
$errors = $validator -> get_array_errors ();
2022-06-06 21:30:34 +00:00
}
2023-08-28 11:23:41 +00:00
?>
<! DOCTYPE HTML PUBLIC " -//W3C//DTD HTML 4.01 Transitional//EN " " http://www.w3.org/TR/html4/loose.dtd " >
< html lang = " ru " >
< head >
< meta http - equiv = " Content-Type " content = " text/html; charset=utf-8 " >
< title > Форма обратной связи с Администрацией проекта «Бойцовский клуб» </ title >
< meta name = " description " content = " Здесь Вы можете обратиться к Администрации Бойцовского клуба, с просьбой решения технического характера ⭐ связанной с нашей игрой " />
< style type = " text/css " >
<!--
body {
font : 100 % Verdana , Arial , Helvetica , sans - serif ;
background : #666666;
margin : 0 ;
padding : 0 ;
text - align : center ;
color : #000000;
}
. oneColFixCtrHdr #container {
width : 780 px ;
background : #FFFFFF;
margin : 15 px auto ;
border : 1 px solid #000000;
text - align : left ;
}
. oneColFixCtrHdr #mainContent {
padding : 0 20 px ;
background : #FFFFFF;
position : relative ;
}
. oneColFixCtrHdr #footer {
padding : 0 10 px ;
background : #DDDDDD;
}
. oneColFixCtrHdr #footer p {
margin : 0 ;
padding : 10 px 0 ;
}
form . form {
width : 600 px ;
margin : 0 auto ;
}
form . form div {
padding : 4 px ;
margin : 4 px 0 ;
position : relative ;
}
form . form input . text ,
. textarea {
padding : 5 px 10 px ;
height : 20 px ;
border : 1 px solid #ddd;
color : #333;
position : relative ;
z - index : 2 ;
font - size : 16 px ;
}
form . form input . text {
width : 290 px ;
}
form . form . textarea {
height : 150 px ;
width : 290 px ;
}
form . form label {
float : left ;
width : 120 px ;
text - align : right ;
margin - right : 15 px ;
font - weight : bold ;
color : #666;
font - size : 13 px ;
}
form . form . btn {
display : block ;
height : 31 px ;
padding : 0 10 px ;
color : #565e62;
font - weight : bold ;
font - size : 12 px ;
border : 1 px solid #e1e0df;
outline : none ;
cursor : pointer ;
}
/* CSS3 */
form . form . btn ,
form . form . text ,
form . form . textarea {
- moz - border - radius : 8 px ;
- webkit - border - radius : 8 px ;
border - radius : 8 px ;
}
div . error_field {
background : #FEDAFB;
border : 1 px solid #FA74F0;
}
div . errors {
width : 580 px ;
margin : 15 px auto ;
padding : 10 px ;
border : 1 px solid #ccc;
background : #FDFEC2;
}
div . errors . error {
color : red ;
font - weight : bold ;
font - size : 12 px ;
margin : 5 px ;
}
-->
</ style >
</ head >
< body class = " oneColFixCtrHdr " >
2022-06-06 21:30:34 +00:00
2023-08-28 11:23:41 +00:00
< div id = " container " >
2022-06-06 21:30:34 +00:00
2023-08-28 11:23:41 +00:00
< div id = " mainContent " >
< p style = " font-weight: bold; " > Заполните контактную форму и мы свяжемся с вами в ближайшее время , чтобы сообщить о б устранении неисправностей .</ p >
2022-06-06 21:30:34 +00:00
2023-08-28 11:23:41 +00:00
< ? = ( ! empty ( $message )) ? '<div class="errors">' . $message . '</div>' : '' ?>
< form action = " " method = " post " class = " form " >
< div < ? = ( ! empty ( $errors [ 'user_name' ])) ? 'class="error_field"' : '' ; ?> >
< label > Ваш ник в игре :</ label >
< input type = " text " class = " text " name = " user_name " value = " <?= $validator->postdata ('user_name'); ?> " />
</ div >
2022-06-06 21:30:34 +00:00
2023-08-28 11:23:41 +00:00
< div < ? = ( ! empty ( $errors [ 'user_email' ])) ? 'class="error_field"' : '' ; ?> >
< label > Ваш e - mail адрес :</ label >
< input type = " text " class = " text " name = " user_email " value = " <?= $validator->postdata ('user_email'); ?> " />
</ div >
2022-06-06 21:30:34 +00:00
2023-08-28 11:23:41 +00:00
< div < ? = ( ! empty ( $errors [ 'user_url' ])) ? 'class="error_field"' : '' ; ?> >
< label > URL Info персонажа :</ label >
< input type = " text " class = " text " name = " user_url " value = " <?= $validator->postdata ('user_url'); ?> " />
</ div >
2022-06-06 21:30:34 +00:00
2023-08-28 11:23:41 +00:00
< div < ? = ( ! empty ( $errors [ 'subject' ])) ? 'class="error_field"' : '' ; ?> >
< label > Тема обращения :</ label >
< input type = " text " class = " text " name = " subject " value = " <?= $validator->postdata ('subject'); ?> " />
</ div >
2022-06-06 21:30:34 +00:00
2023-08-28 11:23:41 +00:00
< div class = " area<?= (!empty( $errors['text'] )) ? ' error_field' : ''; ?> " >
< label > Суть обращения :</ label >
< textarea cols = " 40 " class = " textarea " rows = " 5 " name = " text " >< ? = $validator -> postdata ( 'text' ); ?> </textarea>
</ div >
2022-06-06 21:30:34 +00:00
2023-08-28 11:23:41 +00:00
< div < ? = ( ! empty ( $errors [ 'keystring' ])) ? 'class="error_field"' : '' ; ?> >
< label class = " captcha " > Введите цифры изображенные на картинке :</ label >
< div class = " capth_images " >
< ? php $security -> width ( 100 ) -> height ( 30 ) -> newImage ();
$_SESSION [ 'keystring' ] = $security -> getSum (); ?>
</ div >
< input type = " text " class = " text " name = " keystring " value = " " />
</ div >
2022-06-06 21:30:34 +00:00
2023-08-28 11:23:41 +00:00
< div >
< label >& nbsp ; </ label >
< input type = " submit " class = " btn " value = " Отправить сообщение " />
</ div >
</ form >
</ div >
2022-06-06 21:30:34 +00:00
</ div >
</ body >
</ html >