1. Herzlich willkommen bei WPDE.org, dem grössten und ältesten deutschsprachigen Community-Forum rund um das Thema WordPress. Du musst angemeldet oder registriert sein, um Beiträge verfassen zu können.
    Information ausblenden

Core Blacklist für Kontaktformular nutzen

Dieses Thema im Forum "Konfiguration" wurde erstellt von m266, 1. Juli 2021.

  1. m266

    m266 Well-Known Member

    Registriert seit:
    21. April 2010
    Beiträge:
    519
    Zustimmungen:
    10
    Hallo zusammen,

    ich habe längere Zeit Contact Form 7 benutzt und bin dann zu Happyforms gewechselt. Dieses Plugin ist leicht einzurichten und ermöglicht schöne Formulare. In der Free-Version werden die Eingaben aber nicht mit der Core Blacklist abgeglichen und man erhält somit den üblichen Müll.
    Die Entwickler haben für die Free-Version nur einige Hinweise zum Abgeich mit der Core Blacklist gegeben, welche die Funktion "check_comment()" verwendet.
    Diesen Filter habe ich bekommen, kriege es aber nicht hin. Hat jemand dazu eine Idee?
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Die Core Blacklist ist sehr praktisch und wirkt auch bei den Kommentaren.
    Vielen Dank für einen guten Tipp!
     
  2. Michi91

    Michi91 Well-Known Member

    Registriert seit:
    8. November 2008
    Beiträge:
    1.856
    Zustimmungen:
    20
    Beantwortet leider nicht direkt deine Frage (einen passenden Filter zu programmieren dauert mich einfach zu lange :confused:),
    aber hast du mal "Ein-Klick-HoneyPot-Spamschutz" im Plugin aktiviert?! Das sollte ja auch erfolgreich vor Spam schützen? So wie ich die Pluginbeschreibung verstehe ist dieses Feature auch in der Free Version vorhanden
     
  3. m266

    m266 Well-Known Member

    Registriert seit:
    21. April 2010
    Beiträge:
    519
    Zustimmungen:
    10
    Ich erwarte auch nicht eine fertige Lösung, welche jemand programmieren muss. Einige Hinweise helfen mir aber weiter, da ich Grundkenntnisse in PHP, CSS, HTML usw. habe. Für Happyforms habe ich hier ein umfangreiches Tutorial geschrieben und ein Zusatz-Plugin entwickelt.
    aber hast du mal "Ein-Klick-HoneyPot-Spamschutz" im Plugin aktiviert?! Das sollte ja auch erfolgreich vor Spam schützen? So wie ich die Pluginbeschreibung verstehe ist dieses Feature auch in der Free Version vorhanden[/QUOTE]
    Der HoneyPot hilft dabei nicht, da es sich i. d. R. um per Hand eingetragene Spam-Nachrichten handelt.
     
    #3 m266, 1. Juli 2021
    Zuletzt bearbeitet: 1. Juli 2021
  4. m266

    m266 Well-Known Member

    Registriert seit:
    21. April 2010
    Beiträge:
    519
    Zustimmungen:
    10
    Nachtrag:
    In CF7 werden die Eingaben geben die Blacklist geprüft und somit Spam abgeblockt. Wie das realisiert ist, habe ich nicht herausgefunden. Im Grunde müsste diese Funktion von CF7 in Happyforms eingebaut werden.
     
  5. b3317133

    b3317133 Well-Known Member

    Registriert seit:
    21. November 2014
    Beiträge:
    9.450
    Zustimmungen:
    1.217
    Der entspr. Code im Plugin Contact Form 7 ist in der Funktion wpcf7_check_disallowed_list(..) zu finden und sollte relativ einfach in diesen Happyforms Filter übertragbar sein, viel Erfolg dabei.

    Am Rande bemerkt, die WordPress Liste ist in aktuellen WordPress Versionen in der Option disallowed_keys gespeichert. Vor WordPress 5.5.x hiess die Option blacklist_keys, aber da gab es dann "politische Korrekturen" in der Bezeichnung des Datenbankfeldes... Das sollte man also beachten, wenn man Code für auch ältere Core Versionen schreibt.
     
    m266 gefällt das.
  6. m266

    m266 Well-Known Member

    Registriert seit:
    21. April 2010
    Beiträge:
    519
    Zustimmungen:
    10
    Vielen Dank! Liest sich gut; ich versuche es.
     
  7. m266

    m266 Well-Known Member

    Registriert seit:
    21. April 2010
    Beiträge:
    519
    Zustimmungen:
    10
    Habe es leider nicht geschafft, diese Funktion in das Plugin Happyforms einzubinden. Schade.
    Ich gebe auf :(
     
  8. b3317133

    b3317133 Well-Known Member

    Registriert seit:
    21. November 2014
    Beiträge:
    9.450
    Zustimmungen:
    1.217
    Poste Deinen nicht funktionierenden Code, dann kann ggf. jemand den Fehler darin entdecken.
     
    Michi91 gefällt das.
  9. Michi91

    Michi91 Well-Known Member

    Registriert seit:
    8. November 2008
    Beiträge:
    1.856
    Zustimmungen:
    20
    Hab den Hinweis von @b3317133 mal aufgeschnappt und schnell was hingeworfen:

    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Völig ungetestet,5 .5 ist Minimum, aber du hast ja geschrieben dass dir schon tipps / ideen reichen :)
     
  10. m266

    m266 Well-Known Member

    Registriert seit:
    21. April 2010
    Beiträge:
    519
    Zustimmungen:
    10
    Danke!
    Diesen Code hatte ich auch probiert und wollte ihn gerade einstellen. Du warst schneller :)
    Leider geht die Nachricht normal durch, aber das Formular bleibt nach dem Absenden grau; keine Ahnung warum. Im Vergleich wird ein Kommentar mit dem gleichen Spambegriff korrekt blockiert.
     
  11. m266

    m266 Well-Known Member

    Registriert seit:
    21. April 2010
    Beiträge:
    519
    Zustimmungen:
    10
    Fast ist es geschafft! Ich habe vom Entwickler noch ein Codebeispiel bekommen und für meine Zwecke angepasst:
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    In meinem Zusatz-Plugin habe ich den Code eingebaut und es funktioniert soweit recht gut. Kleiner Nachteil: Der Absender bekommt auch im Fehlerfall (Treffer aus der Blacklist) eine Bestätigungsmail. An den Admin wird in diesem Fall nichts gesendet.
    Jetzt suche ich noch nach einer Möglichkeit, die Bestätigungsmail im Fehlerfall nicht zu senden und eine Meldung im Formular auszugeben. Den Code verstehe ich leider nur teilweise. Mit Javascript hat das bisher nicht geklappt. Wenn noch jemand dazu eine Idee hat, wäre ich dankbar.
     
  12. b3317133

    b3317133 Well-Known Member

    Registriert seit:
    21. November 2014
    Beiträge:
    9.450
    Zustimmungen:
    1.217
    Nach kurzem Blick in den PHP Code des HappyForms Plugins gibt es dort neben

    happyforms_email_alert "Send a confirmation email to the site owner."

    auch noch einen

    happyforms_email_confirmation
    "Send a confirmation email to the user submitting the form."

    Filter, evtl. musst Du den auch nutzen.
     
  13. m266

    m266 Well-Known Member

    Registriert seit:
    21. April 2010
    Beiträge:
    519
    Zustimmungen:
    10
    Danke für den Tipp. Wie ich den Filter nutzen kann, habe ich leider nicht herausgefunden. Als Übergangslösung würde es auch reichen, wenn im Fehlerfall (Blacklist) ein Popup-Fenster darauf hinweist, dass die Nachricht nicht versendet wurde. Es geht zwar immer noch eine Bestätigungsmail an den Absender, aber damit kann man leben.
    Bei Einfügen des JS-Codes wird zwar trotzdem die Bestätigungsmail versandt, aber das Formular hängt und bleibt grau.
    Hier ein Auszug:

    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Weißt du, an was das liegt und wie man das Popup-Fenster aktivieren kann?
     
  14. b3317133

    b3317133 Well-Known Member

    Registriert seit:
    21. November 2014
    Beiträge:
    9.450
    Zustimmungen:
    1.217
    1. Die Filter sind nicht zur Ausgabe von JavaScript o.ä. gedacht.
    2. Der zweite Filter wird wie der erste Filter verwendet, kann man anhand des PHP Codes von HappyForms nachvollziehen...
     
  15. m266

    m266 Well-Known Member

    Registriert seit:
    21. April 2010
    Beiträge:
    519
    Zustimmungen:
    10
    Super! Danke!!! Jetzt wird im Fehlerfall keine Nachricht an den Absender des Formulars versandt.
    Hier der aktuelle Code:
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Ein kleiner Schönheitsfehler ist noch die Versand-Bestätigung im Formular (siehe Bild), welche ich gerne ausblenden oder noch besser mit einem Fehlerhinweis überschreiben würde.

    Mit dieser Funktion kann ich zumindest die Meldung ausblenden:
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Weißt du, an welcher Stelle ich das im Code einbauen muss?
    Hier der Link zur Testsite in meiner Cloud, wenn du mal gucken willst:
    https://cloud.m266.de/index.php/s/gjzoFrbFmoBS462

    Vielen Dank für deine bisherige Hilfe!
     

    Anhänge:

  16. maxe

    maxe Well-Known Member
    Ehrenmitglied

    Registriert seit:
    1. Mai 2008
    Beiträge:
    19.581
    Zustimmungen:
    277
    keine gute Idee, 2x dieselbe function zu beschreiben, fasse es doch in eine Funktion und setze diese nur in die 2 Filter:
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
     
  17. m266

    m266 Well-Known Member

    Registriert seit:
    21. April 2010
    Beiträge:
    519
    Zustimmungen:
    10
    Das habe ich mir schon gedacht, wusste aber nicht, wie ich die beiden Teile in eine Funktion setzen kann (kam bisher in meinem bescheidenen Programmier-Leben noch nicht vor). Herzliche Dank, Maxe.
    Das ist der aktuelle Stand:
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Für das letzte Problem (Meldung bei Spam im Formular anzeigen) hat mir einer der Plugin-Entwickler ein Snippet zugesagt. Bin gespannt, ob das alles wie gewünscht läuft.

    Am Ende wird alles in mein Plugin eingebaut.

    Vielen Dank an alle, welche mich unterstützt haben!
     
  18. m266

    m266 Well-Known Member

    Registriert seit:
    21. April 2010
    Beiträge:
    519
    Zustimmungen:
    10
    Geschafft!
    Einer der Plugin-Entwickler hat mir einen Filter zur Verfügung gestellt, der wunschgemäß funktioniert: Wenn Begriffe im Feld "Nachricht" in der Blacklist gefunden werden, blockt das Script das Versenden von Mails ab und gibt die übliche Fehlermeldung im Formular aus.
    Hier der Code, welcher in mein Plugin integriert wurde:
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Tutorial zum Formular-Plugin...
    Mein Plugin "WP H-Happyforms Tools"...

    Ich bin von CF 7 weggegangen und finde die Erstellung von Formularen mit Happyforms deutlich. In der Freeware-Version ist "Happyforms" nicht so leistungsfähig wie CF 7, aber in den meisten Fällen reichen die Optionen aus. CF 7 ist weitverbreitet und beliebt - aber auch bei den Spammern. Da gab es schon öfter Probleme und die Provider sperrten den Mailversand. Wen es näher interessiert, der kann Happyforms ja bei einer Testsite ausprobieren.
     
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden