Hallo zusammen,
ich habe folgendes html-Formular erstellt:
Das folgende php-Script prüft und sende das Formmail:
Alles läuft gut, aber es öffnet immer eine leere html-Seite mit der jeweiligen Meldung. Möchte aber die Meldung auf der selben html-Seite wie das Formmail. Einfach an der Stelle wo sich <div id="apkontakt"> befindet.
Im voraus herzlichen Dank.
schnufer
ich habe folgendes html-Formular erstellt:
HTML:
<div id="apkontakt">
<table width="400" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td><form action="http://www.test.ch/NEW/mail/phpmailer.php" method="POST">
<table width="565" border="0" align="center" cellpadding="0" cellspacing="10">
<tr>
<td width="198" align="right" valign="middle" class="normtextweiss">Ihr Name und Vorname:</td>
<td width="367"><input type="text" name="name_surname" /></td>
</tr>
<tr>
<td width="198" align="right" valign="middle" class="normtextweiss">Ihre Email:</td>
<td width="367"><input type="email" name="mailfrom" /></td>
</tr>
<tr>
<td width="198" align="right" valign="middle" class="normtextweiss">Betreff:</td>
<td width="367"><input type="text" name="subject" /></td>
</tr>
<tr>
<td width="198" align="right" valign="middle" class="normtextweiss">
<label for="textarea">Text:</label></td>
<td width="367"><textarea name="textarea" cols="50" rows="10" id="textarea"></textarea></td>
</tr>
<tr>
<td width="198"> </td>
<td width="367" align="right"><input type="submit" value="E-Mail senden" /></td>
</tr>
</table>
</form></td>
</tr>
</table>
</div>
Das folgende php-Script prüft und sende das Formmail:
PHP:
<?php
echo '<b></b>' ;
//überprüfung der eingabe
//name vorname??
if (empty($_POST['name_surname'])) {
echo 'Geben Sie Ihren Namen und Vornamen an!';
$error = 'on';
}
//absender-email-adresse??
if (empty($_POST['mailfrom'])) {
echo 'Geben Sie Ihre E-Mail-Adresse an!';
$error = 'on';
}
//betreff??
if (empty($_POST['subject'])) {
echo 'Kein Betreff angeben!';
$error = 'on';
}
//email (text)??
if (empty($_POST['textarea'])) {
echo 'Leere E-Mails werden nicht versendet!';
$error = 'on';
}
//falls die überprüfung in ordnung ist, email senden
if(!isset($error)) {
//vereinfachung der variablen
$name_surname = $_POST['name_surname'];
$mailfrom = $_POST['mailfrom'];
$subject = $_POST['subject'];
$text = $_POST['textarea'];
//header-definition
$headers .= 'From: '.$name_surname.' <'.$mailfrom.'>'."\n";
$headers .= 'X-Sender: <'.$mailfrom.'>'."\n";
$headers .= "Reply-To: ".$name_surname." <$mailfrom>\r\n";
//anpassung der zeilenumbrüche des textes für email
$text = preg_replace('/<br[ ]?\/?>/', "\n", $text);
//anpassung der umlaute
$text = preg_replace('/ä/', "ä", $text);
$text = preg_replace('/ö/', "ö", $text);
$text = preg_replace('/ü/', "ü", $text);
$text = preg_replace('/Ä/', "Ä", $text);
$text = preg_replace('/Ü/', "Ü", $text);
$text = preg_replace('/Ö/', "Ö", $text);
//emailempfänger definieren
$mailto = "test@test.ch";
//mail senden
mail ($mailto,$subject,$text,$headers);
//bestätigung
echo 'E-Mail wurde erfolgreich versendet!';
}
?>
Alles läuft gut, aber es öffnet immer eine leere html-Seite mit der jeweiligen Meldung. Möchte aber die Meldung auf der selben html-Seite wie das Formmail. Einfach an der Stelle wo sich <div id="apkontakt"> befindet.
Im voraus herzlichen Dank.
schnufer