ich versuche Spamschutz für ein Kontaktformular via Zeitstempel umzusetzen und verwende dafür einfach den Beispiel-Code aus der Doku:
Im Formbuilder:
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|5|Spambots haben keine Chance|
In project/boot.php
Code: Alles auswählen
function yform_validate_timer($label,$microtime,$seconds) {
if (($microtime + $seconds) > microtime(true)) {
return true;
} else {
return false;
}
}
Das funktioniert für mich leider nicht so wie angegeben. Zum einen ist $microtime immer leer so dass ich die entsprechende POST Variable auswerten muss:
Code: Alles auswählen
$microtime = $_POST[$label];
Zum anderen ist die Logik der Funktion quasi umgedreht. Wenn die 5 Sekunden abgelaufen sind klappt der Submit nicht mehr, vorher schon. Da heißt als Workaround muss ich true und false vertauschen bzw. im Formbuilder ein ! verwenden.
Hat zu dem Thema jemand Ideen/Erfahrungen? Mache ich irgendwo einen Fehler?