Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > Общие вопросы Web
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.03.2018, 22:41   #1
Concept2
Новичок
Джуниор
 
Регистрация: 16.03.2018
Сообщений: 1
По умолчанию Добавить в одну из форм возможность прикреплять файл

Всем здравствуйте! Прошу помощи! Заранее извиняюсь перед раздражительными профессионалами за "элементарный и банальный" вопрос.
Проблема в следующем. На лэнде расположено несколько форм. Возникла необходимость к одной из них добавить возможность прикрепить файл.
Сейчас без файла все работает так.
Пример формы:
Код:
<form action="" method="post">
    	<input type="hidden" class="type" value="zamer" name="type">
    	<input class="name" name="name" type="text" placeholder="Ваше имя">
    	<input class="tel" name="tel" type="text" minlength="13">
        <input type="file" name="file" id="file">
    	<button>ОСТАВИТЬ ЗАЯВКУ</button>	      			
    </form>
Часть скрипта:
Код:
$('form').submit(function(e){
	    e.preventDefault();
		var form_data = {
			'name':$(".name", $(this)).val(),
			'tel':$(".tel", $(this)).val(),
			'square':$("#square", $(this)).val(),
			'type':$(".type", $(this)).val(),
		};
		$.ajax({
		  type: "POST",
		  url: "mail.php",
		  data: form_data,
		  success: function(){
		    $('.modal').modal('hide');
		    setTimeout(function() {
		    	$('.success').fadeToggle();
		    }, 1000);
		    setTimeout(function() {
		    	$('.success').fadeToggle();
		    }, 2500);
		  },
		  error: function() {
		  	alert("Произошла какая то ошибка!");
		  }
		}); 
	});
И, собственно, mail.php
Код:
<?php

    if ($_SERVER["REQUEST_METHOD"] == "POST") {
        if (isset($_POST['name'])) {$name = $_POST['name'];}
        if (isset($_POST['tel'])) {$phone = $_POST['tel'];}
        if (isset($_POST['square'])) {$square = $_POST['square'];}

     $to = "mail@mail.ru";/ 
     $subject = "Сообщение с лендинга site.ru";
     $subject = "=?utf-8?B?".base64_encode($subject)."?="; 
     $message = '
         <h3>Сообщение с лендинга site.ru</h3>
    	 <p>Площадь кухни:<b> '.$square.'</b></p>
        <p>Имя отправителя:<b> '.$name.'</b></p>
        <p>Телефон: <b>'.$phone.'</b></p>';

    $headers .= 'from: mail@kuhni.alanmebel.by' . "\r\n";
    $headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
    if(mail($to, $subject, $message, $headers)){	
       exit("Спасибо за заказ");				 					 
    }		 
    }	 
    ?>
Я уже "Все мозги разбил на части, все извилины заплел", как пел Высоцкий.
Что и где нужно написать, чтобы файл пришел на почту?
HELP!
Я сам не программист и все делал наугад. Помогите!
Огромная просьба не давать ссылок. Напишите, пожалуйста, по возможности подробно, как для "полного чайника!
Concept2 вне форума Ответить с цитированием
Старый 16.03.2018, 22:57   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Сообщение от Concept2 Посмотреть сообщение
Напишите, пожалуйста, по возможности подробно, как для "полного чайника!
Тут нет телепатов, надо отладкой заниматься.

Цитата:
Сообщение от Concept2 Посмотреть сообщение
Огромная просьба не давать ссылок.
Держи
http://phpfaq.ru/debug

Вообще я б использовал сервис (API) типа Mailgun, это обычно проще и надежнее.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 16.03.2018, 22:59   #3
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,150
По умолчанию

сам не токарь - точил -пока пальцев 4 на двух руках не стало )))))
юзай готовые библы - phpmailer или swiftmailer
ADSoft вне форума Ответить с цитированием
Старый 22.03.2018, 00:13   #4
СтудПом
Форумчанин
 
Регистрация: 08.11.2017
Сообщений: 347
По умолчанию

Начнём с того, что форма без enctype работает как application/x-www-form-urlencoded. Для отправки файлов нужен enctype="multipart/form-data".

На счёт обработчика БМП, они хоть и могут быть в одном флаконе, но логика разбора форм с файлами принципиально отличается от разбора application/x-www-form-urlencoded.
СтудПом вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавить возможность ввода количества лет tisit Помощь студентам 1 25.01.2015 21:23
Добавить в тотализатор возможность делать ставки. Николай1 Помощь студентам 0 21.11.2011 18:11
Как добавить одну страницу в другую Nitr JavaScript, Ajax 1 13.03.2011 00:26
Добавить только одну строчку, а не все hozey Общие вопросы Delphi 3 14.05.2010 18:12
Много форм в проекте. Как открыть одну из другой? TwiX Общие вопросы Delphi 7 25.08.2009 21:59