[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
Spamschutz yform-Formulare - Seite 1 - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
pflumi
Beiträge: 66
Registriert: 13. Mai 2016, 11:13

Re: Spamschutz yform-Formulare

1. Sep 2017, 18:09

Nochmals Danke Ingo, ich hab das jetzt so gemacht und es funktioniert. :)

ska
Beiträge: 76
Registriert: 27. Okt 2007, 14:39
Wohnort: Landau/Pfalz

Re: Spamschutz yform-Formulare

15. Feb 2018, 10:52

Bei mir funktioniert der Spamschutz über den Timer leider auch nicht wie in der Doku beschrieben… Funktion ist eingebunden und das yForm wie beschrieben angelegt, aber egal, welchen Wert ich bei den Sekunden eingebe, das Formular wird immer direkt abgeschickt:

Code: Alles auswählen

validate|customfunction|validate_timer|yform_validate_timer|60|Spambots haben keine Chance!

Auch wenn ich deutlich unter den hier angegebenen 60 Sekunden bleibe, wird das Formular dennoch abgeschickt – woran kann das liegen?

Benutzeravatar
alexplus
Beiträge: 212
Registriert: 13. Feb 2007, 15:03
Wohnort: Heilbronn
Kontaktdaten: Website

Re: Spamschutz yform-Formulare

15. Feb 2018, 18:35

Hi @ska,

evtl. ist das project-Addon nicht installiert oder der System-Cache ist zu leeren.

Du kannst versuchen, nur die Validate-Funktion einfach mit http://php.net/manual/de/function.function-exists.php darauf zu überprüfen, ob sie überhaupt vorhanden / eingebunden ist.

ska
Beiträge: 76
Registriert: 27. Okt 2007, 14:39
Wohnort: Landau/Pfalz

Re: Spamschutz yform-Formulare

16. Feb 2018, 11:34

Hab' jetzt nochmals alles kontrolliert: Funktion ist vorhanden und wird über boot.php geladen, Project-Addon re-installiert, Cache geleert – aber validiert wird leider trotzdem nichts, das Formular wird nach dem Klick auf "senden" direkt abgeschickt.

Folgenden Code habe ich nach Anleitung in das yForm übernommen und den Intervall zum Testen entsprechend auf 60 Sekunden gestellt:

Code: Alles auswählen

php|validate_timer|Spamschutz|<?php echo '<input name="validate_timer" type="hidden" value="'.microtime(true).'" />' ?>
validate|customfunction|validate_timer|yform_validate_timer|60|Spambots haben keine Chance
Das hidden field mit der microtime ist im Formular dann auch vorhanden.

Eintrag in boot.php:

Code: Alles auswählen

  if (!function_exists('yform_validate_timer')) {
     function yform_validate_timer($label,$microtime,$seconds)
     {
       if (($microtime + $seconds) > microtime(true)) {
	    return true;
	      } else {
	        return false;
	      }
     }
}

Habe ich irgendwas vergessen…?

Benutzeravatar
alexplus
Beiträge: 212
Registriert: 13. Feb 2007, 15:03
Wohnort: Heilbronn
Kontaktdaten: Website

Re: Spamschutz yform-Formulare

17. Feb 2018, 21:51

Ich habe da eine Vermutung, aber es ist schwierig, das rauszufinden, weil du das YForm-Modul benutzt und nicht die PHP-Schreibweise.

Neulich wurde die Art, wie das PHP-Feld escaped wird, geändert. Kann sein, dass da eine Inkompatibilität zum Tutorial hergestellt wurde. Versuche es mal bitte so:

Code: Alles auswählen

php|validate_timer|Spamschutz|<?php echo "<input name=\"validate_timer\" type=\"hidden\" value=\"".microtime(true)."\" />" ?>
validate|customfunction|validate_timer|yform_validate_timer|60|Spambots haben keine Chance
Ansonsten ist es wirklich schwer, sich aus der Ferne das anzuschauen. Du darfst mich gerne mal im Redaxo-Slack-Channel oder im Forum per Direktnachricht anschreiben, vielleicht kann ich mal in die Redaxo-Installation reinschauen.

Benutzeravatar
alexplus
Beiträge: 212
Registriert: 13. Feb 2007, 15:03
Wohnort: Heilbronn
Kontaktdaten: Website

Re: Spamschutz yform-Formulare

17. Feb 2018, 21:53

Du kannst in die Funktion auch mal die Werte dumpen, also

Code: Alles auswählen

  if (!function_exists('yform_validate_timer')) {
     function yform_validate_timer($label,$microtime,$seconds)
     {
     	dump($label.", ".$microtime.", ".$seconds);
       if (($microtime + $seconds) > microtime(true)) {
	    return true;
	      } else {
	        return false;
	      }
     }
}
und schauen, welche Werte da ankommen. Zum Eingrenzen des Fehlers.

Thomas-S
Beiträge: 43
Registriert: 1. Jun 2007, 09:30
Wohnort: Forst
Kontaktdaten: Website

Re: Spamschutz yform-Formulare

21. Mär 2018, 14:47

Laut Doku, funktioniert es aktuell nicht unter Redaxo 5.5.1 und Yform 2.3. Die microtime wird nicht an die Funktion übergeben. Hab verschiedene Varianten versucht, auch mit Slashes vor den Anführungszeichen.
Die Funktion yform_validate_timer wird aufgerufen, aber nur die Sekunden und nicht die microtime aus dem Formular übergeben. Sehr frustrierend...

Ingo
Beiträge: 782
Registriert: 24. Jun 2010, 00:34

Re: Spamschutz yform-Formulare

31. Mär 2018, 15:44

Du musst bei den objparams "real_field_names" auf "true" setzen.

Zurück zu „Allgemeines [R5]“