Kontaktformular 2. Versuch

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Kontaktformular 2. Versuch

    Hallo,

    bitte schaut Euch jetzt einmal mein Kontaktformular an. Bitte beurteilt doch dieses Formular einmal Manöverkritik ist erwünscht!!

    Was ist noch zu verbessern?

    Vielen Dank für die Hilfe Joerg

    PHP-Code:
    <?php
    $mail_adresse 
    "web@domaine.com";
    $mail_adresse_1 "info@domain.com";
    define ('CHARSET'"ISO-8859-15"); // Zeichenkodierung ggfls. anpassen
    &#12288;
    # Prüfen ob Formular abgeschickt wurde (anhand vom Namen des Submit-Buttons
    # Wenn ja wird der "mail-Teil" ausgeführt
    if (isset($_POST["senden"]))
    {
    $name $_POST['name'];
    $email $_POST['email'];
    $nachricht $_POST['nachricht'];
    $name_tag[0] = "Sonntag"
    $name_tag[1] = "Montag"
    $name_tag[2] = "Dienstag"
    $name_tag[3] = "Mittwoch"
    $name_tag[4] = "Donnerstag"
    $name_tag[5] = "Freitag"
    $name_tag[6] = "Samstag"
    $num_tag date"w"); 
    $day $name_tag[$num_tag]; 
    $year date("Y"); 
    $day_num date("d"); 
    $month date("m"); 
    $time = (date("H:i")); 
    &
    #12288;
    if (!eregi("^[A-Za-z0-9]+((\\.|!|_|\\+|\\-)[A-Za-z0-9]+)*@([A-Za-z0-9]+(\\.|\\-))+[A-Za-z0-9]{2,4}$"$email)) {
    $valid_mail "no";
    $valid_mail_text "Bitte achten Sie auch darauf, eine gültige E-Mail Adresse einzugeben.";
    }
    if (
    $name == "" || $email == "" || nachricht == "" || $valid_mail == "no"){
    echo 
    "<h2>Fehler bei der Übermittlung</h2>Bitte beachten Sie die hervorgehobenen Felder (*). Diese Felder sind Pflichtfelder.</p>";
    echo 
    "<p>$valid_mail_text</p>";
    echo 
    "<h3>Genauere Fehlerursache:</h3>";
    echo 
    "<ul>";
    if (
    $name == "") { echo "<li>Sie haben keinen Namen eingegeben</li>"; }
    if (
    $email == "" || $valid_mail == "no") { echo "<li>Sie haben keine gültige Email-Adresse eingegeben</li>"; }
    if (
    $nachricht == "") { echo "<li>Sie haben keine Nachricht eingegeben...</li>"; }
    echo 
    "</ul>";
    echo 
    "<p><a href='javascript:history.back()'>zurück</a></p>";
    end;
    }
    else{
    # SPAM-SCHUTZ
    # Quelle: http://www.drweb.de/webmaster/kontakt-formulare.shtml
    # ---------------------------------------------------------------------------------------------------
    $absender preg_replace"/[^a-z0-9 !?:;,.\/_\-=+@#$&\*\(\)]/im"""$_POST['email'] );
    $absender preg_replace"/(content-type:|bcc:|cc:|to:|from:)/im"""$absender );
    # ---------------------------------------------------------------------------------------------------
    &#12288;
    $EndNachricht "
    Am 
    $day, den $day_num.$month.$year um $time Uhr haben wir folgende Nachricht von Ihnen erhalten:
    Name: 
    $name 
    eMail: 
    $email \n 
    Nachricht:\n
    $nachricht\n
    Ihre Email wird so schnell wie möglich bearbeitet. 
    Bei Fragen schreiben Sie bitte an: 
    $mail_adresse_1";
    $txt preg_replace"/(content-type:|bcc:|cc:|to:|from:)/im"""$EndNachricht );
    mail("$mail_adresse""web-Kontaktformular"$txt"From: $absender\n");
    mail("$absender""Kontaktformular der Domaine"$txt"From: $mail_adresse_1");
    echo 
    "<h2>Vielen Dank!</h2>";
    echo 
    "<p>Ihre Mail wurde erfolgreich verschickt und wird so schnell wie m&ouml;glich beantwortet.</p>";
    }
    }
    else{
    ?>
    <!--------- "HTML" - TEIL -------------->
    <h2>Kontaktformular</h2>
    <p>&nbsp;</p>
    <fieldset>
    <form enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    <p>
    <label for="name">Name*</label>
    <br />
    <input type="text" name="name" id="name" />
    </p>
    <p>
    <label for="email">E-Mail*</label>
    <br />
    <input type="text" name="email" id="email" />
    </p>
    <p>
    <label for="nachricht"> Nachricht*</label>
    <br />
    <textarea name="nachricht" id="nachricht" cols="40" rows="5"></textarea>
    </p>
     
    <input type="submit" value="Absenden" name="senden">
    <input type="reset" value="Löschen" name="reset">
    </p>
    </form>
    </fieldset>
    <?php ?>

  • #2
    OK, hier meine Anmerkungen:
    1. Code einrücken, so kann das keine Sau vernünftig lesen
    2. eregi ist veraltet und solltet nicht mehr benutzt werden
    3. Besorg dir mal einen vernünftigen Editor, damit so was nicht passiert: & und #12288;
    4. Die Validierung der POST-Werte scheint ziemlich oberflächlich zu sein. Ein gefundenes Fressen für Spam-Bots

    Peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Vielen Dank für die schnelle Antwort.
      Als Editor habe ich Codepad heruntergeladen. Ich denke der Editor reicht aus. Welchen Editor verwendet Ihr?

      Ich verzweifele noch an dem Kontaktformular. Welche Kontaktformulare verwendet ihr?

      Hat jemand von Euch etwas vernünftiges?

      Vielen Dank für die Hilfe

      Joerg

      Kommentar


      • #4
        $_SERVER['PHP_SELF']
        Das kann XSS Attacken ermöglichen

        mail("$mail_adresse",......
        Variablen werden weder schöner, noch besser, wenn man sie in Anführungszeichen setzt.

        enctype="multipart/form-data"
        Das ist doch kein Upload Formular...
        Zuletzt geändert von combie; 18.02.2011, 09:38.
        Wir werden alle sterben

        Kommentar


        • #5
          und wo combie schon auf das eine "Problem" beim Aufruf von mail eingeht ...

          nimmt man gar nicht. Am besten schaust du dir mal eine vorgefertigte mail-Klasse wie phpmailer an, denn mit mail() müsstest du selbst für die Einhaltung aller Forderungen des RFC für emails sorgen.

          Im übrigen nimmt man heute besser unicode in Gestalt von utf8, statt mit ascii-Derivaten (iso8859-1) zu arbeiten
          [font=Verdana]
          Wer LESEN kann, ist klar im Vorteil!
          [/font]

          Kommentar

          Lädt...
          X