Ankündigung

Einklappen
Keine Ankündigung bisher.

Formular mit Formmailer und Capacha

Einklappen

Neue Werbung 2019

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

  • Formular mit Formmailer und Capacha

    Hallo Zusammen,

    ich habe mir selbst ein Formular erstellt das ich
    gerne über den integrierten Formmailer versenden möchte,
    um hier auch ein bisschen Sicherheit hinein zu bringen,
    hab ich ein Capacha mit eigenen Fragen und eine leere Zeile eingefügt,
    die nicht befüllt werden darf. Ich hab nur leider das Problem das beides nicht wirklich funktioniert, es verhindert weder das leere Feld noch die nicht gegebene Antwort des Capachas das senden des Formulars. Vielleicht könnte man das ganze auch vereinfachen? Über Vorschläge wäre ich natürlich Dankbar.

    Hier der Code meines Formulars:

    PHP-Code:
    <?php
    //Start Capacha__________________________________________________________________
    /**
     * Konfiguration 
     *
     * Bitte passen Sie die folgenden Werte an, bevor Sie das Script benutzen!
     * 
     * Das Skript bitte in UTF-8 abspeichern (ohne BOM).
     */
     
    // An welche Adresse sollen die Mails gesendet werden?
    $zieladresse 'MeineMail@adresse.at';

    // Welche Adresse soll als Absender angegeben werden?
    // (Manche Hoster lassen diese Angabe vor dem Versenden der Mail ueberschreiben)
    $absenderadresse 'Absender@adresse.at';

    // Welcher Absendername soll verwendet werden?
    $absendername 'Kontaktformular';

    // Welchen Betreff sollen die Mails erhalten?
    $betreff 'Zimmeranfrage';

    // Zu welcher Seite soll als "Danke-Seite" weitergeleitet werden?
    // Wichtig: Sie muessen hier eine gueltige HTTP-Adresse angeben!
    $urlDankeSeite 'danke.html';

    // Welche(s) Zeichen soll(en) zwischen dem Feldnamen und dem angegebenen Wert stehen?
    $trenner ":\t"// Doppelpunkt + Tabulator

    /**
     * Ende Konfiguration
     */

    if ($_SERVER['REQUEST_METHOD'] === "POST") {

        
    $header = array();
        
    $header[] = "From: ".mb_encode_mimeheader($absendername"utf-8""Q")." <".$absenderadresse.">";
        
    $header[] = "MIME-Version: 1.0";
        
    $header[] = "Content-type: text/plain; charset=utf-8";
        
    $header[] = "Content-transfer-encoding: 8bit";
        
        
    $mailtext "";

        foreach (
    $_POST as $name => $wert) {
            if (
    is_array($wert)) {
                foreach (
    $wert as $einzelwert) {
                    
    $mailtext .= $name.$trenner.$einzelwert."\n";
                }
            } else {
                
    $mailtext .= $name.$trenner.$wert."\n";
            }
        }

        
    mail(
            
    $zieladresse
            
    mb_encode_mimeheader($betreff"utf-8""Q"), 
            
    $mailtext,
            
    implode("\n"$header)
        ) or die(
    "Die Mail konnte nicht versendet werden.");
        
    header("Location: $urlDankeSeite");
        exit;
    }

    header("Content-type: text/html; charset=utf-8");


    //..Start Formchecker und capacha
    session_start();
     
    if(isset(
    $_POST['s_end'])) {
        if(!empty(
    $_POST['nospam'])) {
            exit(); 
    // Honepot
        
    } else {
            if(isset(
    $_SESSION['answer']) && $_SESSION['answer'] == strtolower($_POST['c_aptcha'])) {
                echo 
    'Die Spamschutz-Frage wurde richtig beantwortet.';
                unset(
    $_SESSION['answer']);
                
    // Weitere Validierung, ggf. Weiterleitung
            
    } else {
                exit(
    'Spamschutzfrage falsch beantwortet!');
            }
     
        }    
    } else {
        
    $qa = array();
     
        
    $qa[] = array('Frage 1'          => 'Antwort 1');
        
    $qa[] = array('Frage 2'       => 'Antwort 2');
        
    // Fragen und Antworten werden natürlich geändert
     
        
    $rand rand(0, (count($qa)-1)); // Eine zufällige Frage auswählen
        
    $quest $qa[$rand];
     
        
    $captcha key($quest); // Unsere Frage...
        
    $_SESSION['answer'] = $quest[$captcha]; // ..und die dazugehörige Antwort
    }

    //Ende Capacha____________________________________________________________________
    ?>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Unbenanntes Dokument</title>
    <!--Start Textfeld Überprüfung_________________________________________________-->
    <script type="text/javascript">
    function chkFormular () {
      if (document.Formular.Vorname.value == "") {
        alert("Bitte Ihren Vorname eingeben!");
        document.Formular.Vorname.focus();
        return false;
      }
      if (document.Formular.Nachname.value == "") {
        alert("Bitte Ihren Nachname eingeben!");
        document.Formular.Nachname.focus();
        return false;
      }
      if (document.Formular.Adresse.value == "") {
        alert("Bitte Ihre Adresse eingeben!");
        document.Formular.Adresse.focus();
        return false;
      }
      if (document.Formular.PLZ.value == "") {
        alert("Bitte Ihre Postleitzahl eingeben!");
        document.Formular.PLZ.focus();
        return false;
      }
      if (document.Formular.Ort.value == "") {
        alert("Bitte Ihren Ort eingeben!");
        document.Formular.Ort.focus();
        return false;
      }
      if (document.Formular.Mail.value == "") {
        alert("Bitte Ihre E-Mail-Adresse eingeben!");
        document.Formular.Mail.focus();
        return false;
      }
      if (document.Formular.Mail.value.indexOf("@") == -1) {
        alert("Keine E-Mail-Adresse!");
        document.Formular.Mail.focus();
        return false;
      }
      if (document.Formular.Von.value == "") {
        alert("Bitte wälen sie den Beginn ihres Aufenthaltes aus!");
        document.Formular.Von.focus();
        return false;
      }
      if (document.Formular.Bis.value == "") {
        alert("Bitte wälen sie das Ende ihres Aufenthaltes aus!");
        document.Formular.Bis.focus();
        return false;
      }
    }
    </script>
    <!--Ende Textfeld Überprüfung_________________________________________________-->

       <style>form .spam_protect { display: none; }
    </style>

    <!-- Beginn neuer Kalender!!!!_____________________________________________-->
    <style type="text/css">

    .ds_box {
        background-color: #FFF;
        /*border: 1px solid #000;*/
        position: absolute;
        margin-top: -200px;
        margin-left: -100px;
        z-index: 32767;
    }

    .ds_tbl {
        background-color: #FFF;
    }

    .ds_head {
        background-color: #333;
        color: #FFF;
        font-family: Arial, Helvetica, sans-serif;
        font-size: 10px;
        font-weight: bold;
        text-align: center;
        letter-spacing: 2px;
    }

    .ds_subhead {
        background-color: #CCC;
        color: #000;
        font-size: 10px;
        font-weight: bold;
        text-align: center;
        font-family: Arial, Helvetica, sans-serif;
        width: 16px;
    }

    .ds_cell {
        background-color: #EEE;
        color: #000;
        font-size: 10px;
        text-align: center;
        font-family: Arial, Helvetica, sans-serif;
        padding: 5px;
        cursor: pointer;
    }

    .ds_cell:hover {
        background-color: #F3F3F3;
    } /* This hover code won't work for IE */

    </style>
    </head>
    <body>

    <table class="ds_box" cellpadding="0" cellspacing="0" id="ds_conclass" style="display: none;">
    <tr><td id="ds_calclass">
    </td></tr>
    </table>

    <script type="text/javascript">
    // <!-- <![CDATA[

    // Project: Dynamic Date Selector (DtTvB) - 2006-03-16
    // Script featured on JavaScript Kit- http://www.javascriptkit.com
    // Code begin...
    // Set the initial date.
    var ds_i_date = new Date();
    ds_c_month = ds_i_date.getMonth() + 1;
    ds_c_year = ds_i_date.getFullYear();

    // Get Element By Id
    function ds_getel(id) {
        return document.getElementById(id);
    }

    // Get the left and the top of the element.
    function ds_getleft(el) {
        var tmp = el.offsetLeft;
        el = el.offsetParent
        while(el) {
            tmp += el.offsetLeft;
            el = el.offsetParent;
        }
        return tmp;
    }
    function ds_gettop(el) {
        var tmp = el.offsetTop;
        el = el.offsetParent
        while(el) {
            tmp += el.offsetTop;
            el = el.offsetParent;
        }
        return tmp;
    }

    // Output Element
    var ds_oe = ds_getel('ds_calclass');
    // Container
    var ds_ce = ds_getel('ds_conclass');

    // Output Buffering
    var ds_ob = ''; 
    function ds_ob_clean() {
        ds_ob = '';
    }
    function ds_ob_flush() {
        ds_oe.innerHTML = ds_ob;
        ds_ob_clean();
    }
    function ds_echo(t) {
        ds_ob += t;
    }

    var ds_element; // Text Element...

    var ds_monthnames = [
    'January', 'February', 'March', 'April', 'May', 'June',
    'July', 'August', 'September', 'October', 'November', 'December'
    ]; // You can translate it for your language.

    var ds_daynames = [
    'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'
    ]; // You can translate it for your language.

    // Calendar template
    function ds_template_main_above(t) {
        return '<table cellpadding="3" cellspacing="1" class="ds_tbl">'
             + '<tr>'
             + '<td class="ds_head" style="cursor: pointer" onclick="ds_py();"><<</td>'
             + '<td class="ds_head" style="cursor: pointer" onclick="ds_pm();"><</td>'
             + '<td class="ds_head" style="cursor: pointer" onclick="ds_hi();" colspan="3">[Close]</td>'
             + '<td class="ds_head" style="cursor: pointer" onclick="ds_nm();">></td>'
             + '<td class="ds_head" style="cursor: pointer" onclick="ds_ny();">>></td>'
             + '</tr>'
             + '<tr>'
             + '<td colspan="7" class="ds_head">' + t + '</td>'
             + '</tr>'
             + '<tr>';
    }

    function ds_template_day_row(t) {
        return '<td class="ds_subhead">' + t + '</td>';
        // Define width in CSS, XHTML 1.0 Strict doesn't have width property for it.
    }

    function ds_template_new_week() {
        return '</tr><tr>';
    }

    function ds_template_blank_cell(colspan) {
        return '<td colspan="' + colspan + '"></td>'
    }

    function ds_template_day(d, m, y) {
        return '<td class="ds_cell" onclick="ds_onclick(' + d + ',' + m + ',' + y + ')">' + d + '</td>';
        // Define width the day row.
    }

    function ds_template_main_below() {
        return '</tr>'
             + '</table>';
    }

    // This one draws calendar...
    function ds_draw_calendar(m, y) {
        // First clean the output buffer.
        ds_ob_clean();
        // Here we go, do the header
        ds_echo (ds_template_main_above(ds_monthnames[m - 1] + ' ' + y));
        for (i = 0; i < 7; i ++) {
            ds_echo (ds_template_day_row(ds_daynames[i]));
        }
        // Make a date object.
        var ds_dc_date = new Date();
        ds_dc_date.setMonth(m - 1);
        ds_dc_date.setFullYear(y);
        ds_dc_date.setDate(1);
        if (m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12) {
            days = 31;
        } else if (m == 4 || m == 6 || m == 9 || m == 11) {
            days = 30;
        } else {
            days = (y % 4 == 0) ? 29 : 28;
        }
        var first_day = ds_dc_date.getDay();
        var first_loop = 1;
        // Start the first week
        ds_echo (ds_template_new_week());
        // If sunday is not the first day of the month, make a blank cell...
        if (first_day != 0) {
            ds_echo (ds_template_blank_cell(first_day));
        }
        var j = first_day;
        for (i = 0; i < days; i ++) {
            // Today is sunday, make a new week.
            // If this sunday is the first day of the month,
            // we've made a new row for you already.
            if (j == 0 && !first_loop) {
                // New week!!
                ds_echo (ds_template_new_week());
            }
            // Make a row of that day!
            ds_echo (ds_template_day(i + 1, m, y));
            // This is not first loop anymore...
            first_loop = 0;
            // What is the next day?
            j ++;
            j %= 7;
        }
        // Do the footer
        ds_echo (ds_template_main_below());
        // And let's display..
        ds_ob_flush();
        // Scroll it into view.
        ds_ce.scrollIntoView();
    }

    // A function to show the calendar.
    // When user click on the date, it will set the content of t.
    function ds_sh(t) {
        // Set the element to set...
        ds_element = t;
        // Make a new date, and set the current month and year.
        var ds_sh_date = new Date();
        ds_c_month = ds_sh_date.getMonth() + 1;
        ds_c_year = ds_sh_date.getFullYear();
        // Draw the calendar
        ds_draw_calendar(ds_c_month, ds_c_year);
        // To change the position properly, we must show it first.
        ds_ce.style.display = '';
        // Move the calendar container!
        the_left = ds_getleft(t);
        the_top = ds_gettop(t) + t.offsetHeight;
        ds_ce.style.left = the_left + 'px';
        ds_ce.style.top = the_top + 'px';
        // Scroll it into view.
        ds_ce.scrollIntoView();
    }

    // Hide the calendar.
    function ds_hi() {
        ds_ce.style.display = 'none';
    }

    // Moves to the next month...
    function ds_nm() {
        // Increase the current month.
        ds_c_month ++;
        // We have passed December, let's go to the next year.
        // Increase the current year, and set the current month to January.
        if (ds_c_month > 12) {
            ds_c_month = 1; 
            ds_c_year++;
        }
        // Redraw the calendar.
        ds_draw_calendar(ds_c_month, ds_c_year);
    }

    // Moves to the previous month...
    function ds_pm() {
        ds_c_month = ds_c_month - 1; // Can't use dash-dash here, it will make the page invalid.
        // We have passed January, let's go back to the previous year.
        // Decrease the current year, and set the current month to December.
        if (ds_c_month < 1) {
            ds_c_month = 12; 
            ds_c_year = ds_c_year - 1; // Can't use dash-dash here, it will make the page invalid.
        }
        // Redraw the calendar.
        ds_draw_calendar(ds_c_month, ds_c_year);
    }

    // Moves to the next year...
    function ds_ny() {
        // Increase the current year.
        ds_c_year++;
        // Redraw the calendar.
        ds_draw_calendar(ds_c_month, ds_c_year);
    }

    // Moves to the previous year...
    function ds_py() {
        // Decrease the current year.
        ds_c_year = ds_c_year - 1; // Can't use dash-dash here, it will make the page invalid.
        // Redraw the calendar.
        ds_draw_calendar(ds_c_month, ds_c_year);
    }

    // Format the date to output.
    function ds_format_date(d, m, y) {
        // 2 digits month.
        m2 = '00' + m;
        m2 = m2.substr(m2.length - 2);
        // 2 digits day.
        d2 = '00' + d;
        d2 = d2.substr(d2.length - 2);
        // YYYY-MM-DD
        return d2 + '.' + m2 + '.' + y;
    }

    // When the user clicks the day.
    function ds_onclick(d, m, y) {
        // Hide the calendar.
        ds_hi();
        // Set the value of it, if we can.
        if (typeof(ds_element.value) != 'undefined') {
            ds_element.value = ds_format_date(d, m, y);
        // Maybe we want to set the HTML in it.
        } else if (typeof(ds_element.innerHTML) != 'undefined') {
            ds_element.innerHTML = ds_format_date(d, m, y);
        // I don't know how should we display it, just alert it to user.
        } else {
            alert (ds_format_date(d, m, y));
        }
    }

    // And here is the end.

    // ]]> -->
    </script>
    <!-- Ende neuer Kalender!!!!_____________________________________________-->
    </head>

    <body>
    <div style="width:260px; overflow:hidden; color: #3e9c2a;">
    <form title="contactform" name="Formular" action="" method="post" onsubmit="return chkFormular()" accept-charset="utf-8">
    <table cellspacing="1">
      <tr>
        <td style="width:80px">Vorname:</td>
        <td><input name="Vorname" type="text" size="19" maxlength="40" />*</td>
      </tr>
      <tr>
        <td>Nachname:</td>
        <td><input name="Nachname" type="text" size="19" maxlength="40" />*</td>
      </tr>
      <tr>
        <td>Adresse:</td>
        <td><input name="Adresse" type="text" size="19" maxlength="100" />*</td>
      </tr>
      <tr>
        <td>PLZ / Ort:</td>
        <td><input name="PLZ" type="text" size="4" maxlength="8" /> / 
    <input name="Ort" type="text" size="9" maxlength="50" />*</td>
      </tr>
      <tr>
        <td>E-Mail:</td>
        <td><input name="Mail" type="text" size="19" maxlength="100" />*</td>
      </tr>
      <tr>
        <td>Erwachsene:</td>
        <td><select type="checkbox" style="width:136px" name="Erwachsene[]">
          <option>1</option>
          <option>2</option>
          <option>3</option>
          <option>4</option>
          <option>5</option>
          <option>6</option>
          <option>7</option>
          <option>8</option>
          <option>9</option>
          <option>10</option>
          <option>11</option>
          <option>12</option>
          <option>13</option>
          <option>14</option>
          <option>15</option>
          <option>16</option>
          <option>17</option>
          <option>18</option>
          <option>19</option>
          <option>20</option>
    </select>*</td>
      </tr>
       <tr>
        <td>Kinder:</td>
        <td><select type="checkbox" style="width:136px" name="Kinder[]">
          <option></option>
          <option>1</option>
          <option>2</option>
          <option>3</option>
          <option>4</option>
          <option>5</option>
          <option>6</option>
          <option>7</option>
          <option>8</option>
          <option>9</option>
          <option>10</option>
          <option>11</option>
          <option>12</option>
          <option>13</option>
          <option>14</option>
          <option>15</option>
          <option>16</option>
          <option>17</option>
          <option>18</option>
          <option>19</option>
          <option>20</option>
    </select></td>
      </tr>
      <tr>
        <td>Von:</td>
        <td>
        <input onclick="ds_sh(this);" name="Von" type="text" size="15" maxlength="10" />*</td>
      </tr>
      <tr>
        <td>Bis:</td>
        <td><input onclick="ds_sh(this);" name="Bis" type="text" size="15" maxlength="10" />*</td>
      </tr>
    </table>
    <p>Kommentar:<br/>
    <textarea name="Kommentar" style="width:220px; height:230px"></textarea>
    </p>
    <div class="spam_protect">
            <label for="nospam">Dieses Feld bitte nicht ausfüllen! (Spamschutz)</label>
    <input id="nospam" name="nospam" type="text" /></div>

    <p>
    <label for="c_aptcha">Sicherheitsfrage: <br/>
    <?php echo $captcha?></label><br/>
    <!--<a style="color: #fff; font-size:12px">Bitte alles klein schreiben.</a>
    <br/>-->
    <input id="c_aptcha" name="c_aptcha" type="text" size="30" /><br/>
    <input id="s_end" name="s_end" align="left" type="submit" value="Absenden" /><input style="margin-left: 26px;" type="reset" value="Abbrechen"> 


    </p>
    </form>
    </div>
    </body>
    </html>
    Was übersehe ich hier das der Spamschutz nicht greift???
    Dankeschön beireits im Voraus für eure Hilfe!!!


  • #2
    Hi,

    ich habe mir selbst ein Formular erstellt das ich
    sieht teilweise wie ein fertiges Script aus.

    um hier auch ein bisschen Sicherheit hinein zu bringen,
    hab ich ein Capacha mit eigenen Fragen und eine leere Zeile eingefügt,
    imho ein "pseudo-Sicherheit". Schau mal hier ein paar Alternative-Ideen:

    http://stackoverflow.com/questions/6...ive-to-captcha
    http://www.1ngo.de/web/captcha-spam.html
    http://www.sitepoint.com/captcha-alternatives/

    PHP-Code:
    if ($_SERVER['REQUEST_METHOD'] === "POST") { 
    Sinnvoller ist if(isset($_POST["s_end"])){ usw.

    PHP-Code:
        mail(
            
    $zieladresse
            
    mb_encode_mimeheader($betreff"utf-8""Q"), 
            
    $mailtext,
            
    implode("\n"$header
    Falsch. Du solltest definitiv eine Mailerklasse, wie z.B. PHPMailer oder SWIFTMailer nutzen (http://www.robo47.net/text/38-Mail-ist-tot-es-lebe-mail).

    PHP-Code:
    //..Start Formchecker und capacha
    session_start(); 
    üblicherweise hast du das in der ersten Zeile.

    PHP-Code:
        if(!empty($_POST['nospam'])) {
            exit(); 
    // Honepot 
    m.E. schlechter Programmierstil: besser Fehler abfangen und verarbeiten und nicht Script abbrechen.

    PHP-Code:
    function chkFormular () {
      if (
    document.Formular.Vorname.value == "") {
        
    alert("Bitte Ihren Vorname eingeben!");
        
    document.Formular.Vorname.focus();
        return 
    false;
      }
      if (
    document.Formular.Nachname.value == "") {
        
    alert("Bitte Ihren Nachname eingeben!");
        
    document.Formular.Nachname.focus();
        return 
    false;
      }
      if (
    document.Formular.Adresse.value == "") {
        
    alert("Bitte Ihre Adresse eingeben!");
        
    document.Formular.Adresse.focus();
        return 
    false;
      }
    /* usw. */ 
    Die Validierung sollte nicht nur clientseitig sondern auch serverseitig erfolgen, falls jemand JavaScript deaktiviert hat und das ist keine wirkliche E-Mail Syntax Prüfung: if (document.Formular.Mail.value.indexOf("@") == -1) {

    PHP-Code:
    alert("Bitte wälen sie den Beginn ihres Aufenthaltes aus!"); 
    Rechtschreibfehler korrigieren - nicht elementar wichtig, aber wirkt professioneller.

    PHP-Code:
    <body>

    <
    table class="ds_box" cellpadding="0" cellspacing="0" id="ds_conclass" style="display: none;">
    <
    tr><td id="ds_calclass">
    </
    td></tr>
    </
    table>

    <
    script type="text/javascript">
    // <!-- <![CDATA[ 
    Warum ist ein script Bereich im Body? Scheint hier nicht notwendig zu sein!

    PHP-Code:
    // ]]> -->
    </script>
    <!-- Ende neuer Kalender!!!!_____________________________________________-->
    </head>

    <body> 
    Danach nochmal body?? Syntax korrigieren & nachprüfen.

    PHP-Code:
    <?php echo $captcha?>
    Lerne debuggen. Wird der Wert erzeugt, den du willst? Welcher steht im Hidden Feld? Welcher wird übergeben etc.?! Dann findest Du den Captcha Fehler schnell.

    mfg wolf29
    while (!asleep()) sheep++;

    Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

    Kommentar


    • #3
      Hi Wolf,

      Da hast du teilweise recht, hab mit hier ein paar fertige scripts gesucht welche ich dann ein wenig angepasst nur leider hab ich da irgendwo misst gebaut so wie es aussieht. Ich hab zwar kein Problem mit HTML aber php und Java hab ich leider nicht so drauf, brauch ich hier aber leider...

      Kommentar


      • #4
        Ich hab zwar kein Problem mit HTML
        Naja, wolf29 hat Dich schon auf ein zwei Ungereimtheiten hingewiesen.
        aber php und Java hab ich leider nicht so drauf, brauch ich hier aber leider
        Du brauchst hier Java Warum nutzt Du dann JavaScript?!
        Competence-Center -> Enjoy the Informatrix
        PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

        Kommentar


        • #5
          naja so war das nicht gemeint, eigentlich brauch ich Java hier nicht, es soll einfach funktionieren, ich bin mir sicher das man die Prüfungen welche in meinem Formular mit JAVASCRIPT durchgeführt werden auch in Php einbinden könnte. Lieg ich da richtig?
          Und den selbst eingebauten Formmailer haltet ihr persönlich für nicht Vorteilhaft? Richtig?

          Kommentar


          • #6
            Ja.

            Was übersehe ich hier das der Spamschutz nicht greift???
            Du schickst erst die Mail ab und schaust danach was mit dem Captcha (und nicht Capacha) ist oO

            Kommentar


            • #7
              Vorerst möchte ich mich mal für eure Hilfe Beispiele bei euch recht bedanken.
              ich hab auch soweit mal alles richtig gestellt.
              Nun hab ich aber das Problem das der CAPTCHA funktioniert dafür wird die Befüllung der Zeilen nicht mehr überprüft.
              Ich weis dass ich zwischen Zeile 9-14 das Javascript chkFormular () aufrufen muss, aber wie und wo konnte ich noch nicht lösen, darf ich hier eure Hilfe nochmal in Anspruch nehmen,
              ich hatte zwar ein paar Wege versucht aber keinen Weg der funktioniert gefunden.
              Wäre das eventuell so möglich?

              echo '<script type="text/javascript">chkFormular ()</script>';
              Wenn ja, in welche Zeile muss ich es setzen?

              PHP-Code:
              <?php
              //..Start Formchecker und captcha
              session_start();
               
              if(isset(
              $_POST['s_end'])) {
                  if(!empty(
              $_POST['nospam'])) {
                      exit(); 
              // Honepot
                  
              } else {
                      if(isset(
              $_SESSION['answer']) && $_SESSION['answer'] == strtolower($_POST['c_aptcha'])) {
                          echo 
              'Die Spamschutz-Frage wurde richtig beantwortet.';
                          unset(
              $_SESSION['answer']);
                          
              // Weitere Validierung, ggf. Weiterleitung
                      
              } else {
                  exit(
              '<p style="font-size: 20px; color: #fff;">
                  SORRY!!!</> 
                          <p style="color:#fff;">
                          Spamschutzfrage wurde  nicht <br />
                          oder falsch beantwortet! <br />
                          Bitte verwenden Sie den<br /> 
                          ZURÜCK BUTTON <br />
                          Ihres Browsers um zum <br />
                          Formular zurück zu kommen.</p>'
              );
                      }
               
                  }    
              } else {
                  
              $qa = array();
               
                  
              $qa[] = array('Captcha Fragen'          => 'Antwort');
               
                  
              $rand rand(0, (count($qa)-1)); // Eine zufällige Frage auswählen
                  
              $quest $qa[$rand];
               
                  
              $captcha key($quest); // Unsere Frage...
                  
              $_SESSION['answer'] = $quest[$captcha]; // ..und die dazugehörige Antwort
              }


              /**
               * Konfiguration 
               *
               * Bitte passen Sie die folgenden Werte an, bevor Sie das Script benutzen!
               * 
               * Das Skript bitte in UTF-8 abspeichern (ohne BOM).
               */
               
              // An welche Adresse sollen die Mails gesendet werden?
              $zieladresse 'Empfänger@mail.at';

              // Welche Adresse soll als Absender angegeben werden?
              // (Manche Hoster lassen diese Angabe vor dem Versenden der Mail ueberschreiben)
              $absenderadresse 'Absender@mail.at';

              // Welcher Absendername soll verwendet werden?
              $absendername 'Kontaktformular';

              // Welchen Betreff sollen die Mails erhalten?
              $betreff 'Zimmeranfrage';

              // Zu welcher Seite soll als "Danke-Seite" weitergeleitet werden?
              // Wichtig: Sie muessen hier eine gueltige HTTP-Adresse angeben!
              $urlDankeSeite 'Dankeseite';

              // Welche(s) Zeichen soll(en) zwischen dem Feldnamen und dem angegebenen Wert stehen?
              $trenner ":\t"// Doppelpunkt + Tabulator

              /**
               * Ende Konfiguration
               */

              /*if ($_SERVER['REQUEST_METHOD'] === "POST")*/
                
              if(isset($_POST["s_end"])) {

                  
              $header = array();
                  
              $header[] = "From: ".mb_encode_mimeheader($absendername"utf-8""Q")." <".$absenderadresse.">";
                  
              $header[] = "MIME-Version: 1.0";
                  
              $header[] = "Content-type: text/plain; charset=utf-8";
                  
              $header[] = "Content-transfer-encoding: 8bit";
                  
                  
              $mailtext "";

                  foreach (
              $_POST as $name => $wert) {
                      if (
              is_array($wert)) {
                          foreach (
              $wert as $einzelwert) {
                              
              $mailtext .= $name.$trenner.$einzelwert."\n";
                          }
                      } else {
                          
              $mailtext .= $name.$trenner.$wert."\n";
                      }
                  }

                  
              mail(
                      
              $zieladresse
                      
              mb_encode_mimeheader($betreff"utf-8""Q"), 
                      
              $mailtext,
                      
              implode("\n"$header)
                  ) or die(
              "Die Mail konnte nicht versendet werden.");
                  
              header("Location: $urlDankeSeite");
                  exit;
              }

              header("Content-type: text/html; charset=utf-8");

              ?>

              <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
              <html xmlns="http://www.w3.org/1999/xhtml">
              <head>
              <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
              <title>Unbenanntes Dokument</title>
              <script type="text/javascript" src="calendarDateInput.js">
              /***********************************************
              * Jason's Date Input Calendar- By Jason Moon http://calendar.moonscript.com/dateinput.cfm
              * Script featured on and available at http://www.dynamicdrive.com
              * Keep this notice intact for use.
              ***********************************************/
              </script>
              <script src="SpryAssets/SpryValidationTextField.js" type="text/javascript"></script>
              <script  type="text/javascript">
              function chkFormular () {
                if (document.Formular.Vorname.value == "") {
                  alert("Bitte Ihren Vorname eingeben!");
                  document.Formular.Vorname.focus();
                  return false;
                }
                if (document.Formular.Nachname.value == "") {
                  alert("Bitte Ihren Nachname eingeben!");
                  document.Formular.Nachname.focus();
                  return false;
                }
                if (document.Formular.Adresse.value == "") {
                  alert("Bitte Ihre Adresse eingeben!");
                  document.Formular.Adresse.focus();
                  return false;
                }
                if (document.Formular.PLZ.value == "") {
                  alert("Bitte Ihre Postleitzahl eingeben!");
                  document.Formular.PLZ.focus();
                  return false;
                }
                if (document.Formular.Ort.value == "") {
                  alert("Bitte Ihren Ort eingeben!");
                  document.Formular.Ort.focus();
                  return false;
                }
                if (document.Formular.Mail.value == "") {
                  alert("Bitte Ihre E-Mail-Adresse eingeben!");
                  document.Formular.Mail.focus();
                  return false;
                }
                if (document.Formular.Mail.value.indexOf("@") == -1) {
                  alert("Keine E-Mail-Adresse!");
                  document.Formular.Mail.focus();
                  return false;
                }
                if (document.Formular.Von.value == "") {
                  alert("Bitte wählen sie den Beginn ihres Aufenthaltes aus!");
                  document.Formular.Von.focus();
                  return false;
                }
                if (document.Formular.Bis.value == "") {
                  alert("Bitte wählen sie das Ende ihres Aufenthaltes aus!");
                  document.Formular.Bis.focus();
                  return false;
                }
              }
              </script>
              <script type="text/javascript">
              var _calPickDir = 'calpick/';
              function MM_jumpMenu(targ,selObj,restore){ //v3.0
                eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
                if (restore) selObj.selectedIndex=0;
              }
              </script>
                  <!--<script type="text/javascript" src="calpick/calpick.js"></script>-->
              <!-- Beginn neuer Kalender!!!!_____________________________________________-->
              <style type="text/css">
              /*Form. Protect= Sicherheitsfeld!!!*/
              form .spam_protect { display: none; }

              .ds_box {
                  background-color: #FFF;
                  /*border: 1px solid #000;*/
                  position: absolute;
                  margin-top: -200px;
                  margin-left: -100px;
                  z-index: 32767;
              }

              .ds_tbl {
                  background-color: #FFF;
              }

              .ds_head {
                  background-color: #333;
                  color: #FFF;
                  font-family: Arial, Helvetica, sans-serif;
                  font-size: 10px;
                  font-weight: bold;
                  text-align: center;
                  letter-spacing: 2px;
              }

              .ds_subhead {
                  background-color: #CCC;
                  color: #000;
                  font-size: 10px;
                  font-weight: bold;
                  text-align: center;
                  font-family: Arial, Helvetica, sans-serif;
                  width: 16px;
              }

              .ds_cell {
                  background-color: #EEE;
                  color: #000;
                  font-size: 10px;
                  text-align: center;
                  font-family: Arial, Helvetica, sans-serif;
                  padding: 5px;
                  cursor: pointer;
              }

              .ds_cell:hover {
                  background-color: #F3F3F3;
              } /* This hover code won't work for IE */

              </style>

              <table class="ds_box" cellpadding="0" cellspacing="0" id="ds_conclass" style="display: none;">
              <tr><td id="ds_calclass">
              </td></tr>
              </table>

              <script type="text/javascript">
              // <!-- <![CDATA[

              // Project: Dynamic Date Selector (DtTvB) - 2006-03-16
              // Script featured on JavaScript Kit- http://www.javascriptkit.com
              // Code begin...
              // Set the initial date.
              var ds_i_date = new Date();
              ds_c_month = ds_i_date.getMonth() + 1;
              ds_c_year = ds_i_date.getFullYear();

              // Get Element By Id
              function ds_getel(id) {
                  return document.getElementById(id);
              }

              // Get the left and the top of the element.
              function ds_getleft(el) {
                  var tmp = el.offsetLeft;
                  el = el.offsetParent
                  while(el) {
                      tmp += el.offsetLeft;
                      el = el.offsetParent;
                  }
                  return tmp;
              }
              function ds_gettop(el) {
                  var tmp = el.offsetTop;
                  el = el.offsetParent
                  while(el) {
                      tmp += el.offsetTop;
                      el = el.offsetParent;
                  }
                  return tmp;
              }

              // Output Element
              var ds_oe = ds_getel('ds_calclass');
              // Container
              var ds_ce = ds_getel('ds_conclass');

              // Output Buffering
              var ds_ob = ''; 
              function ds_ob_clean() {
                  ds_ob = '';
              }
              function ds_ob_flush() {
                  ds_oe.innerHTML = ds_ob;
                  ds_ob_clean();
              }
              function ds_echo(t) {
                  ds_ob += t;
              }

              var ds_element; // Text Element...

              var ds_monthnames = [
              'January', 'February', 'March', 'April', 'May', 'June',
              'July', 'August', 'September', 'October', 'November', 'December'
              ]; // You can translate it for your language.

              var ds_daynames = [
              'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'
              ]; // You can translate it for your language.

              // Calendar template
              function ds_template_main_above(t) {
                  return '<table cellpadding="3" cellspacing="1" class="ds_tbl">'
                       + '<tr>'
                       + '<td class="ds_head" style="cursor: pointer" onclick="ds_py();"><<</td>'
                       + '<td class="ds_head" style="cursor: pointer" onclick="ds_pm();"><</td>'
                       + '<td class="ds_head" style="cursor: pointer" onclick="ds_hi();" colspan="3">[Close]</td>'
                       + '<td class="ds_head" style="cursor: pointer" onclick="ds_nm();">></td>'
                       + '<td class="ds_head" style="cursor: pointer" onclick="ds_ny();">>></td>'
                       + '</tr>'
                       + '<tr>'
                       + '<td colspan="7" class="ds_head">' + t + '</td>'
                       + '</tr>'
                       + '<tr>';
              }

              function ds_template_day_row(t) {
                  return '<td class="ds_subhead">' + t + '</td>';
                  // Define width in CSS, XHTML 1.0 Strict doesn't have width property for it.
              }

              function ds_template_new_week() {
                  return '</tr><tr>';
              }

              function ds_template_blank_cell(colspan) {
                  return '<td colspan="' + colspan + '"></td>'
              }

              function ds_template_day(d, m, y) {
                  return '<td class="ds_cell" onclick="ds_onclick(' + d + ',' + m + ',' + y + ')">' + d + '</td>';
                  // Define width the day row.
              }

              function ds_template_main_below() {
                  return '</tr>'
                       + '</table>';
              }

              // This one draws calendar...
              function ds_draw_calendar(m, y) {
                  // First clean the output buffer.
                  ds_ob_clean();
                  // Here we go, do the header
                  ds_echo (ds_template_main_above(ds_monthnames[m - 1] + ' ' + y));
                  for (i = 0; i < 7; i ++) {
                      ds_echo (ds_template_day_row(ds_daynames[i]));
                  }
                  // Make a date object.
                  var ds_dc_date = new Date();
                  ds_dc_date.setMonth(m - 1);
                  ds_dc_date.setFullYear(y);
                  ds_dc_date.setDate(1);
                  if (m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12) {
                      days = 31;
                  } else if (m == 4 || m == 6 || m == 9 || m == 11) {
                      days = 30;
                  } else {
                      days = (y % 4 == 0) ? 29 : 28;
                  }
                  var first_day = ds_dc_date.getDay();
                  var first_loop = 1;
                  // Start the first week
                  ds_echo (ds_template_new_week());
                  // If sunday is not the first day of the month, make a blank cell...
                  if (first_day != 0) {
                      ds_echo (ds_template_blank_cell(first_day));
                  }
                  var j = first_day;
                  for (i = 0; i < days; i ++) {
                      // Today is sunday, make a new week.
                      // If this sunday is the first day of the month,
                      // we've made a new row for you already.
                      if (j == 0 && !first_loop) {
                          // New week!!
                          ds_echo (ds_template_new_week());
                      }
                      // Make a row of that day!
                      ds_echo (ds_template_day(i + 1, m, y));
                      // This is not first loop anymore...
                      first_loop = 0;
                      // What is the next day?
                      j ++;
                      j %= 7;
                  }
                  // Do the footer
                  ds_echo (ds_template_main_below());
                  // And let's display..
                  ds_ob_flush();
                  // Scroll it into view.
                  ds_ce.scrollIntoView();
              }

              // A function to show the calendar.
              // When user click on the date, it will set the content of t.
              function ds_sh(t) {
                  // Set the element to set...
                  ds_element = t;
                  // Make a new date, and set the current month and year.
                  var ds_sh_date = new Date();
                  ds_c_month = ds_sh_date.getMonth() + 1;
                  ds_c_year = ds_sh_date.getFullYear();
                  // Draw the calendar
                  ds_draw_calendar(ds_c_month, ds_c_year);
                  // To change the position properly, we must show it first.
                  ds_ce.style.display = '';
                  // Move the calendar container!
                  the_left = ds_getleft(t);
                  the_top = ds_gettop(t) + t.offsetHeight;
                  ds_ce.style.left = the_left + 'px';
                  ds_ce.style.top = the_top + 'px';
                  // Scroll it into view.
                  ds_ce.scrollIntoView();
              }

              // Hide the calendar.
              function ds_hi() {
                  ds_ce.style.display = 'none';
              }

              // Moves to the next month...
              function ds_nm() {
                  // Increase the current month.
                  ds_c_month ++;
                  // We have passed December, let's go to the next year.
                  // Increase the current year, and set the current month to January.
                  if (ds_c_month > 12) {
                      ds_c_month = 1; 
                      ds_c_year++;
                  }
                  // Redraw the calendar.
                  ds_draw_calendar(ds_c_month, ds_c_year);
              }

              // Moves to the previous month...
              function ds_pm() {
                  ds_c_month = ds_c_month - 1; // Can't use dash-dash here, it will make the page invalid.
                  // We have passed January, let's go back to the previous year.
                  // Decrease the current year, and set the current month to December.
                  if (ds_c_month < 1) {
                      ds_c_month = 12; 
                      ds_c_year = ds_c_year - 1; // Can't use dash-dash here, it will make the page invalid.
                  }
                  // Redraw the calendar.
                  ds_draw_calendar(ds_c_month, ds_c_year);
              }

              // Moves to the next year...
              function ds_ny() {
                  // Increase the current year.
                  ds_c_year++;
                  // Redraw the calendar.
                  ds_draw_calendar(ds_c_month, ds_c_year);
              }

              // Moves to the previous year...
              function ds_py() {
                  // Decrease the current year.
                  ds_c_year = ds_c_year - 1; // Can't use dash-dash here, it will make the page invalid.
                  // Redraw the calendar.
                  ds_draw_calendar(ds_c_month, ds_c_year);
              }

              // Format the date to output.
              function ds_format_date(d, m, y) {
                  // 2 digits month.
                  m2 = '00' + m;
                  m2 = m2.substr(m2.length - 2);
                  // 2 digits day.
                  d2 = '00' + d;
                  d2 = d2.substr(d2.length - 2);
                  // YYYY-MM-DD
                  return d2 + '.' + m2 + '.' + y;
              }

              // When the user clicks the day.
              function ds_onclick(d, m, y) {
                  // Hide the calendar.
                  ds_hi();
                  // Set the value of it, if we can.
                  if (typeof(ds_element.value) != 'undefined') {
                      ds_element.value = ds_format_date(d, m, y);
                  // Maybe we want to set the HTML in it.
                  } else if (typeof(ds_element.innerHTML) != 'undefined') {
                      ds_element.innerHTML = ds_format_date(d, m, y);
                  // I don't know how should we display it, just alert it to user.
                  } else {
                      alert (ds_format_date(d, m, y));
                  }
              }

              // And here is the end.

              // ]]> -->
              </script>
              <!-- Ende neuer Kalender!!!!_____________________________________________-->
              </head>

              <body>
              <div style="width:260px; overflow:hidden; color: #3e9c2a;">
              <form title="contactform" name="Formu" action="" method="post" onsubmit="return chkFormular()" accept-charset="utf-8">
              <table cellspacing="1">
                <!--<caption>
                  Formular
                </caption>-->
                <tr>
                  <td style="width:80px">Vorname:</td>
                  <td><input name="Vorname" type="text" size="19" maxlength="40" />*</td>
                </tr>
                <tr>
                  <td>Nachname:</td>
                  <td><input name="Nachname" type="text" size="19" maxlength="40" />*</td>
                </tr>
                <tr>
                  <td>Adresse:</td>
                  <td><input name="Adresse" type="text" size="19" maxlength="100" />*</td>
                </tr>
                <tr>
                  <td>PLZ / Ort:</td>
                  <td><input name="PLZ" type="text" size="4" maxlength="8" /> / 
              <input name="Ort" type="text" size="9" maxlength="50" />*</td>
                </tr>
                <tr>
                  <td>E-Mail:</td>
                  <td><input name="Mail" type="text" size="19" maxlength="100" />*</td>
                </tr>
                <tr>
                  <td>Erwachsene:</td>
                  <td><select type="checkbox" style="width:136px" name="Erwachsene[]">
                    <option>1</option>
                    <option>2</option>
                    <option>3</option>
                    <option>4</option>
                    <option>5</option>
                    <option>6</option>
                    <option>7</option>
                    <option>8</option>
                    <option>9</option>
                    <option>10</option>
                    <option>11</option>
                    <option>12</option>
                    <option>13</option>
                    <option>14</option>
                    <option>15</option>
                    <option>16</option>
                    <option>17</option>
                    <option>18</option>
                    <option>19</option>
                    <option>20</option>
              </select>*</td>
                </tr>
                 <tr>
                  <td>Kinder:</td>
                  <td><select type="checkbox" style="width:136px" name="Kinder[]">
                    <option></option>
                    <option>1</option>
                    <option>2</option>
                    <option>3</option>
                    <option>4</option>
                    <option>5</option>
                    <option>6</option>
                    <option>7</option>
                    <option>8</option>
                    <option>9</option>
                    <option>10</option>
                    <option>11</option>
                    <option>12</option>
                    <option>13</option>
                    <option>14</option>
                    <option>15</option>
                    <option>16</option>
                    <option>17</option>
                    <option>18</option>
                    <option>19</option>
                    <option>20</option>
              </select></td>
                </tr>
                <tr>
                  <td>Von:</td>
                  <td>
                  <input onclick="ds_sh(this);" name="Von" type="text" size="15" maxlength="10" />
                  <!--<script type="text/javascript">
                  AttachCalendarButton(document.Formular.Von);
                  </script>-->*</td>
                </tr>
                <tr>
                  <td>Bis:</td>
                  <td><input onclick="ds_sh(this);" name="Bis" type="text" size="15" maxlength="10" />
                  <!--<script type="text/javascript">
                  AttachCalendarButton(document.Formular.Bis);
                  </script>-->*</td>
                </tr>
              </table>
              <p>Kommentar:<br/>
              <textarea name="Kommentar" style="width:220px; height:230px"></textarea>
              </p>
              <div class="spam_protect">
                      <label for="nospam">Dieses Feld bitte nicht ausfüllen! (Spamschutz)</label>
              <input id="nospam" name="nospam" type="text" /></div>

              <p>
              <label for="c_aptcha">Sicherheitsfrage: <br/>
              <?php echo $captcha?></label><br/>
              -<a style="color: #fff; font-size:12px">Bitte die Antwort klein schreiben.</a>
              <br/>
              <input id="c_aptcha" name="c_aptcha" type="text" size="30" /><br/>
              <input id="s_end" name="s_end" align="left" type="submit" value="Absenden" /><input style="margin-left: 26px;" type="reset" value="Abbrechen"> 
              </p>
              </form>
              </div>
              </body>
              </html>

              Kommentar


              • #8
                Wäre das eventuell so möglich?
                Code:
                echo '<script type="text/javascript">chkFormular ()</script>';
                Damit schreibst du das "einfach so" in den HTML-Quelltext den du an den Browser rausschickst, dh sobald der Browser beim Aufbauen/Anzeigen (rendern) des HTML Codes an diese Stelle kommt wird die JS-Funktion ausgeführt, ich glaube das willst du nicht. Ich denke eher du willst diese Funktion aufrufen wenn jemand den submit-button drückt? Also in deinem Fall beim form Tag den onsubmit Handler nutzen (hab jquery jetzt auf die Schnelle nicht entdeckt).
                Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                PHP.de Wissenssammlung | Kein Support per PN

                Kommentar


                • #9
                  Also eigentlich möchte ich es so haben,
                  wenn jemand auf den submit-button klickt und die CAPTCHA Antwort stimmt soll bevor die mail
                  abgesendet wird das Script aufgerufen werden um meine Zellen auf Befüllung zu prüfen.

                  Kommentar


                  • #10
                    Na dann:
                    Also in deinem Fall beim form Tag den onsubmit Handler nutzen
                    Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                    PHP.de Wissenssammlung | Kein Support per PN

                    Kommentar


                    • #11
                      Ok werd ich heute mal versuchen!

                      Kommentar


                      • #12
                        Hallo Zusammen,
                        bin jetzt endlich mal dazugekommen um mir das nochmal anzusehen hab den Fehler auch gefunden,
                        jetzt hab ich allerdings das Problem das die Zeilen überprüft werden jedoch das Formular nach
                        Bestätigen des Hinweistextes trotzdem versendet wird. Wie kann ich das den abfangen???
                        geht um dieses Javascript hier???

                        PHP-Code:
                        <script  type="text/javascript">
                        function 
                        chkFormular () {
                          if (
                        document.Formular.Vorname.value == "") {
                            
                        alert("Bitte Ihren Vorname eingeben!");
                            
                        document.Formular.Vorname.focus();
                            return 
                        false;
                          }
                          if (
                        document.Formular.Nachname.value == "") {
                            
                        alert("Bitte Ihren Nachname eingeben!");
                            
                        document.Formular.Nachname.focus();
                            return 
                        false;
                          }
                          if (
                        document.Formular.Adresse.value == "") {
                            
                        alert("Bitte Ihre Adresse eingeben!");
                            
                        document.Formular.Adresse.focus();
                            return 
                        false;
                          }
                          if (
                        document.Formular.PLZ.value == "") {
                            
                        alert("Bitte Ihre Postleitzahl eingeben!");
                            
                        document.Formular.PLZ.focus();
                            return 
                        false;
                          }
                          if (
                        document.Formular.Ort.value == "") {
                            
                        alert("Bitte Ihren Ort eingeben!");
                            
                        document.Formular.Ort.focus();
                            return 
                        false;
                          }
                          if (
                        document.Formular.Mail.value == "") {
                            
                        alert("Bitte Ihre E-Mail-Adresse eingeben!");
                            
                        document.Formular.Mail.focus();
                            return 
                        false;
                          }
                          if (
                        document.Formular.Mail.value.indexOf("@") == -1) {
                            
                        alert("Keine E-Mail-Adresse!");
                            
                        document.Formular.Mail.focus();
                            return 
                        false;
                          }
                          if (
                        document.Formular.Von.value == "") {
                            
                        alert("Bitte wählen sie den Beginn ihres Aufenthaltes aus!");
                            
                        document.Formular.Von.focus();
                            return 
                        false;
                          }
                          if (
                        document.Formular.Bis.value == "") {
                            
                        alert("Bitte wählen sie das Ende ihres Aufenthaltes aus!");
                            
                        document.Formular.Bis.focus();
                            return 
                        false;
                          }
                        }
                        </script> 
                        Ich hab den Fehler selbst endeckt!
                        es fehlte einfach das "return" beim onsubmit....
                        Nun denke ich das mein Formular alles in allem ganz gut funktioniert

                        Kommentar

                        Lädt...
                        X