За последние 24 часа нас посетили 7744 программиста и 446 роботов. Сейчас ищут 90 программистов ...

Помогите немного разобраться с формой

Тема в разделе "PHP для новичков", создана пользователем FCSM, 2 май 2017.

  1. FCSM

    FCSM Новичок

    С нами с:
    11 апр 2017
    Сообщения:
    9
    Симпатии:
    0
    Всех приветствую!
    Сразу скажу, что я практически не разбираюсь в PHP, поэтому делаю методом тыка.

    Теперь к сути.
    Есть форма с возможностью отправки вложения. Вернее сказать было две формы : одна была обычная, другая только с отправкой вложения. Я их попытался совместить, чтобы было всё по красоте, но чёт не вышло.

    Вот код формы, через которую можно отправлять только вложение
    PHP:
    1. <?php
    2. ini_set('display_errors', 1);
    3. if(isset($_FILES) && (bool) $_FILES) {
    4.  
    5.     $allowedExtensions = array("pdf","doc","docx","gif","jpeg","jpg","png","rtf","txt");
    6.    
    7.     $files = array();
    8.     foreach($_FILES as $name=>$file) {
    9.         $file_name = $file['name'];
    10.         $temp_name = $file['tmp_name'];
    11.         $file_type = $file['type'];
    12.         $path_parts = pathinfo($file_name);
    13.         $ext = $path_parts['extension'];
    14.         if(!in_array($ext,$allowedExtensions)) {
    15.             die("File $file_name has the extensions $ext which is not allowed");
    16.         }
    17.         array_push($files,$file);
    18.     }
    19.    
    20.     // email fields: to, from, subject, and so on
    21.     $to = "mail.ru";
    22.     $from = "gmail.com";
    23.     $subject ="test attachment";
    24.     $message = "test message";
    25.     $headers = "From: $from";
    26.    
    27.    
    28.  
    29.     // boundary
    30.     $semi_rand = md5(time());
    31.     $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
    32.    
    33.     // headers for attachment
    34.     $headers .= "\nMIME-Version: 1.0\n" . "Content-Type: multipart/mixed;\n" . " boundary=\"{$mime_boundary}\"";
    35.    
    36.     // multipart boundary
    37.     $message = "This is a multi-part message in MIME format.\n\n" . "--{$mime_boundary}\n" . "Content-Type: text/plain; charset=\"iso-8859-1\"\n" . "Content-Transfer-Encoding: 7bit\n\n" . $message . "\n\n";
    38.     $message .= "--{$mime_boundary}\n";
    39.    
    40.     // preparing attachments
    41.     for($x=0;$x<count($files);$x++){
    42.         $file = fopen($files[$x]['tmp_name'],"rb");
    43.         $data = fread($file,filesize($files[$x]['tmp_name']));
    44.         fclose($file);
    45.         $data = chunk_split(base64_encode($data));
    46.         $name = $files[$x]['name'];
    47.         $message .= "Content-Type: {\"application/octet-stream\"};\n" . " name=\"$name\"\n" .
    48.         "Content-Disposition: attachment;\n" . " filename=\"$name\"\n" .
    49.         "Content-Transfer-Encoding: base64\n\n" . $data . "\n\n";
    50.         $message .= "--{$mime_boundary}\n";
    51.     }
    52.     // send
    53.    
    54.     $ok = mail($to, $subject, $message, $headers);
    55.     if ($ok) {
    56.         echo "<p>mail sent to $to!</p>";
    57.     } else {
    58.         echo "<p>mail could not be sent!</p>";
    59.     }
    60. }  
    61. ?>
    Как можно сделать, чтобы она ещё отправляла помимо вложения : имя, почту и сообщение которое напишет пользователь ?

    Выручайте!
     
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    6.867
    Симпатии:
    1.101
    Адрес:
    Лень
    что за мануал, литература вы читаете ? ссылочку

    https://php.ru/manual/function.mail.html
    $message - содержимое сообщения.
    подставляете приходимые данные GET или POST как там у вас в $message

    надеюсь скрипт не для публичной работы
    --- Добавлено ---
    Это ты тупо взял с инета код и запостил сюда дабы мы разобрались за тебя ?
    --- Добавлено ---
    не верю