kennt jemand ein gutes Kontaktformular?

Um nicht mit Kanonen auf Spatzen zu schießen, brauche ich für eine wirklich einfache und simple Webseite, ein fertiges free-commerziell-nutzbares Kontaktformular(FormMailer) mit PHP.

Werde in Google momentan nicht fündig !

Kennt jemand eins ?

Greetz
 
Zuletzt bearbeitet:
Wait, what?

Ein Kontaktformular ist ein PHP Zweizeiler, ist dir klar oder? mail( ... htmlspecialchars( $_POST .... ) ...
 
Formular-Daten auswerten:
PHP: Variablen aus externen Quellen - Manual

HTML-Tags am besten komplett rausfiltern:
PHP: strip_tags - Manual

Mail versenden:
PHP: mail - Manual

optional: E-Mail-Adresse validieren:
(das ist dann schon die höhere Kunst...)
regulärer Ausdruck, der 99.99% aller gültigen Mail-Adressen erfasst:
Code:
[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?

PHP: preg_match - Manual
PHP: PCRE-Funktionen - Manual

Domain lässt sich über den regulären Ausdruck rausfiltern und mit folgender Funktion checken:
PHP: checkdnsrr - Manual

edit: wenn du nicht gleich ganz so hardcore an die Validierungs-Sache ran gehen willst, dann splitte die Mail-Adresse des Absenders mit
PHP:
$mailParts = explode('@', $mailAddress);
und du hast in $mailParts[1] die Domain und kannst diese mit checkdnsrr() prüfen...
 
@enkore, beavisbee
Da ich ein FormMailer momentan in Zend (mit allem was dazu gehört) umgesetzt habe, möchte ich aber das Zend-Framework nicht mit integrieren und somit fellt das flach.

Mir ist schon klar wie ich das ganze umsetzen muss!

Nur wenn man das ganze vernünftig umsetzen will, sollte man ja auch auf ein Request reagieren und, wie bereits auch durch beavisbee mal wieder vernünftig beantwortet validiert, bzw. gefiltert werden. Das bedeutet somit einen gewissen, wenn man es einigermaßen vernünftig machen will, zeitlichen aufwand. Diesen hätte ich mir gerne gespart, und was bereits funtionsfähiges angepasst (css) und verwendet.

Ich dachte eher an so eine OO-Variante ... Ich habe gehofft, das ich mir hierfür den aufwand sparen konnte .... Mmmmh.... also selber wieder ran.

P.S.: Ssy, für die Rechtschreibfehler ich habe noch leicht einem im Auge ...
 
Bei Sourceforge finden sich auch diverse Formmailer bzw. Beispiele dafür, die sich leicht modifizieren lassen, wie z.B. CTCT Sample PHP Contact Forms, die zum Teil sogar Captcha-Unterstützung mitliefern.
 
HTML:
<h1>Kontakt</h1>
<?php
if (isset($_REQUEST["error"])){
  $fehler = $_REQUEST["error"];
  if($fehler == "none")
    echo '<p class="infobox_green">Vielen Dank für ihre Nachricht!<p><br>';
  elseif($fehler == "email_not_valid")
    echo '<p class="infobox_red">Bitte geben Sie eine gültige E-Mailadresse an.<p><br>';
  elseif($fehler == "field_empty")
    echo '<p class="infobox_red">Bitte füllen Sie alle Felder aus.<p><br>';
}
?>
<center>
<FORM method="POST" action="XXXX"> <!-- hier der pfad der untenstehenden PHP rein-->
<table>
  <tr>
    <td><label for="Name">Name</label><br><INPUT type="text" name="Name" id="Name"style="width:500px;" maxlength="25"></td>
</tr>
<tr>
    <td><label for="Nachname">Nachname</label><br><INPUT type="text" name="Nachname" id="Nachname"style="width:500px;" maxlength="25"></td>
  </tr>

  <tr>
    <td><label for="Mail">E-Mailadresse</label><br><INPUT type="text" name="Mail" id="Mail"style="width:500px;" maxlength="50"></td>
  </tr>
  <tr>
  <td><label for="Text">Nachricht</label><br><textarea name="Text" style="width:500px;" rows="10"></textarea> </td>
  </tr>
  <tr>
    <td align="right" ><div style="width:64px; height:17px; font-size:10px; border: 1px solid #999; background-color:#444;" onmouseover="this.style.borderColor = '#FF0';" onmouseout="this.style.borderColor = '#999';" onclick="document.forms[0].submit()"><p style="position:absolute; margin-left:4px;margin-top:2px;">Absenden</p></div></td>
  </tr>
</table>
</FORM>
</center>
PHP:
<?php
//  Daten holen
$Name = $_POST["Name"];
$Nachname = $_POST["Nachname"];
$Mail = $_POST["Mail"];
$Text = $_POST["Text"];

$empfaenger="XXX"; // HIER DEINE ADDY REIN
$absender=$empfaenger;
$subject="Nachricht von: ".$Name. " ".$Nachname;
$message=$Name. " ".$Nachname."\n".$Mail."\n\n".$Text;

/* Baut Header der Mail zusammen */
$headers .= 'From:' . $Mail . "\n";
$headers .= 'Reply-To:' . $Mail . "\n"; 
$headers .= 'X-Mailer: PHP/' . phpversion() . "\n"; 
$headers .= 'X-Sender-IP: ' . $REMOTE_ADDR . "\n"; 

if ( !(empty($Text)) &&!(empty($Name)) &&!(empty($Nachname)) )
{
        if (preg_match("/^[a-zA-Z0-9\._-]+@{1}[a-zA-Z0-9-_.]+[\.]+[a-zA-Z]{2,3}$/" , $Mail))
        {
            mail($empfaenger, $subject, $message, $headers);
            header ('Location: XXX?error=none'); // HIER DIE URL DES KONTAKTFORMULARS REIN
        }
        else
        {
            header ('Location: XXX?errror=email_not_valid');// HIER DIE URL DES KONTAKTFORMULARS REIN
        }
}
else
{
    header ('Location: XXX?error=field_empty');// HIER DIE URL DES KONTAKTFORMULARS REIN
}
?>

Servus, mein erster konstuktiver Beitrag. Also lange her, dass ich das geschrieben habe. Aber damals hats gefuntzt. Literatur hast ja genug. Kritik darf auch ausgeübt werden.
Ach und der Hoster sollte es unterstützen, mein Freehoster tuts nich.:)
Greets
 
Zuletzt bearbeitet:
Zurück
Oben