Pflichtfelder bei Formular aktivieren

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

  • Pflichtfelder bei Formular aktivieren

    Hallo, bin ein PHP Newbie und habe ein einfaches Formular erstellt, bzw. ein fertiges benutzt. Leider habe ich es nicht geschafft die Pflichtfelder einzustellen. Sorry, wenn der Code nicht besonders sauber ist, aber vielleicht kann mir ja einer von euch helfen. Was muss ich wo eingeben, damit einige dieser Felder ausgefüllt müsen?

    Hier die Seite mit dem Formular:

    <br />
    <br />

    <form name="mail" method="post" action="planetmail.php">

    <!-- <input type=hidden name="send_index" value="dat2"> -->

    <b>Name</b>
    <br />
    <input type="text" name="Name" />
    <br /><br />
    <b>eMail-Adresse</b>
    <br />
    <input type="text" name="eMail" />
    <br /><br />
    <b>Mitteilung</b>
    <br />
    <textarea name="Mitteilung" rows="6"></textarea>
    <br />
    <input name="Submit" type="submit" value="Nachricht senden" />

    </form>


    Hier die Seite mit dem PHP Script:

    <?php


    #################################################
    #
    # (c) PlaNet Concept e.K., Lars Odermath, 2006
    #
    #################################################
    #
    # :: planetMail :: Version vom 22.07.2006
    #
    # COPYRIGHT NOTICE
    # Copyright 2006 PlaNet Concept e.K.
    # All Rights Reserved.
    # EMail: kontakt@planetc.de
    # URL : http://www.planetc.de
    #
    # :: planetMail :: darf von jedem kostenlos benutzt und geändert werden,
    # solange dieser Copyright-Verweis und die restlichen Kommentare erhalten bleiben.
    #
    # Mit dem Einsatz dieses Skripts akzeptieren Sie, daß PlaNet Concept e.K.,
    # Lars Odermath, von jeglicher Haftung und Gewährleistung hinsichtlich des
    # Einsatzes befreit ist.
    #
    # Der Verkauf dieses Skripts, auch in modifizierter Form, ist ohne vorherige
    # Absprache ausdrücklich untersagt! (Mit anderen Worten: Bitte fragen Sie uns,
    # bevor Sie versuchen, mit unserem Script Geld zu verdienen.)
    #
    # Um dieses Skript über das Internet oder ein anderes Medium
    # weiterzuverbreiten, benötigen Sie vorher unsere Erlaubnis. In jeden Fall
    # müssen der Copyright-Verweis und die restlichen Kommentare erhalten
    # bleiben.
    #################################################

    sendEmail();

    function sendEmail(){

    #################################################
    # KONFIGURATION
    #################################################


    // Zu Testzwecken
    // 1 => Der Inhalt der eMail wird in eine Textdatei geschrieben (wenn Sie offline testen möchten)
    // 0 => Die eMail wird verschickt
    $testOffline = 0;



    // Geben Sie hier ein gültige eMail-Adresse von sich an
    // Diese eMail-Adresse wird dann auch als Absender-eMail-Adresse angezeigt, wenn die nachfolgende
    // Option nicht aktiviert (also auf 1 gesetzt) wird.
    // (Dies ist bei manchen Providern Voraussetzung, um Spamming zu verhindern)
    $emailFrom = "tut@tut.net";



    // eMail-Adresse des Versenders als Absenderadresse nutzen (um beispielsweise direkt anworten zu können)
    // 1 => Ja | 0 => Nein
    $useSendersEmail = 1;

    // Geben Sie nachfolgend den Namen des Formularfeldes an, in das der Absender seine
    // eMail-Adresse einträgt (Voreinstellung ist: eMail || BEACHTEN SIE GROSS- & KLEINSCHREIBUNG!!!!).
    // Die Eingabe ist nur dann notwendig, wenn Sie die vorangehende Option ($useSendersEmail) auf "1" setzen!
    $mailFromField = 'eMail-Adresse';



    // SPAM-MISSBRAUCH-SCHUTZ
    // Aktivieren Sie den Schutz vor einem Missbrauch des Formmailers durch Spammer!
    // Genauere Informationen finden Sie in der README.txt
    // 1 => aktiviert | 0 => NICHT aktiviert
    $spamProtect = 1;

    // "Badword"-Schutz (Erweiterung zum Spam-Schutz)
    // Hier können Sie Wörter und Wortkombinationen eintragen, die nicht in einer eMail vorkommen dürfen.
    // Kommen diese Wörter vor, wird die Verarbeitung der Nachricht mit einer Fehlermeldung abgebrochen.
    // Zusätzlich können Sie angeben, wie oft ein Wort maximal vorkommen darf.
    // Z.B. kann es sein, dass jemand einen Link mit "http:" senden möchte. Immer häufiger kommen aber auch
    // Spam-eMails vor, welche unmengen an Links enthalten. So könnte man einstellen, dass mehr als X Links
    // in einer Nachricht vermutlich Spam sind.
    // In der Vorgabe, dürfte in der Nachricht das Wort "Viagra" nicht einmal vorkommen, "Free Software" dürfte
    // Ihnen zumindest einmal gesagt werden. Selbstverständlich können hier auch eMail-Adressen oder andere
    // Inhalte eingetragen werden.
    // NUTZEN SIE DIESE OPTION MIT BEDACHT, UM NICHT UNNÖTIG "GUTE" EMAILS ZU BLOCKEN
    $GLOBALS['badwords'] = array('Viagra' => '0', '************' => '0', 'arsch' => '0', 'kostenlos' => '0', 'free' => '0', '@' => '1');




    // Empfänger eMail-Adressen, Subject, Zielseite nach dem Versenden der eMail
    // Soll KEINE Kopie der eMail an eine zweite Adresse geschickt werden, so löschen Sie die "Dummy"-eMail-Adresse
    // "kopie@ihre_domain.de", so daß nur noch die beiden Hochstriche stehen bleiben ("").
    // Ansonsten geben Sie dort bitte eine gültige eMail-Adresse ein.
    // Genauere Informationen finden Sie in der README.txt
    $send_dat = array(

    "dat1" => array("tut@tut.de", "", "CAMPUS DUISBURG Anmeldung O-Tage", "danke.htm"),
    #"dat2" => array("", "", "", ""),
    #"dat3" => array("", "", "", ""),

    );



    // Felder aus dem Formular, die NICHT mit der eMail übertragen werden sollen.
    // TIPP: Verwenden Sie grafische Buttons als "Absendeknopf", so werden die Koordinaten
    // der Klickstelle mit der eMail verschickt. Um diesen (unschönen) Effekt zu umgehen,
    // geben sie für den grafischen Button name="senden" ein.
    $ignoreFormFields = array('send_index', 'senden', 'submit', 'check_form','Submit','senden_y','senden_x');


    ###########################################################
    # ENDE DER KONFIGURATION (AB HIER SOLLTE NICHTS MEHR GEÄNDERT WERDEN!!!!!!!!!!!)
    ###########################################################
    $mailto = '';
    $mail_cc = '';
    $subject= '';
    $message = '';

    // Datum (+deutsche Tage)
    $name_tag = array('Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag');
    $day = $name_tag[date('w')];
    $year = date('Y');
    $n = date('d');
    $month = date('m');
    $time = date('H:i');


    // Prüfung, welches send_dat-Array zum senden verwendet werden soll
    // Default: dat1
    !empty($_POST['send_index']) ? $st = $_POST['send_index'] : $st = 'dat1';


    // Versende Daten
    $mailto = $send_dat[$st][0]; // Ziel-eMail-Adresse
    $mail_cc = $send_dat[$st][1]; // 2. Ziel-eMail-Adresse (Kopie)
    $subject = $send_dat[$st][2]; // Subjekt
    $redirect = $send_dat[$st][3]; // Zielseite nach eMailversand



    // Formularfelder auslesen und in die eMail "einsetzen"
    // Zu ignorierende Felder werden NICHT eingesetzt
    while (list($fieldName, $fieldValue) = each($_POST))
    {
    if (in_array($fieldName, $ignoreFormFields) || empty($fieldValue)) continue;
    $message .= "$fieldName:\r\n$fieldValue\r\n\r\n\r\n";
    }



    // Funktion zum prüfen des Inhaltes aufrufen
    $message = cleanContent($message, $spamProtect);

    // Datum und Zeit voranstellen
    $message = ":: Gesendet am $day, den $n.$month.$year - $time Uhr ::\r\n\r\n$message";


    // Weiterleitung auf eine andere Seite
    Header("Location: $redirect");


    // Absender-eMail-Adresse
    ($useSendersEmail == 1) ? $emailFrom = $_POST[$mailFromField] : $emailFrom = $emailFrom;

    $header = "From: $emailFrom";


    // Kopie schicken
    if (!empty($mail_cc)) {
    $header .= "\r\n";
    $header .= "Cc: $mail_cc";
    }


    // eMail verschicken
    if ($testOffline == '0') {
    @mail ($mailto, $subject, $message, $header)
    || die('<b>Es ist ein Fehler aufgetreten, bitte versuchen Sie es erneut!</b>');
    }

    // eMail zum testen in ein Textfile schreiben
    if ($testOffline == '1') {
    $testmail = fopen('email.txt', 'w+');
    fwrite($testmail, $message);
    fclose($testmail);
    }


    } // end function



    /***** Inhalte "bereinigen" *****/
    function cleanContent($content, $spamProtect)
    {
    $content = str_replace('<br>', "\r\n", $content);
    $content = stripslashes(strip_tags($content));

    // Spam-Missbrauch-Schutz aufrufen
    if($spamProtect == 1) { $content = checkContent($content); }

    return $content;
    }


    /***** Spam-Missbrauch-Schutz *****/
    function checkContent($tpcontent)
    {
    // kritische Zeichen entfernen
    $checkit = array("/bcc\:/i","/cc\:/i","/to\:/i");
    $tpcontent = preg_replace($checkit, "", $tpcontent);

    // Script-Abbruch bei eindeutigem Spamversuchen
    if (preg_match("/(MIME\-Version\:|Content\-Type\/i", $tpcontent)) {
    die('Ihre Angaben enthalten kritische Zeichen! Aus Gründen des Spamschutzes wird Ihre Nachricht nicht versendet.');
    }

    // "Badword"-Überprüfung
    if ($GLOBALS['badwords']) {
    foreach($GLOBALS['badwords'] as $badword=>$count)
    {
    preg_match_all('/\b'.$badword.'\b/i', $tpcontent, $match);

    if (sizeof($match[0]) > $count) {
    die('Ihre Eingabe beinhaltet nicht akzeptierte Zeichen oder Wörter. Diese Nachricht wird nicht gesendet!');
    }
    }
    }

    // Formular ohne Inhalte nicht versenden
    if (empty($tpcontent)) {
    die('Es wurden keine Angaben gemacht! Ein leeres Formular wird nicht versendet.');
    }

    return $tpcontent;
    }


    ?>





    Vielen Dank im Vorraus!

  • #2
    Re: Pflichtfelder bei Formular aktivieren

    Code:
    # Um dieses Skript über das Internet oder ein anderes Medium
    # weiterzuverbreiten, benötigen Sie vorher unsere Erlaubnis. In jeden Fall
    # müssen der Copyright-Verweis und die restlichen Kommentare erhalten
    # bleiben.
    Ich hoffe, du hast seine Erlaubnis

    Kommentar


    • #3
      Hab bis hierhin gelesen:
      # :: planetMail :: darf von jedem kostenlos benutzt und geändert werden,
      # solange dieser Copyright-Verweis und die restlichen Kommentare erhalten bleiben.

      Aber ich denke da wird niemand was dagegen haben oder, ist ja freeware und kein großer Eingriff?!
      LG Sarah

      Kommentar


      • #4
        OK!
        Aber was hast du denn jetzt eigentlich vor? Was meinst du mit "Leider habe ich es nicht geschafft die Pflichtfelder einzustellen"?

        Kommentar


        • #5
          Einige Felder müssen ausgefüllt werden, andere sind keine Pflicht. Werden diese nicht ausgefüllt, muss ein Kommentar kommen, das einiege Felder fehlen. Das richtige Formular findest Du unter:
          http :// www.uni-due.de /io/email/anmeldung_essen.htm
          Ich denke dann wird klar was ich damit meine.
          Vielen Dank!

          Kommentar


          • #6
            Dann machst du vorweg eine Schleife:
            PHP-Code:
            $needed = array();  // Die benötigten Felder hier eintragen!
            foreach( $needed as $need ) {
               if( !isset( 
            $_POST[$need] ) ) {
                  die( 
            "Feld ".$need." ist nicht ausgefüllt!" );
               }

            Kommentar


            • #7
              naja, ein wenig nervig, da dort immer nur das erste, nicht ausgefüllte pflichtfeld "angemeckert" wird, und man über den zurück-button zum formular zurück muss...


              OffTopic:

              ich glaube, ich muss mir noch einen weiblichen account anlegen... schön so n thread ohne "REGELN BEACHTEN!!!", "GOOGLEN!!!", "WAS SIND DEN DEINE ANSÄTZE BISLANG??!!" zu lesen...

              der gute alte doppel-x-bonus

              **********
              arkos
              **********

              Kommentar


              • #8
                PHP-Code:
                $fehler = array();
                $zwang = array('name','adresse','wohnort');
                $leer array_keys($_POST,'');
                foreach(
                $leer as $wert){
                  if(
                array_key_exists($wert,$zwang)){
                    switch(
                $wert){
                      case 
                'name':
                        
                $fehler['name'] = 'Bitte einen Namen angeben';
                      break;
                      case 
                'adresse':
                        
                $fehler['adresse'] = 'Ihre Adresse wäre auch ganz nett';
                      break;
                      case 
                'wohnort':
                        
                $fehler['wohnort'] = 'Wir müssten auch noch wissen wo sie wohnen';
                      break;
                    }
                  }

                Die Fehlermeldungen in $fehler kannst du dann bei der Wiederausgabe des Forms hinter die entsprechenden Inputfelder schreiben.

                Gruss

                tobi
                Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                Kommentar


                • #9
                  Hi, vielen Dank für euere Antworten - habe aber noch Probleme das ins PHP Script einzubauen ... irgendwie will das Formular nicht klappen, wenn ich den Abschnitt einbaue

                  Kommentar


                  • #10
                    habe aber noch Probleme das ins PHP Script einzubauen ...
                    Uns was genau ist hierbei dein Problem? Was hast du schon probiert? Was passiert bei deinen Versuchen?
                    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                    Kommentar


                    • #11
                      Original geschrieben von Sarah
                      ... irgendwie will das Formular nicht klappen, wenn ich den Abschnitt einbaue
                      das ist keine aussagekräftige fehlerbeschreibung...

                      OffTopic:

                      @jah... wird das das rückspiel heute???

                      **********
                      arkos
                      **********

                      Kommentar


                      • #12
                        sorry sorry ... ihr habt ja recht! Hab halt vorher nie mit PHP groß gearbeitet

                        Hier das Script:


                        <?php

                        $fehler = array();
                        $zwang = array('Vorname','Nachname','Nationalit&auml;t');
                        $leer = array_keys($_POST,'');
                        foreach($leer as $wert){
                        if(array_key_exists($wert,$zwang)){
                        switch($wert){
                        case 'Vorname':
                        $fehler['Vorname'] = 'Bitte einen Namen angeben';
                        break;
                        case 'Nachname':
                        $fehler['Nachname'] = 'Ihre Adresse wäre auch ganz nett';
                        break;
                        case 'Nationalit&auml;t':
                        $fehler['Nationalit&auml;t'] = 'Wir müssten auch noch wissen wo sie wohnen';
                        break;
                        }
                        }
                        }


                        #################################################
                        #
                        # (c) PlaNet Concept e.K., Lars Odermath, 2006
                        #
                        #################################################
                        #
                        # :: planetMail :: Version vom 22.07.2006
                        #
                        # COPYRIGHT NOTICE
                        # Copyright 2006 PlaNet Concept e.K.
                        # All Rights Reserved.
                        # EMail: kontakt@planetc.de
                        # URL : http://www.planetc.de
                        #
                        # :: planetMail :: darf von jedem kostenlos benutzt und geändert werden,
                        # solange dieser Copyright-Verweis und die restlichen Kommentare erhalten bleiben.
                        #
                        # Mit dem Einsatz dieses Skripts akzeptieren Sie, daß PlaNet Concept e.K.,
                        # Lars Odermath, von jeglicher Haftung und Gewährleistung hinsichtlich des
                        # Einsatzes befreit ist.
                        #
                        # Der Verkauf dieses Skripts, auch in modifizierter Form, ist ohne vorherige
                        # Absprache ausdrücklich untersagt! (Mit anderen Worten: Bitte fragen Sie uns,
                        # bevor Sie versuchen, mit unserem Script Geld zu verdienen.)
                        #
                        # Um dieses Skript über das Internet oder ein anderes Medium
                        # weiterzuverbreiten, benötigen Sie vorher unsere Erlaubnis. In jeden Fall
                        # müssen der Copyright-Verweis und die restlichen Kommentare erhalten
                        # bleiben.
                        #################################################

                        sendEmail();

                        function sendEmail(){

                        #################################################
                        # KONFIGURATION
                        #################################################


                        // Zu Testzwecken
                        // 1 => Der Inhalt der eMail wird in eine Textdatei geschrieben (wenn Sie offline testen möchten)
                        // 0 => Die eMail wird verschickt
                        $testOffline = 0;



                        // Geben Sie hier ein gültige eMail-Adresse von sich an
                        // Diese eMail-Adresse wird dann auch als Absender-eMail-Adresse angezeigt, wenn die nachfolgende
                        // Option nicht aktiviert (also auf 1 gesetzt) wird.
                        // (Dies ist bei manchen Providern Voraussetzung, um Spamming zu verhindern)
                        $emailFrom = "sarah.mix@gmx.net";



                        // eMail-Adresse des Versenders als Absenderadresse nutzen (um beispielsweise direkt anworten zu können)
                        // 1 => Ja | 0 => Nein
                        $useSendersEmail = 1;

                        // Geben Sie nachfolgend den Namen des Formularfeldes an, in das der Absender seine
                        // eMail-Adresse einträgt (Voreinstellung ist: eMail || BEACHTEN SIE GROSS- & KLEINSCHREIBUNG!!!!).
                        // Die Eingabe ist nur dann notwendig, wenn Sie die vorangehende Option ($useSendersEmail) auf "1" setzen!
                        $mailFromField = 'eMail-Adresse';



                        // SPAM-MISSBRAUCH-SCHUTZ
                        // Aktivieren Sie den Schutz vor einem Missbrauch des Formmailers durch Spammer!
                        // Genauere Informationen finden Sie in der README.txt
                        // 1 => aktiviert | 0 => NICHT aktiviert
                        $spamProtect = 1;

                        // "Badword"-Schutz (Erweiterung zum Spam-Schutz)
                        // Hier können Sie Wörter und Wortkombinationen eintragen, die nicht in einer eMail vorkommen dürfen.
                        // Kommen diese Wörter vor, wird die Verarbeitung der Nachricht mit einer Fehlermeldung abgebrochen.
                        // Zusätzlich können Sie angeben, wie oft ein Wort maximal vorkommen darf.
                        // Z.B. kann es sein, dass jemand einen Link mit "http:" senden möchte. Immer häufiger kommen aber auch
                        // Spam-eMails vor, welche unmengen an Links enthalten. So könnte man einstellen, dass mehr als X Links
                        // in einer Nachricht vermutlich Spam sind.
                        // In der Vorgabe, dürfte in der Nachricht das Wort "Viagra" nicht einmal vorkommen, "Free Software" dürfte
                        // Ihnen zumindest einmal gesagt werden. Selbstverständlich können hier auch eMail-Adressen oder andere
                        // Inhalte eingetragen werden.
                        // NUTZEN SIE DIESE OPTION MIT BEDACHT, UM NICHT UNNÖTIG "GUTE" EMAILS ZU BLOCKEN
                        $GLOBALS['badwords'] = array('Viagra' => '0', '************' => '0', 'arsch' => '0', 'kostenlos' => '0', 'free' => '0', '@' => '1');




                        // Empfänger eMail-Adressen, Subject, Zielseite nach dem Versenden der eMail
                        // Soll KEINE Kopie der eMail an eine zweite Adresse geschickt werden, so löschen Sie die "Dummy"-eMail-Adresse
                        // "kopie@ihre_domain.de", so daß nur noch die beiden Hochstriche stehen bleiben ("").
                        // Ansonsten geben Sie dort bitte eine gültige eMail-Adresse ein.
                        // Genauere Informationen finden Sie in der README.txt
                        $send_dat = array(

                        "dat1" => array("sarah.mix@gmx.de", "", "CAMPUS ESSEN Anmeldung O-Tage", "danke.htm"),
                        #"dat2" => array("", "", "", ""),
                        #"dat3" => array("", "", "", ""),

                        );



                        // Felder aus dem Formular, die NICHT mit der eMail übertragen werden sollen.
                        // TIPP: Verwenden Sie grafische Buttons als "Absendeknopf", so werden die Koordinaten
                        // der Klickstelle mit der eMail verschickt. Um diesen (unschönen) Effekt zu umgehen,
                        // geben sie für den grafischen Button name="senden" ein.
                        $ignoreFormFields = array('send_index', 'senden', 'submit', 'check_form','Submit','senden_y','senden_x');


                        ###########################################################
                        # ENDE DER KONFIGURATION (AB HIER SOLLTE NICHTS MEHR GEÄNDERT WERDEN!!!!!!!!!!!)
                        ###########################################################
                        $mailto = '';
                        $mail_cc = '';
                        $subject= '';
                        $message = '';

                        // Datum (+deutsche Tage)
                        $name_tag = array('Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag');
                        $day = $name_tag[date('w')];
                        $year = date('Y');
                        $n = date('d');
                        $month = date('m');
                        $time = date('H:i');


                        // Prüfung, welches send_dat-Array zum senden verwendet werden soll
                        // Default: dat1
                        !empty($_POST['send_index']) ? $st = $_POST['send_index'] : $st = 'dat1';


                        // Versende Daten
                        $mailto = $send_dat[$st][0]; // Ziel-eMail-Adresse
                        $mail_cc = $send_dat[$st][1]; // 2. Ziel-eMail-Adresse (Kopie)
                        $subject = $send_dat[$st][2]; // Subjekt
                        $redirect = $send_dat[$st][3]; // Zielseite nach eMailversand



                        // Formularfelder auslesen und in die eMail "einsetzen"
                        // Zu ignorierende Felder werden NICHT eingesetzt
                        while (list($fieldName, $fieldValue) = each($_POST))
                        {
                        if (in_array($fieldName, $ignoreFormFields) || empty($fieldValue)) continue;
                        $message .= "$fieldName:\n$fieldValue\r\n\r\n\r\n";
                        }


                        // Funktion zum prüfen des Inhaltes aufrufen
                        $message = cleanContent($message, $spamProtect);

                        // Datum und Zeit voranstellen
                        $message = ":: Gesendet am $day, den $n.$month.$year - $time Uhr ::\r\n\r\n$message";


                        // Weiterleitung auf eine andere Seite
                        Header("Location: $redirect");


                        // Absender-eMail-Adresse
                        ($useSendersEmail == 1) ? $emailFrom = $_POST[$mailFromField] : $emailFrom = $emailFrom;

                        $header = "From: $emailFrom";


                        // Kopie schicken
                        if (!empty($mail_cc)) {
                        $header .= "\r\n";
                        $header .= "Cc: $mail_cc";
                        }


                        // eMail verschicken
                        if ($testOffline == '0') {
                        @mail ($mailto, $subject, $message, $header)
                        || die('<b>Es ist ein Fehler aufgetreten, bitte versuchen Sie es erneut!</b>');
                        }

                        // eMail zum testen in ein Textfile schreiben
                        if ($testOffline == '1') {
                        $testmail = fopen('email.txt', 'w+');
                        fwrite($testmail, $message);
                        fclose($testmail);
                        }


                        } // end function



                        /***** Inhalte "bereinigen" *****/
                        function cleanContent($content, $spamProtect)
                        {
                        $content = str_replace('<br>', "\r\n", $content);
                        $content = stripslashes(strip_tags($content));

                        // Spam-Missbrauch-Schutz aufrufen
                        if($spamProtect == 1) { $content = checkContent($content); }

                        return $content;
                        }


                        /***** Spam-Missbrauch-Schutz *****/
                        function checkContent($tpcontent)
                        {
                        // kritische Zeichen entfernen
                        $checkit = array("/bcc\:/i","/cc\:/i","/to\:/i");
                        $tpcontent = preg_replace($checkit, "", $tpcontent);

                        // Script-Abbruch bei eindeutigem Spamversuchen
                        if (preg_match("/(MIME\-Version\:|Content\-Type\/i", $tpcontent)) {
                        die('Ihre Angaben enthalten kritische Zeichen! Aus Gründen des Spamschutzes wird Ihre Nachricht nicht versendet.');
                        }

                        // "Badword"-Überprüfung
                        if ($GLOBALS['badwords']) {
                        foreach($GLOBALS['badwords'] as $badword=>$count)
                        {
                        preg_match_all('/\b'.$badword.'\b/i', $tpcontent, $match);

                        if (sizeof($match[0]) > $count) {
                        die('Ihre Eingabe beinhaltet nicht akzeptierte Zeichen oder Wörter. Diese Nachricht wird nicht gesendet!');
                        }
                        }
                        }

                        // Formular ohne Inhalte nicht versenden
                        if (empty($tpcontent)) {
                        die('Es wurden keine Angaben gemacht! Ein leeres Formular wird nicht versendet.');
                        }

                        return $tpcontent;
                        }


                        ?>

                        Kommentar


                        • #13
                          Original geschrieben von arkos
                          das ist keine aussagekräftige fehlerbeschreibung...

                          OffTopic:

                          @jah... wird das das rückspiel heute???

                          Wenn ich senden will geht er nur zum PHP Script (phpmail.php) und stopt dort.

                          Kommentar


                          • #14
                            Das ist ja ziemlich konkret...

                            Was genau ist das Problem?

                            Kommentar


                            • #15
                              Wie wär das ?
                              PHP-Code:
                              if(isset($_POST)){
                                
                              $fehler = array();
                                
                              $zwang = array('name','adresse','wohnort');
                                
                              $leer array_keys($_POST,'');
                                foreach(
                              $leer as $wert){
                                  if(
                              array_key_exists($wert,$zwang)){
                                    switch(
                              $wert){
                                      case 
                              'name':
                                        
                              $fehler['name'] = 'Bitte einen Namen angeben';
                                      break;
                                      case 
                              'adresse':
                                        
                              $fehler['adresse'] = 'Ihre Adresse wäre auch ganz nett';
                                      break;
                                      case 
                              'wohnort':
                                        
                              $fehler['wohnort'] = 'Wir müssten auch noch wissen wo sie wohnen';
                                      break;
                                    }
                                  }
                                }

                              Du musst erst prüfen, ob das Formular bereits abgeschickt wurde oder ob das Form zum ersten Mal ausgegeben wurde. Wurde es zum ersten Mal aufgerufen, dann macht doch die Fehlerprüfung keinen Sinn, weil der User ja noch gar keine Daten versendet hat.

                              Gruss

                              tobi
                              Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                              [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                              Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                              Kommentar

                              Lädt...
                              X