Обработчик формы построен по тому же принципу что и обычная форма отправки на 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");
}