вопрос
Здравствуйте! Нашла скрипт, переделала под себя. Но не могу понять как сделать прикрепление не одного файла, а нескольких. Что уже только не делала- не получается.
Сама форма:
Обработчик:
Все отправляется. Но приходит только один файл. А нужно 3. Подскажите пожалуйста как реализовать.
Сама форма:
<form method="post" action="phMailer.php" enctype='multipart/form-data'>
<p>Фамилия:</p>
<input type="text" name="fam" title="Введите ваше имя" required/>
<p>Имя:</p>
<input type="text" name="name" title="Введите ваше имя" required/>
<p>Отчетство:</p>
<input type="text" name="otch" required/>
<p>Дата рождения:</p>
<input type="date" name="date" required/>
<p>СНИЛС:</p>
<input type="text" name="snils" required/>
<p>Электронная почта:</p>
<input type="text" name="email" pattern="^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$" required/>
<p>Адрес регистрации по месту жительства:</p>
<input type="text" name="adres" required/>
<p>Прикрепить фото или скан СНИЛС:</p>
<input type="file" name="mail_file[]" maxlength="64">
<p>Прикрепить фото или скан паспорта:</p>
<input type="file" name="mail_file[]" maxlength="64">
<p>Прикрепить фото или скан диплома:</p>
<input type="file" name="mail_file[]" maxlength="64"><br><br>
<input type="submit" value="Отправить" />
</form>
Обработчик:
<?php
if (isset($_POST['fam'])) {$fam = $_POST['fam'];}
if (isset($_POST['name'])) {$name = $_POST['name'];}
if (isset($_POST['otch'])) {$otch = $_POST['otch'];}
if (isset($_POST['date'])) {$data = $_POST['date'];}
if (isset($_POST['snils'])) {$snils = $_POST['snils'];}
if (isset($_POST['email'])) {$email = $_POST['email'];}
if (isset($_POST['adres'])) {$adres = $_POST['adres'];}
$picture = "";
function send_mail($to, $subject, $html, $path)
{
$fp = fopen($path,"r");
if (!$fp)
{
print "Файл $path не может быть прочитан";
exit();
}
$file = fread($fp, filesize($path));
fclose($fp);
$boundary = "--".md5(uniqid(time())); // генерируем разделитель
$headers .= "MIME-Version: 1.0\n";
$headers .="Content-Type: multipart/mixed; boundary=\"$boundary\"\n";
$multipart .= "--$boundary\n";
$kod = 'utf-8'; // или $kod = 'windows-1251';
$multipart .= "Content-Type: text/html; charset=$kod\n";
$multipart .= "Content-Transfer-Encoding: Quot-Printed\n\n";
$multipart .= "$html\n\n";
$message_part = "--$boundary\n";
$message_part .= "Content-Type: application/octet-stream\n";
$message_part .= "Content-Transfer-Encoding: base64\n";
$message_part .= "Content-Disposition: attachment; filename = \"".$path."\"\n\n";
$message_part .= chunk_split(base64_encode($file))."\n";
$multipart .= $message_part."--$boundary--\n";
if(!mail($to, $subject, $multipart, $headers))
{
echo "К сожалению, письмо не отправлено";
exit();
}
}
function clear_data($vvod)
{
return trim(strip_tags($vvod));
}
$fam = clear_data($_POST['fam']);
$name = clear_data($_POST['name']);
$otch = clear_data($_POST['otch']);
$date = clear_data($_POST['date']);
$snils = clear_data($_POST['snils']);
$email = clear_data($_POST['email']);
$adres = clear_data($_POST['adres']);
$to = "$email";// Переменная to равна переменной email, т.е. файл будет отправляться на тот адрес, который будет вбит в форму.
$headers = "Content-type: text/plain; charset = utf-8";
$subject = "Заявка для ответственного по БДД";
$message = "Фамилия: $fam \nИмя: $name \nОтчетство: $otch \nДата рождения: $date \nСНИЛС: $snils \nЭлектронная почта: $email \nАдрес по месту жительства: $adres";
if (!empty($_FILES['mail_file']['tmp_name']))
{
// Закачиваем файл
$path = $_FILES['mail_file']['name'];
if (copy($_FILES['mail_file']['tmp_name'], $path)) $picture = $path;
}
if(empty($picture))
{
$send = mail ($to, $subject, $message, $headers);
if ($send == "true")
{
echo "Спасибо за отправку Вашего сообщения.<br>\n";
echo "<a href=index.html>Вернуться на страницу с описанием</a><br>\n";
}
else
{
echo "Сообщение не отправлено. Приносим свои извинения. Видимо сервер не может обработать ваше сообщение, скопируйте этот email Vasia@mail.ru и отправьте из своей почты. ";
}
}
else
{
send_mail($to, $subject, $message, $picture);
echo "Письмо отправлено!";
echo "<a href=7-Prikrepit-fail-k-forme.html>Вернуться на страницу описания</a>";
}
?>
Все отправляется. Но приходит только один файл. А нужно 3. Подскажите пожалуйста как реализовать.