E-Mail Formular Probleme

andid

Grünschnabel
Hallo,
also ich bin wirklich blutiger Anfänger und arbeite mich so langsam in die Materie ein., nun ist mein Problem dass ich eine Anlage betreue in der mein Vorgänger ein Mailformular für die Webseite erstellt hat. Dieses funktioniert leider nicht und ich weiß nicht woran der Fehler liegen könnte.
Sobald ich im Html Formular den Button Subit drücke schreibt er die Variablen in die Adressleiste des Browser. Eind Syntaxüberprüfung habe ich online drüber laufen lassen ohne Fehlermeldung. Ich bin für jede Hilfe dankbar und seit mit eueren Kommentaren gnädig;)
Html:
<div class="formular">
<form method="post" action="../php/send_email.php">
<div><label for="name">Name</label>
<input type="text" id="Name" name="name"></div>
<div><label for="betreff">Betreff</label>
<input type="text" id="Betreff" name="betreff"> </div>
<div><label for="email">E-Mail</label>
<input type="text" id="Email" name="email"></div>
<div><label for="tel">Telefon</label>
<input type="text" id="Tel" name="tel"></div>
<div><label for="nachricht">Nachricht</label>
<textarea id="Nachricht" name="nachricht"></textarea></div>
<p><input type="submit" name="submit"> </p>
</form>
</div>


PHP:
<?php
if($_REQUEST['submit']){
$mail_header = 'From:' . $email . "n";
$mail_header .= 'Content-type: text/plain; charset=UTF-8' . "rn";
$name1 = $_POST['name'];
$tel = $_POST['tel'];
$email = $_POST['email'];
$subject = $_POST['betreff'];
$message = $_POST['nachricht'];
$formcontent="von: $name1 $tel \n Nachricht: $message";
$recipient = "meine adresse";
$subject = "$subject";
$mailheader = "von: $email \r\n";
mail($recipient, $subject, $formcontent, $mailheader, $mail_header ) or die("Error!");
header('Location: mail.php'); }
?>
 

basti1012

Erfahrenes Mitglied
Nur das html formular gibt bei mir einen normalen POST ab der nicht in der Adress leiste steht.
dein Php Script ist Mist.
Zeile 3
$mail_header = 'From:' . $email . "n";
Wie soll da $email rein kommen ?
Kopiere dafür erstmal die Zeile
$email = $_POST['email'];
Davor.

Was soll das den werden ?
$subject = "$subject";
Das
$mailheader, $mail_header
finde ich leicht verwirrend und unübersichtlich( mußt du aber selber wissen ).
Dann mußt du noch alle POST anfragen filter angleichen , ggf kontrollieren ,
ob leer ist ( empty(),issset(),htmlspecialchars() usw.
Wenn du das alles hast bist du einen Schritt weiter gekommen.
Den kannst du aber theoretisch wieder zurück gehen und gleiche eine mailer Klasse verwenden .php-mailer heißt er glaube ich.

Dreh dein errorreporting mal hoch
 

basti1012

Erfahrenes Mitglied
Also so klappt es bei mir
PHP:
<?php

error_reporting(E_ALL);
ini_set("display_errors", 1);

if($_REQUEST['submit']){
$email = htmlspecialchars($_POST['email']);

$mail_header = 'From:' . $email . "n";
$mail_header .= 'Content-type: text/plain; charset=UTF-8' . "rn";

$name = htmlspecialchars($_POST['name']);
$tel = htmlspecialchars($_POST['tel']);
$subject = htmlspecialchars($_POST['betreff']);
$message = htmlspecialchars($_POST['nachricht']);

$formcontent="von: $name $tel \n Nachricht: $message";
$recipient = "basti1012@soforthilfe-forum.de";

$mailheader = "von: $email \r\n";
mail($recipient, $subject, $formcontent, $mailheader, $mail_header ) or die("Error!");
echo "Email versendet an $email <br>Betreff $subject <br>$formcontent";
//header('Location: mail.php');
}
?>
Mit deinen HTML Code.
Leere Felder Testen und so mußt du halt noch selber einbauen.
Aber wie gesagt, die mail() funktion nutze nur zum testen.
Als Endergebniss, wenn es auf deine HP oder sonst wo genutzt werden soll , nutze ausschließlich Php-mailer Klassen.
 

andid

Grünschnabel
danke basti1012 ich sehe ich habe noch viel zu lernen ... wenn man ins kalte Wasser geschmissen wird na ja .... ich bin froh dass ich wenigstens Jemand erwischt habe der freundlich ist und keine Kommis los lässt die nicht weiter helfen!!!