Ergebnis 1 bis 12 von 12
  1. #1
    extrachemo ist offline Jungspund
    registriert
    31-05-2012
    Beiträge
    13

    [PHP] CAPTCHA Abfrage in Kontaktformular einbinden

    Hallo,
    ich habe ein Kontaktformular "kontakt.php" es wird mit dem PHP Formmailer versendet. Es hat folgendem Code:

    PHP-Code:
    <?php
    ### Konfiguration ###
    # Empfänger des Formulars
    $strEmpfaenger 'info@ihre-domaine.de';
    # Absender des Formulars
    $strFrom       '"Formular"' .$_POST["email"];
    # Betreff des Formulars
    $strSubject    'Anfrage Formular';
    # Betätigungsseite wenn Formular versendt wurde
    $strReturnhtml 'kontakt_bestaetigung.html';
    # Trennzeichen zwischen dem Feldnamen und dem angegebenen Wert
    $strDelimiter  ":\t";
    ### Ende Konfiguration ###
    if($_POST)
    {
        if(
    $_POST['vorname'] && $_POST['nachname'] && $_POST['email'] && $_POST['text'])
        {
            
    $strMailtext "";
            while(list(
    $strName,$value) = each($_POST))
            {
                if(
    is_array($value))
                {
                    foreach(
    $value as $value_array)
                    {
                        
    $strMailtext .= $strName.$strDelimiter.$value_array."\n";
                    }
                }
                else
                {
                    
    $strMailtext .= $strName.$strDelimiter.$value."\n";
                }
            }
        }
        else die(
    'Bitte den Zurueck Butten Ihres Browsers betaetigen und alle Pflichtfelder ausfuellen.');
        if(
    get_magic_quotes_gpc())
        {
            
    $strMailtext stripslashes($strMailtext);
        }
            
    mail($strEmpfaenger$strSubject$strMailtext"Content-Type: text/plain; charset=UTF-8\nFrom: ".$strFrom"-f info@ihre-domaine.de")
            or die(
    "Die Mail konnte nicht versendet werden. Bitte den Zurueck Butten Ihres Browsers betaetigen.");
            
    header("Location: $strReturnhtml");
            exit;
    }
    ?>
    <!DOCTYPE html>
    <html lang="de">
    <head>
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <title>Kontakt</title>
    </head>
    <body onload="document.anfrage.vorname.focus();">
                      <div class="inhalt">
                        <h3><span>Ihre Kontaktdaten</span></h3>
                        <p>Die mit * markierten Felder sind Pflichtfelder</p>
                        <form action="<?php print $_SERVER['PHP_SELF']; ?>" method="post" name="anfrage" onsubmit="return chkFormular()">
                          <p>Anrede: 
                            <label>
                              <input type="radio" name="anrede" value="Frau " id="anrede_0" checked>
                              Frau</label>
                            <label>
                              <input type="radio" name="anrede" value="Herr " id="anrede_1">
                              Herr</label>
                          </p>
                          <p>* Vorname:<br>
                          <input name="vorname" type="text" size="50" maxlength="50"></p>
                          <p>* Nachname:<br>
                          <input name="nachname" type="text" size="50" maxlength="50"></p>
                          <p>Firma / Oganisation:<br>
                          <input name="firma" type="text" size="50" maxlength="50"></p>
                          <p>Straße und Nr.:<br>
                          <input name="strasse" type="text" size="50" maxlength="50"></p>
                          <p>Plz.:<br>
                          <input name="plz" type="text" size="5" maxlength="5"></p>
                          <p>Ort:<br>
                          <input name="ort" type="text" size="50" maxlength="50"></p>
                          <p>* E-Mail Adresse:<br>
                          <input name="email" type="text" size="50" maxlength="50"></p>
                          <p>Telefon:<br>
                          <input name="telefon" type="text" size="50" maxlength="50"></p>
                          <h3><span>Ihre Anfrage</span></h3>
                          <p>Ich / wir haben Interesse an:<br>
                            <label>
                              <input name="interesse[]" type="checkbox" id="interesse_0" value="musikshow" checked>
                              Musikshow</label>
                            <br>
                            <label>
                              <input type="checkbox" name="interesse[]" value="beschallung" id="interesse_1">
                              mit Beschallung</label>
                            <br>
                            <label>
                              <input type="checkbox" name="interesse[]" value="buehnenbeleuchtung" id="interesse_2">
                              mit Bühnenbeleuchtung</label>
                          </p>
                          <p>Meine / unsere Veranstaltung findet statt am:<br>
                          <input name="datum" type="text" size="10" maxlength="10"></p>
                          <p>Meine / unsere Veranstaltung findet statt in:<br>
                          <input name="in" type="text" size="40" maxlength="40"></p>
                          <p>Ich /wir wünschen Antwort:<br>
                            <label>
                              <input type="checkbox" name="antwort_per[]" value="mail" id="antwort_per_0" checked>
                            per e-Mail</label>
                            <br>
                            <label>
                              <input name="antwort_per[]" type="checkbox" id="antwort_per_1" value="rueckruf">
                              per Rückruf</label>
                            <br>
                          </p>
                          <p>* Ihr Anfrage Text:<br>
                            <textarea name="text" cols="50" rows="10"></textarea>
                          </p>
                          <p>Bitte Sicherheitscode eingeben<br>                      
                          <img src="captcha.php" alt="Sicherheitscode" title="Sicherheitscode" width="80" height="25" /> <input name="sicherheitscode" id="sicherheitscode" type="text" size="6" maxlength="6"></p>
                          <p><input name="senden" id="senden" type="submit" value="Anfrage absenden"> <input name="reset" type="reset" value="Anfrage löschen"></p>
                        </form>
                      </div>
    </html>


    In der 6 Zeile von unten ist eine "captcha.php" zum Einblenden vom Sicherheitscode eingefügt.
    Die "captcha.php" hat folgenden Code:

    PHP-Code:
    <?php
    // Session starten
    session_start();
    // Alten CAPTCHA-Code aus der Session loeschen
    unset( $_SESSION['captcha_code'] );

    // Das Cachen der Grafik verhindern
    header"Expires: Mon, 26 Jul 1997 05:00:00 GMT" );
    header"Last-Modified: " gmdate("D, d M Y H:i:s") . " GMT" );
    header"Cache-Control: no-store, no-cache, must-revalidate" );
    header"Cache-Control: post-check=0, pre-check=0"false );
    header"Pragma: no-cache" );

    // Dem Browser mitteilen das es sich hierbei um ein JPG handelt.
    header'Content-type: image/jpeg' );

    // Sicherheitscode generieren
    $AlphaNumerischerString "ABCDEFGH2345689";
    $ZufallString1 substrstr_shuffle$AlphaNumerischerString ), 0);
    $ZufallString2 substrstr_shuffle$AlphaNumerischerString ), 0);
    $ZufallString3 substrstr_shuffle$AlphaNumerischerString ), 0);
    $ZufallStringKomplett $ZufallString1.$ZufallString2.$ZufallString3;

    // Sicherheitscode in der Session speichern
    $_SESSION['captcha_code'] = md5$ZufallStringKomplett );

    // Grafik erzeugen und an den Browser senden
    $Schriftarten = array( "zachary.ttf""mtcorsva.ttf""gilligan.ttf");
    $Bilddatei imagecreatefrompng"hintergrund.png" );
    $TextFarbe1 imagecolorallocate$Bilddatei0125);
    $TextFarbe2 imagecolorallocate$Bilddatei1307090 );
    $TextFarbe3 imagecolorallocate$Bilddatei18090190 );
    imagettftext$Bilddatei1215324$TextFarbe1$Schriftarten[0], $ZufallString1 );
    imagettftext$Bilddatei1602615$TextFarbe2$Schriftarten[1], $ZufallString2 );
    imagettftext$Bilddatei14, -205318$TextFarbe3$Schriftarten[2], $ZufallString3 );
    imagejpeg$Bilddatei );

    // Grafik zerstoeren und Speicher freigeben
    imagedestroy$Bilddatei );
    ?>

    Meine Frage ist:
    Wie kann ich die Abfrage des CAPTCHA in meine "kontakt.php" einbauen damit die "kontakt.php" erst versendet wird wenn das CAPTCHA richtig eingegeben wurde?

    Für eure Hilfe vorab schon mal vielen Dank!

  2. #2
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.672

    AW: [PHP] CAPTCHA Abfrage in Kontaktformular einbinden

    Das Formular musst du immer absenden, da ja nur der Server (und der menschliche Besucher) den Inhalt des Captchas wissen sollte. In der "kontakt.php" musst du dann einfach überprüfen, ob der übergebene Wert auch mit dem in der Session übereinstimmt.

    PS: diese Art von Captchas helfen nicht wirklich gegen Bots... OCR und so...

  3. #3
    Kasalop ist offline Routinier
    registriert
    29-08-2012
    Beiträge
    398

    AW: [PHP] CAPTCHA Abfrage in Kontaktformular einbinden

    ja das captcha ist tatsächlich ein wenig sehr simple^^ kurze Anmerkung noch: nach dem vergleichen nicht vergessen das session feld wieder zu löschen, sonst ist das ein super easy hack ^^

    Lg Kasalop

  4. #4
    extrachemo ist offline Jungspund
    registriert
    31-05-2012
    Beiträge
    13

    AW: [PHP] CAPTCHA Abfrage in Kontaktformular einbinden

    Danke für eure Antworten.
    Da ich in PHP absoluter Anfänger bin und ich mir da echt schwer tue habe ich mir ein Script von hier Kontaktformular Homepage; PHP Mail Formular Script mit Spamschutz besorgt.
    Und es in meine Website integriert. Es läuft soweit und alles funktioniert. Könnt Ihr mir sagen ob diese Version besseren Schutz bietet gegen Spam, schädlichen Code usw.
    Vorab schon mal Danke für eure Hilfe.

  5. #5
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.672

    AW: [PHP] CAPTCHA Abfrage in Kontaktformular einbinden

    Naja - ich hab' das Captcha aus dem Demo mal in den erstbesten online OCR geschmissen und ein perfektes Ergebnis bekommen...

  6. #6
    Avatar von jspit
    jspit ist offline Lounge-Member
    registriert
    19-06-2009
    Beiträge
    1.710

    AW: [PHP] CAPTCHA Abfrage in Kontaktformular einbinden


  7. #7
    extrachemo ist offline Jungspund
    registriert
    31-05-2012
    Beiträge
    13

    AW: [PHP] CAPTCHA Abfrage in Kontaktformular einbinden

    Vielen Dank für die Hinweise, das schaue ich mir noch genauer an!

  8. #8
    extrachemo ist offline Jungspund
    registriert
    31-05-2012
    Beiträge
    13

    AW: [PHP] CAPTCHA Abfrage in Kontaktformular einbinden

    Zitat Zitat von kkapsner Beitrag anzeigen
    Naja - ich hab' das Captcha aus dem Demo mal in den erstbesten online OCR geschmissen und ein perfektes Ergebnis bekommen...
    OK das Captcha habe ich auf meiner Seite etwas verändert (Schrift, Größe, Farbe).
    Wie sicher ist der php Code selber? Kann man den ruhigen Gewissens verwenden? Geld kostet er ja auch, was aber auch OK ist wenn er gut ist!

  9. #9
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.672

    AW: [PHP] CAPTCHA Abfrage in Kontaktformular einbinden

    Ich hab' jetzt mal schnell drübergeschaut. Was wirklich Schlimmes hab' ich jetzt nicht gesehen, aber so richtig der Burner ist der Code jetzt auch nicht... Geld würd' ich dafür nicht ausgeben.

  10. #10
    extrachemo ist offline Jungspund
    registriert
    31-05-2012
    Beiträge
    13

    AW: [PHP] CAPTCHA Abfrage in Kontaktformular einbinden

    Zitat Zitat von kkapsner Beitrag anzeigen
    Ich hab' jetzt mal schnell drübergeschaut. Was wirklich Schlimmes hab' ich jetzt nicht gesehen, aber so richtig der Burner ist der Code jetzt auch nicht... Geld würd' ich dafür nicht ausgeben.
    Danke für die Antwort! Wo kann ich denn was Besseres bekommen. Bin ja auch bereit was zu Zahlen. Im Prinzip brauche ich einen PHP Formular Mailer der sicher ist (gegen Spam, Schadhafer Code usw.). Da ich erst am Anfang meiner PHP Kenntnisse stehe kann ich das nicht selber programmieren.

  11. #11
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.672

    AW: [PHP] CAPTCHA Abfrage in Kontaktformular einbinden

    Hm... ich kenn' jetzt nichts; hab' aber auch nicht gesucht. Mit den Tipps von jspit solltest du eigentlich selbst recht weit kommen.

  12. #12
    extrachemo ist offline Jungspund
    registriert
    31-05-2012
    Beiträge
    13

    AW: [PHP] CAPTCHA Abfrage in Kontaktformular einbinden

    Zitat Zitat von kkapsner Beitrag anzeigen
    Hm... ich kenn' jetzt nichts; hab' aber auch nicht gesucht. Mit den Tipps von jspit solltest du eigentlich selbst recht weit kommen.
    Ok . . . 1000 Dank für die Hilfe
    Und viele Grüße

Ähnliche Themen

  1. Abfrage für Kontaktformular auf verbotene Zeichen
    Von steve-pa im Forum JavaScript
    Antworten: 2
    Letzter Beitrag: 19-10-2011, 23:50
  2. Captcha Neu Laden
    Von NewJSBoy im Forum JavaScript
    Antworten: 3
    Letzter Beitrag: 08-01-2010, 00:26
  3. Captcha Bild neuladen
    Von laza86 im Forum JavaScript
    Antworten: 10
    Letzter Beitrag: 30-10-2007, 11:24
  4. [php] captcha class
    Von rasputin im Forum Script-Check
    Antworten: 11
    Letzter Beitrag: 09-02-2007, 19:13
  5. captcha funktioniert nicht
    Von planet4 im Forum Serverseitige Programmierung
    Antworten: 9
    Letzter Beitrag: 22-12-2006, 22:39

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •