max: kantakt-formular

Beitrag lesen

hallo,
habe mir folgendes Kontakt-Formular erstellt:
PHP Code:

<html>

<head>
<title>Kontakt-Formular</title>
<style type="text/css">
<!--
input,textarea { border: 1px solid black }
-->
</style>
<?php
function formmailer($gesendet,$n_name,$email,$nachricht)
{

if(trim($n_name)=="") $error_text .= 'Bitte Namen eingeben!<br>';
    if(trim($email)=="") $error_text .= 'Bitte E-Mail-Adresse eingeben!<br>';
    else if(!ereg("[1]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,6})$",$email))
          $error_text .= 'Bitte gültige E-Mail-Adresse eingeben!<br>';
    if(trim($nachricht)=="") $error_text .= 'Bitte Nachricht eingeben!';
    if(isset($error_text))
    {
        echo 'Fehler:<p>';
        echo $error_text;
    }
    else
    {
        $mail_to = "torsten-zindel@gmx.de";
        $mailnachricht .= "von $n_name:\n\n";
        $mailnachricht .= $nachricht;
        mail($mail_to, $betreff, $mailnachricht, "From: $email");
        echo '<div class="text">Nachricht wurde erfolgreich gesendet!</div>';
    }
}
?>
</head>

<body>
<h1>Kontakt-Formular</h1>
Die mit <span style="color:#FF0000">*</span> gekennzeichneten Felder müssen ausgefüllt sein!<p>
<form action="kontakt.php" method="post" style="margin-top:0px">
<table>
  <tr>
    <td>Name:<span style="color:#FF0000">*</span></td>
    <td><input name="n_name" size="33" maxlength="30"></td>
  </tr>
  <tr>
    <td>Vorname:</td>
    <td><input name="v_name" size="33" maxlength="30"></td>
  </tr>
  <tr>
    <td>eMail-Adresse:<span style="color:#FF0000">*</span></td>
    <td><input name="email" size="33" maxlength="30"></td>
  </tr>
  <tr>
    <td>Betreff:</td>
    <td><select name="betreff"><option value="Allgemeines">Allgemeines</option></select></td>
  </tr>
  <tr>
    <td>Ihr Anliegen:<span style="color:#FF0000">*</span></td>
    <td><textarea name="nachricht" cols="40" rows="10"></textarea></td>
  </tr>
  <tr>
    <td></td>
    <td><input type="submit" value="Absenden" name="gesendet"> <input type="reset" value="Löschen"></td>
  </tr>
  <tr>
    <td></td>
    <td><?php
    if (isset($gesendet))
    {
        formmailer($gesendet,$n_name,$email,$nachricht);
    }
    ?></td>
  </tr>
</table>
</form>
</body>

</html>

für die realisierung sollten folgende punkte gewehrleistet sein:
das Kontakt-Formular soll nur aus einer datei bestehen(kontakt.php),
das eigentlich php-programm soll über eine funktion aufgerufen werden.

jetzt entstand dadurch allerdings ein unschönes problem, wenn der besucher, z.b. den namen vergessen hat einzugeben, erscheint zunächst eine fehlermeldung. zugleich verschwindet aber auch die nachricht die er zuvor eingegeben hat. das sollte aber nicht so sein. ich verstehe nicht wo der fehler liegt. da ich nicht soviel erfahrung mit php und der programmierung habe, würde ich mich freuen wenn mir da jemand einen tipp geben könnte wie man so etwas professionell lösen könnte. meine oben genannten kriterien sollten allerdings erfüllt bleiben, wenn es irgendwie möglich ist!?

gruß
max


  1. _a-z0-9- ↩︎