2016-07-02 11 views
0

Kann mir jemand helfen? Ich habe diesen Stecker, von hier: https://github.com/agragregra/uniMail Es ist perfekt, aber es unterstützt keine Dateianlage in Form, nur Texteingaben. Hier CodeDateianhang zum Plugin hinzufügen

$("form").submit(function() { //Change 
    var th = $(this); 
    $.ajax({ 
     type: "POST", 
     url: "mail.php", //Change 
     data: th.serialize() 
    }).done(function() { 
     alert("Thank you!"); 
     setTimeout(function() { 
      // Done Functions 
      th.trigger("reset"); 
     }, 1000); 
    }); 
    return false; 
}); 

und ofcourse Code von mail.php

<?php 

$method = $_SERVER['REQUEST_METHOD']; 

//Script Foreach 
$c = true; 
if ($method === 'POST') { 

    $project_name = trim($_POST["project_name"]); 
    $admin_email = trim($_POST["admin_email"]); 
    $form_subject = trim($_POST["form_subject"]); 
    $inp = trim($_POST["summary_file"]); 


    foreach ($_POST as $key => $value) { 
     if ($value != "" && $key != "project_name" && $key != "admin_email" && $key != "form_subject") { 
      $message .= " 
      " . (($c = !$c) ? '<tr>':'<tr style="background-color: #f8f8f8;">') . " 
      <td style='padding: 10px; border: #e9e9e9 1px solid;'><b>$key</b></td> 
      <td style='padding: 10px; border: #e9e9e9 1px solid;'>$value</td> 
     </tr> 
     "; 
    } 
} 
} else if ($method === 'GET') { 

    $project_name = trim($_GET["project_name"]); 
    $admin_email = trim($_GET["admin_email"]); 
    $form_subject = trim($_GET["form_subject"]); 


    foreach ($_GET as $key => $value) { 
     if ($value != "" && $key != "project_name" && $key != "admin_email" && $key != "form_subject") { 
      $message .= " 
      " . (($c = !$c) ? '<tr>':'<tr style="background-color: #f8f8f8;">') . " 
      <td style='padding: 10px; border: #e9e9e9 1px solid;'><b>$key</b></td> 
      <td style='padding: 10px; border: #e9e9e9 1px solid;'>$value</td> 
     </tr> 
     "; 
    } 
} 
} 

$message = "<table style='width: 100%;'>$message</table>"; 

function adopt($text) { 
    return '=?UTF-8?B?'.base64_encode($text).'?='; 
} 

$headers = "MIME-Version: 1.0" . PHP_EOL . 
"Content-Type: text/html; charset=utf-8" . PHP_EOL . 
'From: '.adopt($project_name).' <'.$admin_email.'>' . PHP_EOL . 
'Reply-To: '.$admin_email.'' . PHP_EOL; 

mail($admin_email, adopt($form_subject), $message, $headers); 

Antwort

0

3 Schritten: HTML, PHP & Mail

Dieser Code kann nicht einfach Dateianhänge hinzuzufügen angepasst werden. Sie müssen drei Schritte implementieren:

Hinzufügen von Dateieingaben zu einem HTML-Formular ist ziemlich einfach. Sie können Beispiele überall im Internet finden. Dies kann unmöglich ein Stolperstein sein.

Steuerung von Dateiuploads in PHP kann etwas Trickly sein, ist aber im Handbuch erklärt: http://php.net/manual/en/features.file-upload.php

Ihr Code verwendet die mail() Funktion, die recht einfach ist. Sie müssen eine mehrteilige E-Mail verschlüsseln, die, wenn Sie dies schwierig finden, über Ihre Fähigkeiten hinausgeht. Sie verwenden besser etwas wie PHPMailer (https://github.com/PHPMailer/PHPMailer), das, ob Sie es glauben oder nicht, macht es viel einfacher.

Sobald Sie diese drei Dinge kombinieren, können Sie mit Dateien arbeiten. Ich denke, es ist jenseits von Stack Overflow, all diese Arbeit für Sie zu erledigen. Wenn Sie es nicht selbst tun können, können Sie jemanden einstellen, um dies für Sie zu tun.

Verwandte Themen