Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


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

Всем здравствуйте! Прошу помощи! Заранее извиняюсь перед раздражительными профессионалами за "элементарный и банальный" вопрос.
Проблема в следующем. На лэнде расположено несколько форм. Возникла необходимость к одной из них добавить возможность прикрепить файл.
Сейчас без файла все работает так.
Пример формы:
Код:

<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, 23:57   #2
Alex11223
Модератор
Заслуженный модератор
 
Регистрация: 12.01.2011
Сообщений: 16,990
Репутация: 3316

icq: 512-765
skype: alexp.frl
По умолчанию

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

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

Вообще я б использовал сервис (API) типа Mailgun, это обычно проще и надежнее.
Alex11223 вне форума   Ответить с цитированием
Старый 16.03.2018, 23:59   #3
ADSoft
Профессионал
 
Регистрация: 25.02.2007
Адрес: Татарстан
Сообщений: 3,249
Репутация: 912

icq: 303-206-418
skype: ad-soft.info
По умолчанию

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

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

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


05:45.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru