Не могу отправить два прикрепленных файла с разных input-ов phpmailer
Вот код для отправки письма:
<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require 'PHPMailer/src/Exception.php';
require 'PHPMailer/src/PHPMailer.php';
require 'PHPMailer/src/SMTP.php';
$message = '';
function clean_text($string)
{
$string = trim($string);
$string = stripslashes($string);
$string = htmlspecialchars($string);
return $string;
}
$mail = new PHPMailer;
$mail->CharSet = "utf-8";
try
{
if(isset($_POST["submit"]))
{
$user_photo = 'uploads/' . $_FILES["photo_scan"]["photo"];
$user_passport_scan = 'uploads/' . $_FILES["passport_scan"]["passport"];
move_uploaded_file($_FILES["photo_scan"]["photo"], $user_photo);
move_uploaded_file($_FILES["passport_scan"]["passport"], $user_passport_scan);
$message = '
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<h3 align="center">Заявка с сайта tulpantravel.ru</h3>
<table border="1" width="100%" cellpadding="5" cellspacing="5">
<tr>
<td width="30%">ФИО</td>
<td width="70%">' . $_POST["user_fullname"] . '</td>
</tr>
<tr>
<td width="30%">Пол</td>
<td width="70%">' . $_POST['user_gender'] . '</td>
</tr>
<tr>
<td width="30%">Номер телефона</td>
<td width="70%">' . $_POST["user_phone"] . '</td>
</tr>
<tr>
<td width="30%">Электронная почта</td>
<td width="70%">' . $_POST["user_email"] . '</td>
</tr>
<tr>
<td width="30%">Место работы</td>
<td width="70%">' . $_POST["user_workplace"] . '</td>
</tr>
</table>
';
$mail->IsSMTP();
$mail->Host = 'smtp.mail.ru';
$mail->Port = '465';
$mail->SMTPAuth = true;
$mail->Username = '***********************';
$mail->Password = '************************';
$mail->SMTPSecure = 'ssl';
$mail->From = '******************************';
$mail->FromName = '***********';
$mail->AddAddress('************', '******');
$mail->IsHTML(true);
$mail->AddAttachment($user_photo);
$mail->AddAttachment($user_passport_scan);
$mail->Subject = 'Заявка с сайта';
$mail->Body = $message;
if($mail->Send())
{
$message = '<div class="alert alert-success">Заявка успешно отправлена</div>';
unlink($user_photo);
unlink($user_passport_scan);
}
else
{
$message = '<div class="alert alert-danger">Произошла ошибка при отправке заявки</div>';
}
}
}
catch (Exception $error)
{
echo 'Произошла ошибка при отправке запроса: ' . $mail->ErrorInfo;
}
finally
{
header('location: ../../../../index.php');
}
Вот форма:
<form method="post" action="<?php echo get_template_directory_uri() . '/template-parts/mail.php'; ?>" enctype="multipart/form-data">
<div class="form-group">
<label>ФИО</label>
<input type="text" name="user_fullname" class="form-control" required/>
</div>
<div class="form-group">
<label>Пол</label>
<select name="user_gender" class="form-control">
<option value="Мужской">Мужской</option>
<option value="Женский">Женский</option>
</select>
</div>
<div class="form-group">
<label>Номер телефона</label>
<input type="text" name="user_phone" class="form-control" pattern="\d*" required/>
</div>
<div class="form-group">
<label>Эл. почта</label>
<input type="email" name="user_email" class="form-control" required/>
</div>
<div class="form-group">
<label>Место работы</label>
<input type="text" name="user_workplace" class="form-control" required/>
</div>
<div class="form-group">
<label>Загрузить фото</label>
<input type="file" name="photo_scan" required/>
</div>
<div class="form-group">
<label>Загрузить скан паспорта</label>
<input type="file" name="passport_scan" required/>
</div>
<div class="form-group" align="center">
<input type="submit" name="submit" value="Отправить заявку" class="btn btn-info" />
</div>
</form>
Проблема заключается в том что данные с текстовых полей отправляются и отображаются в письме, но прикрепленные файле нет, будто их вообще не отправляли, уже два дня сижу ничего в голову не приходит, много гуглил но толку от этого не стало
Ответы (1 шт):
Автор решения: MidNightElf
→ Ссылка
Заменить:
$user_photo = 'uploads/' . $_FILES["photo_scan"]["photo"];
$user_passport_scan = 'uploads/' . $_FILES["passport_scan"]["passport"];
move_uploaded_file($_FILES["photo_scan"]["photo"], $user_photo);
move_uploaded_file($_FILES["passport_scan"]["passport"], $user_passport_scan);
На:
$user_photo = 'uploads/' . $_FILES["photo_scan"]["name"];
$user_passport_scan = 'uploads/' . $_FILES["passport_scan"]["name"];
move_uploaded_file($_FILES["photo_scan"]["tmp_name"], $user_photo);
move_uploaded_file($_FILES["passport_scan"]["tmp_name"], $user_passport_scan);