2023-08-28 14:23:41 +03:00
< ? php
2022-06-07 00:30:34 +03:00
2023-08-28 14:23:41 +03:00
use Captcha\Captcha ;
2022-06-07 00:30:34 +03:00
2023-08-28 14:23:41 +03:00
session_start ();
2022-06-07 00:30:34 +03:00
require_once 'validator.php' ;
2023-08-28 14:23:41 +03:00
require_once '../_incl_data/class/Captcha/Captcha.php' ;
2022-06-07 00:30:34 +03:00
$validator = new Validator ();
$validator -> set_error_delimiters ( '<div class="error">' , '</div>' );
2023-08-28 14:23:41 +03:00
$security = new Captcha ();
2022-06-07 00:30:34 +03:00
//Задаем правила валидации
2023-08-28 14:23:41 +03: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-07 00:30:34 +03:00
//Устанавливаем правила валидации
$validator -> set_rules ( $rules );
$message = '' ;
//Запускаем валидацию POST данных
2023-08-28 14:23:41 +03:00
if ( $validator -> run ()) {
2022-06-07 00:30:34 +03:00
2023-08-28 14:23:41 +03:00
//Здесь впишите свой e-mail адрес
//на негу будут приходить уведомления с формы
$to = 'support@new-combats.com' ;
2022-06-07 00:30:34 +03:00
2023-08-28 14:23:41 +03:00
$from = " =?UTF-8?b? " . base64_encode ( $validator -> postdata ( 'user_name' )) . " ?= " ;
$subject = " =?UTF-8?b? " . base64_encode ( $validator -> postdata ( 'subject' )) . " ?= " ;
2022-06-07 00:30:34 +03:00
2023-08-28 14:23:41 +03:00
$mail_body = " Поступил новый ответ от формы обратной связи. \r \n Автор оставил такие данные: \r \n " ;
2022-06-07 00:30:34 +03:00
2023-08-28 14:23:41 +03:00
//Формируем текст сообщения
foreach ( $rules as $rule ) {
if ( $rule [ 'field' ] == 'keystring' ) {
continue ;
}
$mail_body .= $rule [ 'label' ] . ': ' . $validator -> postdata ( $rule [ 'field' ]) . " \r \n " ;
}
2022-06-07 00:30:34 +03:00
2023-08-28 14:23:41 +03: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-07 00:30:34 +03:00
2023-08-28 14:23:41 +03:00
//Отправка сообщения
if ( mail ( $to , $subject , $mail_body , $header )) {
2022-06-07 00:30:34 +03:00
2023-08-28 14:23:41 +03:00
$message = '<div class="error">Ваше сообщение успешно отправлено!</div>' ;
2022-06-07 00:30:34 +03:00
2023-08-28 14:23:41 +03:00
//Очищаем форму обратной связи
$validator -> reset_postdata ();
} else {
$message = '<div class="error">Ваше сообщение не отправлено!</div>' ;
}
} else {
2022-06-07 00:30:34 +03:00
2023-08-28 14:23:41 +03:00
//Получаем сообщения об ошибках в виде строки
$message = $validator -> get_string_errors ();
2022-06-07 00:30:34 +03:00
2023-08-28 14:23:41 +03:00
//Получаем сообщения об ошибках в виде массива
$errors = $validator -> get_array_errors ();
2022-06-07 00:30:34 +03:00
}
2023-08-28 14:23:41 +03: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: 780px;
background: #FFFFFF;
margin: 15px auto;
border: 1px solid #000000;
text-align: left;
}
.oneColFixCtrHdr #mainContent {
padding: 0 20px;
background: #FFFFFF;
position: relative;
}
.oneColFixCtrHdr #footer {
padding: 0 10px;
background: #DDDDDD;
}
.oneColFixCtrHdr #footer p {
margin: 0;
padding: 10px 0;
}
form.form {
width: 600px;
margin: 0 auto;
}
form.form div {
padding: 4px;
margin: 4px 0;
position: relative;
}
form.form input.text,
.textarea {
padding: 5px 10px;
height: 20px;
border: 1px solid #ddd;
color: #333;
position: relative;
z-index: 2;
font-size: 16px;
}
form.form input.text {
width: 290px;
}
form.form .textarea {
height: 150px;
width: 290px;
}
form.form label {
float: left;
width: 120px;
text-align: right;
margin-right: 15px;
font-weight: bold;
color: #666;
font-size: 13px;
}
form.form .btn {
display: block;
height: 31px;
padding: 0 10px;
color: #565e62;
font-weight: bold;
font-size: 12px;
border: 1px solid #e1e0df;
outline: none;
cursor: pointer;
}
/* CSS3 */
form.form .btn,
form.form .text,
form.form .textarea {
-moz-border-radius: 8px;
-webkit-border-radius: 8px;
border-radius: 8px;
}
div.error_field {
background: #FEDAFB;
border: 1px solid #FA74F0;
}
div.errors {
width: 580px;
margin: 15px auto;
padding: 10px;
border: 1px solid #ccc;
background: #FDFEC2;
}
div.errors .error {
color: red;
font-weight: bold;
font-size: 12px;
margin: 5px;
}
-->
</style>
</head>
<body class="oneColFixCtrHdr">
2022-06-07 00:30:34 +03:00
2023-08-28 14:23:41 +03:00
<div id="container">
2022-06-07 00:30:34 +03:00
2023-08-28 14:23:41 +03:00
<div id="mainContent">
<p style="font-weight: bold;">Заполните контактную форму и мы свяжемся с вами в ближайшее время, чтобы сообщить об устранении неисправностей.</p>
2022-06-07 00:30:34 +03:00
2023-08-28 14:23:41 +03: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-07 00:30:34 +03:00
2023-08-28 14:23:41 +03: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-07 00:30:34 +03:00
2023-08-28 14:23:41 +03: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-07 00:30:34 +03:00
2023-08-28 14:23:41 +03:00
<div <?= (!empty($errors['subject'])) ? 'class="error_field"' : ''; ?>>
<label>Тема обращения:</label>
<input type="text" class="text" name="subject" value="<?= $validator->postdata('subject'); ?>"/>
</div>
2022-06-07 00:30:34 +03:00
2023-08-28 14:23:41 +03: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-07 00:30:34 +03:00
2023-08-28 14:23:41 +03: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-07 00:30:34 +03:00
2023-08-28 14:23:41 +03:00
<div>
<label> </label>
<input type="submit" class="btn" value="Отправить сообщение"/>
</div>
</form>
</div>
2022-06-07 00:30:34 +03:00
</div>
</body>
</html>