@L1nw0od

Отправка файлв на почту через форму?

Здравствуйте, есть рабочая форма, данные на почту высылает с прикрепленным файлом все как нужно. Не знаю как сделать чтоб мог добавить не одно фото а 3 фото (в разных инпутах чтоб были).
Одно отправляет все как нужно, а как сделать несколько чтоб можно было отправлять без понятия (
<form action="#" method="post" id="sendform" enctype="multipart/form-data">
	<fieldset>
		<h3>Форма заказа</h3>
		<p>
			<label>Имя*:</label>
			<input name="name" value="" size="40" type="text" class="required" />
		</p>

		<p>	
			<label>Контактный номер*:</label>
			<input name="tel" value="" size="40" class="required" type="tel" />
		</p>

		<p>
			<label>E-mail:</label>
			<input name="email" value="" size="40" type="email" />
		</p>
        

		<p>
			<label>Описание заказа:</label>
			<textarea name="message" cols="40" rows="10" /> </textarea>
		</p>

		<p>
			<label>Прикрепить файл:</label>
			<input name="file" value="1" size="40" type="file" />
		</p>

		<input value="Отправить" name="sendMail" type="submit" />
	</fieldset>
</form>

<?php
$to = 'mail@gmail.com';


if ( isset( $_POST['sendMail'] ) ) {
  $name  = substr( $_POST['name'], 0, 64 );
  $familiya  = substr( $_POST['familiya'], 0, 64 );
  $strana  = substr( $_POST['strana'], 0, 64 );
  $gorod  = substr( $_POST['gorod'], 0, 64 );
  $tel = substr( $_POST['tel'], 0, 64 );
  $email   = substr( $_POST['email'], 0, 64 );
  $interes   = substr( $_POST['interes'], 0, 64 );
  $message = substr( $_POST['message'], 0, 250 );
 

  if ( !empty( $_FILES['file']['tmp_name'] ) and $_FILES['file']['error'] == 0 ) {
    $filepath = $_FILES['file']['tmp_name'];
    $filename = $_FILES['file']['name'];
  } else {
    $filepath = '';
    $filename = '';
  }
 
  $body = "Имя:\r\n".$name."\r\n\r\n";
  $body .= "Фамилия:\r\n".$familiya."\r\n\r\n";
  $body .= "Страна:\r\n".$strana."\r\n\r\n";
  $body .= "Город:\r\n".$gorod."\r\n\r\n";
  $body .= "Контактный номер:\r\n".$tel."\r\n\r\n";
  $body .= "Интерес:\r\n".$interes."\r\n\r\n";
  $body .= "E-mail:\r\n".$email."\r\n\r\n";
  $body .= "Описание заказа:\r\n".$message;
 
  send_mail($to, $body, $email, $filepath, $filename);

}




// Вспомогательная функция для отправки почтового сообщения с вложением
function send_mail($to, $body, $email, $filepath, $filename)
{
  $subject = 'ФОТОСТРАНА - РЕГИСТРАЦИИ ФОТО';
  $boundary = "--".md5(uniqid(time())); // генерируем разделитель
  $headers = "From: ".$email."\r\n";   
  $headers .= "MIME-Version: 1.0\r\n";
  $headers .="Content-Type: multipart/mixed; boundary=\"".$boundary."\"\r\n";
  $multipart = "--".$boundary."\r\n";
  $multipart .= "Content-type: text/plain; charset=\"utf-8\"\r\n";
  $multipart .= "Content-Transfer-Encoding: quoted-printable\r\n\r\n";

  $body = $body."\r\n\r\n";
 
  $multipart .= $body;
 
  $file = '';
  if ( !empty( $filepath ) ) {
    $fp = fopen($filepath, "r");
    if ( $fp ) {
      $content = fread($fp, filesize($filepath));
      fclose($fp);
      $file .= "--".$boundary."\r\n";
      $file .= "Content-Type: application/octet-stream\r\n";
      $file .= "Content-Transfer-Encoding: base64\r\n";
      $file .= "Content-Disposition: attachment; filename=\"".$filename."\"\r\n\r\n";
      $file .= chunk_split(base64_encode($content))."\r\n";
    }
  }
  $multipart .= $file."--".$boundary."--\r\n";
	mail($to, $subject, $multipart, $headers);
}
?>
  • Вопрос задан
  • 51 просмотр
Пригласить эксперта
Ответы на вопрос 1
TTATPuOT
@TTATPuOT
https://code.patriotovsky.ru/
Используйте лучше для этих целей PHPMailer. Там это сделано удобно и просто.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы