Hallo,
bei mir geht es kurz gesagt darum, dass ich versuche eine Seite zu basteln, auf der ein User Vor- und Nachnamen in eine Form eingibt, auf 'Absenden' klickt und die beiden Daten dann per Mail an mich gesendet werden. Das alles ohne einen Refresh der Seite. Und da bin ich soweit, dass man das wohl ganz gut mit ajax hinbekommen kann. Bin nun seit ein paar Tagen mit wirklich guter Literatur (und w3schools) vorangekommen, scheiter aber dennoch. Es kommt partout keine Mail im von mir festgelegten Postfach an. Anbei der Code. Ich hab meine Anmerkungen im Code nicht alle entfernt. Ich bin grad ganz frisch im Thema.
Das Versenden soll mit PHPMailer durchgeführt werden. Wenn ich die mail.php mit dem HTML-Dokument laufen lasse, funktioniert auch alles. Das Problem ist im Endeffekt dann der ajax-Teil, mit dem ich das Laden der mail.php im Browser verhindern möchte.
Vielen Dank schon mal für eure Hilfe.
Grüße
Jogi
bei mir geht es kurz gesagt darum, dass ich versuche eine Seite zu basteln, auf der ein User Vor- und Nachnamen in eine Form eingibt, auf 'Absenden' klickt und die beiden Daten dann per Mail an mich gesendet werden. Das alles ohne einen Refresh der Seite. Und da bin ich soweit, dass man das wohl ganz gut mit ajax hinbekommen kann. Bin nun seit ein paar Tagen mit wirklich guter Literatur (und w3schools) vorangekommen, scheiter aber dennoch. Es kommt partout keine Mail im von mir festgelegten Postfach an. Anbei der Code. Ich hab meine Anmerkungen im Code nicht alle entfernt. Ich bin grad ganz frisch im Thema.
Das Versenden soll mit PHPMailer durchgeführt werden. Wenn ich die mail.php mit dem HTML-Dokument laufen lasse, funktioniert auch alles. Das Problem ist im Endeffekt dann der ajax-Teil, mit dem ich das Laden der mail.php im Browser verhindern möchte.
HTML:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" name="###" content="###">
<title> Anmeldung </title>
</head>
<body style="background-color:grey">
<h1>Anmeldung</h1>
<form method="post">
<fieldset> <legend>Anmeldung</legend>
<ul>
<li> <label for="forname"> Vorname: </label> <input type="text" name="forname" id="forname" placeholder="Gandalf" maxlength="20" style="width:30%"> </li>
<li> <label for="lastname"> Nachname: </label> <input type="text" name="lastname" id="lastname" placeholder="der Weiße" maxlength="20" style="width:30%"> </li>
</ul>
</fieldset>
<button type="submit" onclick="sendemail()">Anmelden</button>
</form>
</body
</html>
Code:
<script>
function sendemail () {
var xhttp = new XMLHttpRequest();
xhttp.open("post", "mail.php", true);
xhttp.send();
}
</script>
PHP:
<?php
//Code zum automatischen versenden von Mails. Allerdings lässt sich hier keine Absenderadresse einstellen.
//mail("********@web.de", "Mail von PHP", "Dies ist eine automatisch generierte Mail");
/**Code zum Versenden von Mail mit PHPMailer*/
require "PHPMailerAutoload.php";
//Maileinstellungen
$mail = new PHPMailer;
$mail->CharSet = "UTF-8";
//Absender Adresse
$mail->setFrom("no-reply@***.***", "Jogi");
//Empfänger Adresse
$mail->addAddress("******@***.***", "Jogi");
//Betreff
$mail->Subject = "Erste Test Mail";
//Nachricht
$mail->Body = <<<EOT
Vorname: {$_POST["forname"]}
Nachname: {$_POST["lastname"]}
EOT;
//Nachricht abschicken &
//Code, um Fehlermeldungen angezeigt zu bekommen. Das send() ist hier schon mit drin.
if(!$mail->send()) {
echo "Message was not sent.";
echo "Mailer error: " . $mail->ErrorInfo;
} else {
echo "Message has been sent.";
}
?>
Vielen Dank schon mal für eure Hilfe.
Grüße
Jogi