Om spam te voorkomen gebruik ik in een mailform oa deze code
} elseif(!preg_match("/^[A-Za-z0-9-_.+%]/", $_POST['bericht'])){
echo ' Geen vreemde tekens in je bericht aub.<br><br>';
echo '<a href="javascript:history.back(1);">Terug</a><br><br>';
Vreemd genoeg worden letters met een accent (zoals é è à) en accenten ook tegengehouden. Maar wat blijkt: deze letters met een accent worden omgezet in à (hoofdletter A en een tilde).
Hoe kan ik er voor zorgen dat de letters met een accent wel toegelaten worden, maar de à niet?
Merci voor de snelle reactie. Ik ga het bekijken hoe ik UTF-8 kan optimaliseren.
Wat tot nu toe het beste geholpen heeft in mijn geval: mijn 'captcha'-systeem is een vooringevuld veld dat gebruikers moeten leegmaken. Bots hebben immers de gewoonte alles vol te spammen.
Een betere oplossing is om een vraag te stellen die enkel jouw gebruikers weten. Zoals het afmaken van de slogan die bovenaan jouw site staat.
Als je meer drempelvrij wilt werken, dan is ReCaptcha V3 een mooie oplossing. Tevens biedt deze ook een CSRF-beveiliging die verhinderd dat buitenstaanders vanaf een andere server jouw script aanroepen.
Over jouw probleem: Kijk eens wat de paginainstellingen van jouw browser laten zien qua encoding?
Ik zou liever een array met bepaalde blacklist-woorden (UTF-8) maken, dan je op bepaalde tekens filtert. Er zijn ook namen met bijvoorbeeld een ã of een Ñ. Die wil je niet filteren...
Al is ReCaptcha V3 ook erg goed. Ik ben benieuwd waarom je niet daar naar kijkt?