Ich habe ein einfaches Formular, das eine E-Mail mit einigen Feldern sendet und auch speichert es die Felder in. CSV-Datei.E-Mail-Feld ist leer auf PhpMail
Hier ist mein Code (HTML, jQuery, PHP)
Die Form:
<form id="request-size">
<input name="email" id="email" type="email" class="cmesgmail" placeholder="email">
<input type="hidden" name="size" id="size" value="52">
<input type="hidden" name="sku" id="sku" value="315">
<input type="hidden" name="pridpr" id="pridpr" value="849">
<input class="request-size-btn btn" value="SEND">
</form>
Die jQuery:
jQuery('.request-size-btn').live('click', function() {
jQuery.ajax({
type: "POST",
url: "https://example.com/sendmail.php",
data: jQuery('form#request-size').serializeArray(),
success: function(data) {
jQuery('.cmesg').empty();
jQuery('.cmesg').append(data);
}
});
});
});
Die PHP Sendmail:
$EmailFrom = $_REQUEST['email'];
$SKU = $_REQUEST['sku'];
$SIZE = $_REQUEST['size'];
$ID = $_REQUEST['pridpr'];
$EmailTo = "[email protected]";
$Subject = "Contact for Size";
$DATENOW = date('d/m/Y h:i:s a', time());
$Body = "";
$Body .= "<b>Email:</b> ";
$Body .= $EmailFrom . "\r\n";
$Body .= "<br>";
$Body .= "<b>Product SKU:</b> ";
$Body .= $SKU . "\n";
$Body .= "<br>";
$Body .= "<b>Product ID:</b> ";
$Body .= $ID . "\n";
$Body .= "<br>";
$Body .= "<b>Product Size:</b> ";
$Body .= $SIZE;
$Body .= "<br>";
$Body .= "<b>Date:</b> ";
$Body .= $DATENOW;
$headers = "MIME-Version: 1.0" . "\n";
$headers .= "Content-type: text/html; charset=UTF-8" . "\n";
$headers .= "From: ". $EmailFrom ."" . "\n";
$success = mail($EmailTo, $Subject, $Body, $headers);
if ($success){
echo '<div class="alert alert-success">Done!</div>';
$file = fopen('request-size.csv', 'a');
$data = array(
array($EmailFrom, $SKU, $ID, $SIZE, $DATENOW)
);
foreach ($data as $row)
{
fputcsv($file, $row);
}
fclose($file);
}
else{
echo '<div class="alert alert-danger">Error!</div>';
}
Ich habe alle Felder in meiner CSV-Datei und E-Mail, außer dem Feld "E-Mail". Es ist immer leer. Ich habe auch versucht, den Namen des E-Mail-Feldes (E-Mail zu E-Mailreq) auf beiden Seiten (HTML, PHP) zu ändern, hat aber nicht funktioniert.
Irgendwelche Vorschläge? Vielen Dank!
Ich habe fast nie die Verwendung von '$ _REQUEST' gesehen. Hast du '$ _POST' probiert? –
Sollte das keinen Unterschied machen, @chade_ –
@chade_ ja, nichts passiert – zagzter