Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <script>
- document.getElementById('feedback-form').addEventListener('submit', function(evt){
- var http = new XMLHttpRequest(), f = this;
- evt.preventDefault();
- http.open("POST", "contacts.php", true);
- http.onreadystatechange = function() {
- if (http.readyState == 4 && http.status == 200) {
- alert(http.responseText);
- if (http.responseText.indexOf(f.nameFF.value) == 0) { // очистить поле сообщения, если в ответе первым словом будет имя отправителя
- f.messageFF.removeAttribute('value');
- f.messageFF.value='';
- }
- }
- }
- http.onerror = function() {
- alert('Извините, данные не были переданы');
- }
- http.send(new FormData(f));
- }, false);
- </script>
- <?php
- if (isset ($_POST['contactFF'])) {
- $to = "killtobanana@gmail.com"; // поменять на свой электронный адрес
- $from = $_POST['contactFF'];
- $subject = "Заполнена контактная форма с ".$_SERVER['HTTP_REFERER'];
- $message = "Имя: ".$_POST['nameFF']."\nТелефон: ".$_POST['phoneFF']."\nEmail: ".$from."\nСообщение: ".$_POST['messageFF'];
- $boundary = md5(date('r', time()));
- $filesize = '';
- $headers = "MIME-Version: 1.0\r\n";
- $headers .= "From: " . $from . "\r\n";
- $headers .= "Reply-To: " . $from . "\r\n";
- $headers .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n";
- $message="
- Content-Type: multipart/mixed; boundary=\"$boundary\"
- --$boundary
- Content-Type: text/plain; charset=\"utf-8\"
- Content-Transfer-Encoding: 7bit
- $message";
- for($i=0;$i<count($_FILES['fileFF']['name']);$i++) {
- if(is_uploaded_file($_FILES['fileFF']['tmp_name'][$i])) {
- $attachment = chunk_split(base64_encode(file_get_contents($_FILES['fileFF']['tmp_name'][$i])));
- $filename = $_FILES['fileFF']['name'][$i];
- $filetype = $_FILES['fileFF']['type'][$i];
- $filesize += $_FILES['fileFF']['size'][$i];
- $message.="
- --$boundary
- Content-Type: \"$filetype\"; name=\"$filename\"
- Content-Transfer-Encoding: base64
- Content-Disposition: attachment; filename=\"$filename\"
- $attachment";
- }
- }
- $message.="
- --$boundary--";
- if ($filesize < 10000000) { // проверка на общий размер всех файлов. Многие почтовые сервисы не принимают вложения больше 10 МБ
- mail($to, $subject, $message, $headers);
- echo $_POST['nameFF'].', Ваше сообщение получено, спасибо!';
- } else {
- echo 'Извините, письмо не отправлено. Размер всех файлов превышает 10 МБ.';
- }
- }
- ?>
- <!DOCTYPE HTML>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <title>Контактная форма</title>
- <style>
- #feedback-form { /* вся форма */
- max-width: 550px;
- padding: 2%;
- border-radius: 3px;
- background: #f1f1f1;
- }
- #feedback-form label { /* наименование полей */
- float: left;
- display: block;
- clear: right;
- }
- #feedback-form .w100 { /* поля */
- float: right;
- max-width: 400px;
- width: 97%;
- margin-bottom: 1em;
- padding: 1.5%;
- }
- #feedback-form .border { /* граница полей */
- border-radius: 1px;
- border-width: 1px;
- border-style: solid;
- border-color: #C0C0C0 #D9D9D9 #D9D9D9;
- box-shadow: 0 1px 1px rgba(255,255,255,.5), 0 1px 1px rgba(0,0,0,.1) inset;
- }
- #feedback-form .border:focus {
- outline: none;
- border-color: #abd9f1 #bfe3f7 #bfe3f7;
- }
- #feedback-form .border:hover {
- border-color: #7eb4ea #97cdea #97cdea;
- }
- #feedback-form .border:focus::-moz-placeholder { /* убрать при фокусе первоначальный текст поля */
- color: transparent;
- }
- #feedback-form .border:focus::-webkit-input-placeholder {
- color: transparent;
- }
- #feedback-form .border:not(:focus):not(:hover):valid { /* правильно заполненные поля */
- opacity: .8;
- }
- #submitFF { /* кнопка "Отправить" */
- padding: 2%;
- border: none;
- border-radius: 3px;
- box-shadow: 0 0 0 1px rgba(0,0,0,.2) inset;
- background: #669acc;
- color: #fff;
- }
- #feedback-form br {
- height: 0;
- clear: both;
- }
- #submitFF:hover {
- background: #5c90c2;
- }
- #submitFF:focus {
- box-shadow: 0 1px 1px #fff, inset 0 1px 2px rgba(0,0,0,.8), inset 0 -1px 0 rgba(0,0,0,.05);
- }
- </style>
- <div id="wrap">
- <form enctype="multipart/form-data" method="post" id="feedback-form" class="feedback-form" >
- <label for="nameFF">Имя:</label>
- <input type="text" name="nameFF" id="nameFF" required placeholder="например, Иван Иванович Иванов" x-autocompletetype="name" class="w100 border">
- <label for="contactFF">Email:</label>
- <input type="email" name="contactFF" id="contactFF" required placeholder="например, ivan@yandex.ru" x-autocompletetype="email" class="w100 border">
- <label for="fileFF">Прикрепить файл:</label>
- <input type="file" name="fileFF[]" multiple id="fileFF" class="w100">
- <label for="messageFF">Сообщение:</label>
- <textarea name="messageFF" id="messageFF" required rows="5" placeholder="Детали заявки…" class="w100 border"></textarea>
- <br>
- <input value="Отправить" type="submit" id="submitFF">
- </form>
- </div>
- <div id="wrap">
- <form enctype="multipart/form-data" method="post" id="feedback-form" class="feedback-form" >
- <label for="nameFF">Имя:</label>
- <input type="text" name="nameFF" id="nameFF" required placeholder="например, Иван Иванович Иванов" x-autocompletetype="name" class="w100 border">
- <label for="contactFF">Email:</label>
- <input type="email" name="contactFF" id="contactFF" required placeholder="например, ivan@yandex.ru" x-autocompletetype="email" class="w100 border">
- <label for="fileFF">Прикрепить файл:</label>
- <input type="file" name="fileFF[]" multiple id="fileFF" class="w100">
- <label for="messageFF">Сообщение:</label>
- <textarea name="messageFF" id="messageFF" required rows="5" placeholder="Детали заявки…" class="w100 border"></textarea>
- <br>
- <input value="Отправить" type="submit" id="submitFF">
- </form>
- </div>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement