game/support/index.php
2023-08-28 14:24:59 +03:00

306 lines
10 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
use Captcha\Captcha;
session_start();
require_once 'validator.php';
require_once '../_incl_data/class/Captcha/Captcha.php';
$validator = new Validator();
$validator->set_error_delimiters('<div class="error">', '</div>');
$security = new Captcha();
//Задаем правила валидации
$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]' => 'Вы ввели не правильный цифры с картинки',
],
],
];
//Устанавливаем правила валидации
$validator->set_rules($rules);
$message = '';
//Запускаем валидацию POST данных
if ($validator->run()) {
//Здесь впишите свой e-mail адрес
//на негу будут приходить уведомления с формы
$to = 'support@new-combats.com';
$from = "=?UTF-8?b?" . base64_encode($validator->postdata('user_name')) . "?=";
$subject = "=?UTF-8?b?" . base64_encode($validator->postdata('subject')) . "?=";
$mail_body = "Поступил новый ответ от формы обратной связи.\r\nАвтор оставил такие данные:\r\n";
//Формируем текст сообщения
foreach ($rules as $rule) {
if ($rule['field'] == 'keystring') {
continue;
}
$mail_body .= $rule['label'] . ': ' . $validator->postdata($rule['field']) . "\r\n";
}
$header = "MIME-Version: 1.0\n";
$header .= "Content-Type: text/plain; charset=UTF-8\n";
$header .= "From: " . $from . " <" . $validator->postdata('user_email') . ">";
//Отправка сообщения
if (mail($to, $subject, $mail_body, $header)) {
$message = '<div class="error">Ваше сообщение успешно отправлено!</div>';
//Очищаем форму обратной связи
$validator->reset_postdata();
} else {
$message = '<div class="error">Ваше сообщение не отправлено!</div>';
}
} else {
//Получаем сообщения об ошибках в виде строки
$message = $validator->get_string_errors();
//Получаем сообщения об ошибках в виде массива
$errors = $validator->get_array_errors();
}
?>
<!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">
<div id="container">
<div id="mainContent">
<p style="font-weight: bold;">Заполните контактную форму и мы свяжемся с вами в ближайшее время, чтобы сообщить об устранении неисправностей.</p>
<?= (!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>
<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>
<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>
<div <?= (!empty($errors['subject'])) ? 'class="error_field"' : ''; ?>>
<label>Тема обращения:</label>
<input type="text" class="text" name="subject" value="<?= $validator->postdata('subject'); ?>"/>
</div>
<div class="area<?= (!empty($errors['text'])) ? ' error_field' : ''; ?>">
<label>Суть обращения:</label>
<textarea cols="40" class="textarea" rows="5" name="text"><?= $validator->postdata('text'); ?></textarea>
</div>
<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>
<div>
<label>&nbsp;</label>
<input type="submit" class="btn" value="Отправить сообщение"/>
</div>
</form>
</div>
</div>
</body>
</html>