Изображения в аттечменте php

185
30 сентября 2017, 23:13
<?php
$name = $_POST['name'];
$age = $_POST['age'];
$tel = $_POST['tel'];
$vk = $_POST['vk'];
$whyWant = $_POST['whyWant'];
$whyYou = $_POST['whyYou'];
$markAndModel = $_POST['markAndModel'];
$answer = $_POST['answer'];
  $to = "test@test.test";
  $from = 'test@test.test';
  $subject = "Заполнена контактная форма с ".$_SERVER['HTTP_REFERER'];
  $message = "
  Имя пользователя: ".htmlspecialchars($name)."
  Телефон: ".htmlspecialchars($tel)."
  Возраст: ".htmlspecialchars($age)."
  ВК: ".htmlspecialchars($vk)."
  Ответ 1: ".htmlspecialchars($whyWant)."
  Ответ 2: ".htmlspecialchars($whyYou)."
  Марка-модель: ".htmlspecialchars($markAndModel)."
  Ответ 4: ".htmlspecialchars($answer);
  $boundary = md5(date('r', time()));
  $filesize = '';
  $headers = "MIME-Version: 1.0\r\n";
  $headers .= "From: " . $from . "\r\n";
  $headers .= "Reply-To: " . $from . "\r\n";
  $headers .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n";
  $message="
    Content-Type: multipart/mixed; boundary=\"$boundary\"
    --$boundary
    Content-Type: text/plain; charset=\"utf-8\"
    Content-Transfer-Encoding: 7bit
    $message";
  for($i=0;$i<count($_FILES['photo_input']['name']);$i++) {
     if(is_uploaded_file($_FILES['photo_input']['tmp_name'][$i])) {
         $attachment = chunk_split(base64_encode(file_get_contents($_FILES['photo_input']['tmp_name'][$i])));
         $filename = $_FILES['photo_input']['name'][$i];
         $filetype = $_FILES['photo_input']['type'][$i];
         $filesize += $_FILES['photo_input']['size'][$i];
         $message.="
        --$boundary
        Content-Type: \"$filetype\"; name=\"$filename\"
        Content-Transfer-Encoding: base64
        Content-Disposition: attachment; filename=\"$filename\"
        $attachment";
     }
   }
  $message.="
  --$boundary--";
  if ($filesize < 20000000) { 
    mail($to, $subject, $message, $headers);
    echo 'vse ok';
  } else {
    echo 'Извините, письмо не отправлено. Размер всех файлов превышает 20 МБ.';
  }

На почту приходят все данные, фотографии в виде base64 строки. Как сделать чтобы они были как прикрепленные изображения? Спасибо!

Answer 1

Умно написано... Сначала получить данные, а потом делать проверку... Ваш код не безопасный и является уязвимым, вот приблизительно то что должно находится в Вашем файле после отправки запроса.

if(isset($_POST) && !empty($_POST))
{
    // Получаем данные и обрабатываем их
    $name = htmlspecialchars($_POST['name']);
}
else
{
    //Вывод страницы 404 
}
READ ALSO
Сделать поиск по массиву php

Сделать поиск по массиву php

Доброго времени суток

264
Разбор массива php , json

Разбор массива php , json

Доброго всем времени суток! Подскажите, как можно обратиться к массиву еще на уровень глубже? Есть $data['Stats'], в нем есть еще 1 массив с таким...

227
libgcc_s_dw2-1.dll не найден

libgcc_s_dw2-1.dll не найден

Я собрал проект на Code::blocks , Но он запускается только через само IDE при попытке запустить вне IDE пишет

394