<?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> </label> <input type="submit" class="btn" value="Отправить сообщение"/> </div> </form> </div> </div> </body> </html>