Форма отправки файлов на email

11 Марта 2016
php

Обработчик формы построен по тому же принципу что и обычная форма отправки на email, за исключением загрузки файла. В данном обработчике файл загружается в папкуfileи отправляет на email ссылку на файл

Сама форма:

<form action="/file_mail.php" method="POST" enctype=multipart/form-data>
	<input type="text" name="name" placeholder="Представьтесь" required/>
	<input type="text" name="phone" placeholder="Ваш телефон" required/>
	<input type="text" name="email" placeholder="Ваш email" required/>
	<textarea name="text" placeholder="Описание" required/></textarea>
	<input type="file" name="file"/>
	<input type="submit" value="Отправить"/>
</form>

Обработчикfile_mail.php:

$ to="mail@kakorin.com";
$ name=strip_tags($ _POST["name"]);
$ phone=strip_tags($ _POST["phone"]);
$ email=strip_tags($ _POST["email"]);
$ text=strip_tags($ _POST["text"]);


$ file=preg_replace('/\s/', '',$ _POST["file"]);
if(strpos($ _FILES["file"]["name"],".php")===FALSE){ 
    if($ _FILES["file"]["size"]<(1024*1024*40)){ 
        $ new_name=date(d.m.Y).'_'.rand(0,999999).'_';
        if(is_uploaded_file($ _FILES["file"]["tmp_name"])){ 
            move_uploaded_file($ _FILES["file"]["tmp_name"],"file/".$ new_name.$ _FILES["file"]["name"]);
            $ file='<a href="'.$ _SERVER['SERVER_NAME'].'/file/'.$ new_name.$ _FILES["file"]["name"].'">'.$ _SERVER['SERVER_NAME'].'/file/'.$ new_name.$ _FILES["file"]["name"].'</a>';
        } else{ 
            $ file='Ошибка загрузки файла';
        } 
    } else{ 
        $ file='Файл не был загружен (загружаемый файл весил более 40 Мб)';
    } 
} else{ 
    $ file='Файл не был загружен (загружаемый файл являлся файлом формата .php)';
} 

$ header="From: \"Заявка с сайта\" <mail@kakorin.com> \r\n";
$ header.='Content-type: text/html; charset="utf-8"';
$ subject="Заявка с сайта";

$ content="
<!DOCTYPE html>
	<html>
		<body>
		    Имя: ".$ name." 
			<br> 
		    Телефон: ".$ phone."
			<br>
		    Emal: ".$ email."
			<br>
		    Сообщение: ".$ text."
			<br>
		    Файл: ".$ file."
			<br>
		    Cо страницы ".$ _SERVER['HTTP_REFERER']."
		</body>
	</html>
";


if($ name!=null and $ phone!=null){ 
	mail($ to,$ subject,$ content,$ header);
	header("location:".$ _SERVER['HTTP_REFERER']."?er=ok");
} else{ 
	header("location:".$ _SERVER['HTTP_REFERER']."?er=er");
}