PHP-Kontaktformular mit Grafik-Check

  • Hallo liebe Forengemeinde,

    ich benutze unten aufgeführtes Skript für ein PHP-Kontaktformular.
    Es funktioniert auch ganz gut und mit dem E-Mail-Check klappt auch
    alles.

    Das Problem ist, dass die ganzen Bots mittlerweile ja schon etwas
    schlauer sind und die ganzen Formulare korrekt ausfüllen.

    Daher wollte ich einfach eine Grafik mit einer Zahl oder einem Wort
    neben das Formular packen und eine Abfrage eben dieses Wortes
    einrichten, so dass der ganze Mist nicht mehr durchkommt.

    Da ich mich kaum mit PHP auskenne, benötige ich eure Hilfe und frage
    euch, wie das Skript stattdessen aussehen müsste? Muss die Abfrage
    in einer anderen Datei stattfinden, damit der Bot das Wort nicht schon
    in der PHP-Datei auslesen kann oder wie löst man das Problem?

    Vielen Dank euch im Voraus.

    kontakt.php:

  • Google mal nach captcha.
    Gibt haufenweise fertige Codes dafür.
    Über die Suchfunktion des Forums solltest du ebenfalls Erfolg haben, hatten witr hier schon öfters.

    Gruß,
    Jojo


  • Danke euch für eure Hilfe. Habe das Captcha-Verzeichnis und
    die Grafik und das Eingabefeld schon hinzugefügt. Jetzt habe
    ich nur noch das Problem, dass ich nicht weiß, an welcher Stelle
    genau ich folgenden Teil

    PHP
    <?php 
    session_start(); 
    if(isset($_SESSION['captcha_spam']) AND $_POST["sicherheitscode"] == $_SESSION['captcha_spam']){ 
    unset($_SESSION['captcha_spam']); 
    
    
    
    
    } 
    ?>

    in

    einbauen soll, da ich kein durchgängiges <?php ?> in dem
    Formular besitze, sondern lauter Zwischenschritte und da
    ich auch nicht weiß, welches Skript da nun eingeschlossen
    werden soll. Sorry, bin einfach kein PHP-Kenner/-Könner.

    Grüße

  • Hi Jojo,

    danke dir, aber irgendwie scheint da etwas
    falsch zu laufen, denn nun wird das Kontakt-
    formular plötzlich gar nicht mehr angezeigt
    (oder geladen).

    Hm, da muss ich wohl etwas falsch gemacht
    haben, obwohl ich deinen Anweisungen folgte.

    session_start(); an den Anfang und die Abfrage
    um den E-Mail-Sende-Bereich.

    kontakt.php:

  • Irgendetwas hast du vergessen, denn $_SESSION['captcha_spam'] wird nirgendwo gesetzt. Also nochmal genau die anweisungen von dem Captcha-Script lesen.

  • Ich habe da nix überlesen, in dem script gibt es nirgendwo ein

    $_SESSION['captcha_spam'] = irgendwas

    und somit liefert

    isset($_SESSION['captcha_spam'])

    immer false!

  • Hi Bandit,

    danke dir für die Info, aber ich habe den Code direkt von
    der Captcha-Website kopiert. Dann müsste es ja bei allen
    falsch laufen.

    Das Verzeichnis mit den drei benötigten Dateien habe ich
    erstellt. Daran könnte es also auch nicht liegen. :(

    Planlos bin ich nun.

  • Du hast den Teil. der das Formular generiert, mit eingeshclossen. So kann nie ein Formular generiert werden, welche
    $_SESSION['captcha_spam'] = irgendwas
    setzt (@ Bandit: die captcha.php im </img src="" />), und somit auch nie ein korrekter Wert für $_POST['sicherheitscode'] übermittelt werden.
    so hier sollte es gehen:

    Gruß,
    Jojo