Kontaktformualr

hi,
ich hab mir ein kontakt formular runtergeladen aber ein feld war mir zu wenig dann hab ich da einfach mal ein anderes feld kopiert und 2 daten angepasst und dann auch in der e-mail das feld eingefügt

so un mein problem jetzt:
ich bin neuling in php und ich hab mittlerweile es geschaft ein neues feld anzulegen und in die e-mail reinzubekommen aber das was im feld eingegeben wir wird nicht mitgesendet könnt ihr mir helfen??? danke
das neue feld müsste zeile 22 sein wenn ich mich net verzählt hab.

<?php session_start();
include('contact\_config.php'); /\*---------------------------------------------------+ | Copyright © 2007 | Code by Sebastian "slaughter" Schüssler | Download on [http://basti2web.de](http://basti2web.de) +----------------------------------------------------+ | Version: 1.01 | Last Update 13.07.07 +----------------------------------------------------\*/ echo " "; echo " Kontaktformular "; if(!isset($\_GET['action'])) { echo ""; echo ""; echo "Name: "; echo "E-Mail: "; echo "Sonstiges: "; echo "BeMee-Name: "; echo "Kommentar: "; echo ""; echo ""; } if(isset($\_GET['action']) AND ("send" == $\_GET['action'])) { $fehler = ''; $nz = chr(13).chr(10); $fname = $\_POST['fname']; $femail = $\_POST['femail']; $ftele = $\_POST['ftele']; $ftext = $\_POST['ftext']; if (empty($fname)) $fehler .= "- der Absendername fehlt "; if (empty($femail)) $fehler .= "- die Absenderadresse fehlt "; if (empty($ftext)) $fehler .= "- es wurde keine Nachricht eingetragen "; if (empty($fehler)) { $betreff = 'Neuer Vertreter BeMee'; $from = 'From: Kontaktformular'; $datum = 'Datum: '.date('j.n.Y').$nz; $zeit = 'Zeit: '.date('H:i').$nz; $von = 'Name: '.$fname.$nz.' BeMee-Name:'.$ftele.$nz.' E-Mail:'.$femail.$nz.' Sonstiges:'.$ftelf.' '.$nz; $linie ='-------------------'.$nz; $etext = $datum.$zeit.$von.$linie.$ftext; $meldung = "Ihre Nachricht wurde versandt"; // variablen festlegen $now = time(); $lock = 60 \* $form\_lock; $time = $now-$lock; if(!isset($\_SESSION['input']) || $\_SESSION['input'] = $time){ // wenn session gesetzt ist und zeit noch nicht vorbei ist, session auf neue zeit setzten und eintrag nicht erlauben $\_SESSION['input'] = $now; $eintragen = false; } if($eintragen == true) // wenn eintragen erlaubt ist { // dein code zum eintragen $mailresult = @mail($email,$betreff,$etext,$from); if(!$mailresult) // wenn ein fehler auftritt { echo " Es ist ein Fehler beim Versenden der E-Mail aufgetreten! Kontaktieren Sie bitte folgende E-Mail: ".$email." "; } else { $etext = strip\_tags($etext); $etext = htmlentities($etext); $etext = str\_replace($nz,' ',$etext); echo " $meldung "; echo " $etext "; } } else { // wenn eintragen nicht erlaubt ist echo " Sperrzeit ist noch aktiv! Sie können nur alle $form\_lock Minuten ein Formular absenden. "; } } else { echo " Ihre Nachricht konnte nicht versandt werden, weil"; echo " $fehler"; echo ""; echo "[zurück](%255C%2522%2522.%2524datei.%2522%255C%2522)"; echo " "; } } echo ""; ?\>

sry also ich meinte zeile 20 des sontiges feld
und dann halt auch unten in der e-mail

Hallo

Hier hast du dein zusätzliches Feld vergessen einzutragen:

$fname = $_POST[‚fname‘];
$femail = $_POST[‚femail‘];
$ftele = $_POST[‚ftele‘];
$ftext = $_POST[‚ftext‘];

Ein besserer Programmierstil wäre folgende Variante:

$fname = ($\_POST['fname']) ? $\_POST['fname'] : '';
...

Wenn nämlich der Nutzer die das Namensfeld nicht ausfüllt, dann existiert auch die Variable $_POST[‚fname‘] nicht und deshalb kann man auch den Wert, der da drin stehen sollte, nicht weiterverarbeiten. Man prüft darum erst mal ob die Variable da ist. Wenn ja, wird sie verwendet, ansonsten ein leerer String.
Dein Code funktioniert aber genausogut.

Wenn BeMee und Sonstiges Pflichtangaben sind, dann müssen sie in diesem Abschnitt noch mal eingetragen werden:

if (empty($fname)) $fehler .= "

  • der Absendername
    fehlt
    ";
    if (empty($femail)) $fehler .= "- die Absenderadresse
    fehlt
    ";
    if (empty($ftext)) $fehler .= "- es wurde keine Nachricht
    eingetragen
    ";

Gruß Johannes