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/
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/
Re: Spamschutz yform-Formulare
Nochmals Danke Ingo, ich hab das jetzt so gemacht und es funktioniert.
Re: Spamschutz yform-Formulare
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:
Auch wenn ich deutlich unter den hier angegebenen 60 Sekunden bleibe, wird das Formular dennoch abgeschickt – woran kann das liegen?
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?
Re: Spamschutz yform-Formulare
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.
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.
Re: Spamschutz yform-Formulare
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:
Das hidden field mit der microtime ist im Formular dann auch vorhanden.
Eintrag in boot.php:
Habe ich irgendwas vergessen…?
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
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…?
Re: Spamschutz yform-Formulare
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:
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.
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
Re: Spamschutz yform-Formulare
Du kannst in die Funktion auch mal die Werte dumpen, also
und schauen, welche Werte da ankommen. Zum Eingrenzen des Fehlers.
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;
}
}
}
Re: Spamschutz yform-Formulare
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...
Die Funktion yform_validate_timer wird aufgerufen, aber nur die Sekunden und nicht die microtime aus dem Formular übergeben. Sehr frustrierend...
Re: Spamschutz yform-Formulare
Du musst bei den objparams "real_field_names" auf "true" setzen.