emailcheck contactformulier
Ik gebruik daar voor dit, maar zit nu te vechten met meerdere emailadressen:
Ik heb nu dit geprobeerd:
Code (php)
1
elseif ((stripos($_POST['email'],'[email protected]' or '[email protected]') !== false))
Maar dit werk niet naar behoren, wat zou ik kunnen doen?
Ik wil absoluut geen captcha gebruiken, zelf word ik er gek van dat ik bij heel veel website 2 of 3 puzzels moet oplossen om een mail te versturen en klik vaak de website weg als dit moet.
Als je alleen de vorm van het adres wilt controleren, zou ik daarvoor een eigen datatype maken in de database, dan is de data verzekerd op databaseniveau:
https://dba.stackexchange.com/questions/68266/what-is-the-best-way-to-store-an-email-address-in-postgresql
Wil je dat liever niet, dan kan je een regex gebruiken:
https://stackoverflow.com/questions/201323/how-can-i-validate-an-email-address-using-a-regular-expression
Maar helemaal waterdicht zullen die laatste twee niet zijn.
Bovendien is het vechten tegen de bierkaai, want een mailadres is zo aangemaakt en/of ingevuld. Om spammers te weren zal je ongetwijfeld een heel leger moeten inzetten om de lijst aan te vullen.
Je zegt dat je geen Captcha's wilt? Maar heb je al gekeken naar ReCaptcha V3?
https://developers.google.com/recaptcha/docs/v3
Het werkt niet met vinkjes, en ook niet met die puzzels. Serverside wordt er door Google gecontroleerd of iemand betrouwbaar is, en krijg je een score terug. Aan de hand van die score zeg je dan of een bericht toe wordt gelaten of niet. Ik gebruik dit ook, en het aantal geautomatiseerde spamberichten is gedaald tot 0.
Gewijzigd op 02/02/2022 15:11:33 door - Ariën -
Ad Fundum op 02/02/2022 15:07:58:
Helaas is de enige correcte manier om een mailadres te valideren om een mail te versturen met een activatie-link.
Als je alleen de vorm van het adres wilt controleren, zou ik daarvoor een eigen datatype maken in de database, dan is de data verzekerd op databaseniveau:
https://dba.stackexchange.com/questions/68266/what-is-the-best-way-to-store-an-email-address-in-postgresql
Wil je dat liever niet, dan kan je een regex gebruiken:
https://stackoverflow.com/questions/201323/how-can-i-validate-an-email-address-using-a-regular-expression
Maar helemaal waterdicht zullen die laatste twee niet zijn.
Als je alleen de vorm van het adres wilt controleren, zou ik daarvoor een eigen datatype maken in de database, dan is de data verzekerd op databaseniveau:
https://dba.stackexchange.com/questions/68266/what-is-the-best-way-to-store-an-email-address-in-postgresql
Wil je dat liever niet, dan kan je een regex gebruiken:
https://stackoverflow.com/questions/201323/how-can-i-validate-an-email-address-using-a-regular-expression
Maar helemaal waterdicht zullen die laatste twee niet zijn.
Ik controleer het inderdaad ook nog op andere punten. Dit is de hele code:
Code (php)
1
2
3
4
5
2
3
4
5
if ( !isset($_POST['email']) or !preg_match( '~^[a-z0-9][a-z0-9_.\-]*@([a-z0-9]+\.)*[a-z0-9][a-z0-9\-]+\.([a-z]{2,6})$~i', $_POST['email']) or trim($_POST['email']) == '' or $_POST['email'] == '[email protected]')
{$aErrors['email'] = 'Uw emailadres ontbreekt of u heeft een niet gelding emailadres opgegeven.';$veldkleuremail = 'tekstveldred';
}elseif ((stripos($_POST['email'],'[email protected] [email protected]') !== false))
{$aErrors['email'] = 'Uw bericht wordt gezien als spam, daarom kunt u geen gebruik maken van dit formulier.';$veldkleuremail = 'tekstveldred';
}else{$veldkleuremail = 'tekstveldnorm';}
{$aErrors['email'] = 'Uw emailadres ontbreekt of u heeft een niet gelding emailadres opgegeven.';$veldkleuremail = 'tekstveldred';
}elseif ((stripos($_POST['email'],'[email protected] [email protected]') !== false))
{$aErrors['email'] = 'Uw bericht wordt gezien als spam, daarom kunt u geen gebruik maken van dit formulier.';$veldkleuremail = 'tekstveldred';
}else{$veldkleuremail = 'tekstveldnorm';}
Toevoeging op 02/02/2022 15:17:09:
- Ariën - op 02/02/2022 15:10:23:
Het is nog makkelijker om dit in een array te plaatsen, en met in_array() te controleren of de waarde in de array staat. Dan heb je ook geen stripos() nodig.
Bovendien is het vechten tegen de bierkaai, want een mailadres is zo aangemaakt en/of ingevuld. Om spammers te weren zal je ongetwijfeld een heel leger moeten inzetten om de lijst aan te vullen.
Je zegt dat je geen Captcha's wilt? Maar heb je al gekeken naar ReCaptcha V3?
https://developers.google.com/recaptcha/docs/v3
Het werkt niet met vinkjes, en ook niet met die puzzels. Serverside wordt er door Google gecontroleerd of iemand betrouwbaar is, en krijg je een score terug. Aan de hand van die score zeg je dan of een bericht toe wordt gelaten of niet. Ik gebruik dit ook, en het aantal geautomatiseerde spamberichten is gedaald tot 0.
Bovendien is het vechten tegen de bierkaai, want een mailadres is zo aangemaakt en/of ingevuld. Om spammers te weren zal je ongetwijfeld een heel leger moeten inzetten om de lijst aan te vullen.
Je zegt dat je geen Captcha's wilt? Maar heb je al gekeken naar ReCaptcha V3?
https://developers.google.com/recaptcha/docs/v3
Het werkt niet met vinkjes, en ook niet met die puzzels. Serverside wordt er door Google gecontroleerd of iemand betrouwbaar is, en krijg je een score terug. Aan de hand van die score zeg je dan of een bericht toe wordt gelaten of niet. Ik gebruik dit ook, en het aantal geautomatiseerde spamberichten is gedaald tot 0.
Dat is ook misschien we een goed idee. Controleerd hij dan op ipadres?
[email protected] zich aanmeldt?
Nu ga je zelf een eigen reguliere expressie voor mailadressen maken terwijl je dit prima door PHP kan laten doen:
https://www.w3schools.com/php/filter_validate_email.asp
Maar goed, de lijst met spammers bijhouden is echt een dagtaak. Een Recaptcha is beter, en tegenwoordig is ReCaptcha ook niet 'opdringerig' en 'vervelend'.
ReCaptcha controleert op meerdere manieren. Ik weet niet op wat voor manieren, maar hun kunnen het via een scala aan technieken prima aanvoelen of een aanvraag legitiem is, of van een scammer.
https://developers.google.com/recaptcha/docs/v3
En wat als iemand met het mailadres Nu ga je zelf een eigen reguliere expressie voor mailadressen maken terwijl je dit prima door PHP kan laten doen:
https://www.w3schools.com/php/filter_validate_email.asp
Maar goed, de lijst met spammers bijhouden is echt een dagtaak. Een Recaptcha is beter, en tegenwoordig is ReCaptcha ook niet 'opdringerig' en 'vervelend'.
ReCaptcha controleert op meerdere manieren. Ik weet niet op wat voor manieren, maar hun kunnen het via een scala aan technieken prima aanvoelen of een aanvraag legitiem is, of van een scammer.
https://developers.google.com/recaptcha/docs/v3
Gewijzigd op 02/02/2022 15:20:37 door - Ariën -
En ik hekel captcha's, dan ben ik weg bij een site.
Knettervervelend zijn die dingen, beetje stoplichten selecteren alsof ik niets beters te doen heb.
Ad Fundum op 02/02/2022 15:20:01:
Let wel, gebruik van Google is niet conform AVG/GDPR... En ik hekel captcha's, dan ben ik weg bij een site.
Veel sites gebruiken dit, waaronder de groten. En als je het niet vertrouwt dan gebruik je toch 'incognitomodus'. Daarnaast is ReCaptcha V3 niet hinderlijk voor de gebruiker.
Bestaande invul (Re)Captcha's zijn allang gekraakt. Het schijnt dat er farms bestaan die zelfs manueel dit over kunnen typen voor spamruns. Een simpele oplossing is een extra invulveld die verplicht ingevuld moet worden, met een simpele vraag:
Waar gaat deze site over?
Gewijzigd op 02/02/2022 15:24:40 door - Ariën -
Toevoeging op 02/02/2022 15:26:29:
- Ariën - op 02/02/2022 15:19:31:
En wat als iemand met het mailadres [email protected] zich aanmeldt?
Nu ga je zelf een eigen reguliere expressie voor mailadressen maken terwijl je dit prima door PHP kan laten doen:
https://www.w3schools.com/php/filter_validate_email.asp
Nu ga je zelf een eigen reguliere expressie voor mailadressen maken terwijl je dit prima door PHP kan laten doen:
https://www.w3schools.com/php/filter_validate_email.asp
Klopt mijn script om te controleren of een emailadres werkelijk een emailadres is niet?
Ik weet niet om wat voor formulier het gaat, maar wellicht is het zinvol dat de ontvanger zijn mailadres moet verifiëren door op een link met code te klikken (die hij/zij per mail ontvangt).
Stel dat het gaat om een formulier waarmee je een reactie kan plaatsen, en je valideert niet of het mailadres inderdaad van die persoon is, dan kan iemand gewoon [email protected] als mailadres invoeren en dat wordt dan gewoon geaccepteerd.
Gewijzigd op 02/02/2022 15:33:21 door Ozzie PHP
J C op 02/02/2022 15:24:45:
Klopt mijn script om te controleren of een emailadres werkelijk een emailadres is niet?
De huidige controle is niet echt handig. Dus laat dat lekker aan PHP over. :-)
Verder is je code ook een beetje in spaghetti stijl.
Het gaat om een contactformulier, zo laag drempelig mogelijk, dus er zijn ook maar 2 velden verplicht, emailadres en bericht.
En wat wordt er met dat bericht gedaan?
- Ariën - op 02/02/2022 15:34:48:
De huidige controle is niet echt handig. Dus laat dat lekker aan PHP over. :-)
Verder is je code ook een beetje in spaghetti stijl.
J C op 02/02/2022 15:24:45:
Klopt mijn script om te controleren of een emailadres werkelijk een emailadres is niet?
De huidige controle is niet echt handig. Dus laat dat lekker aan PHP over. :-)
Verder is je code ook een beetje in spaghetti stijl.
Ik ga hem wel herschrijven, maar als leermoment echter, waarom is het zo niet handig?
Dat het een beetje doro elkaar staat, kan er wel mee te maken hebben dat het een zelfgeschreven script is en het door de jaren heen steeds een beetje veranderd is, dus helemaal herschrijven is wellicht niet een heel gek idee ;-)
Toevoeging op 02/02/2022 15:39:37:
Ozzie PHP op 02/02/2022 15:37:49:
En wat wordt er met dat bericht gedaan?
Het bericht wordt naar mijn mailbox gestuurd en de klant krijgt een bevestigingsmail.
J C op 02/02/2022 15:39:01:
Ik ga hem wel herschrijven, maar als leermoment echter, waarom is het zo niet handig?
Dat het een beetje doro elkaar staat, kan er wel mee te maken hebben dat het een zelfgeschreven script is en het door de jaren heen steeds een beetje veranderd is, dus helemaal herschrijven is wellicht niet een heel gek idee ;-)
Ik ga hem wel herschrijven, maar als leermoment echter, waarom is het zo niet handig?
Dat het een beetje doro elkaar staat, kan er wel mee te maken hebben dat het een zelfgeschreven script is en het door de jaren heen steeds een beetje veranderd is, dus helemaal herschrijven is wellicht niet een heel gek idee ;-)
Het is dat het nu nog compact is, maar als je dit in grotere versie op een forum zou aanbieden als ondersteuning zal je weinig aanloop naar je topic krijgen. Bovendien heeft elke editor wel een mogelijkheid voor re-formatting of re-identing zodat het weer netjes staat. Dus zo veel werk is het ook weer niet. :-)
Gevolg: jij ontvangt 500 spamberichten en degene van wie het mailadres echt is, ontvangt 500 ontvangstbevestigingen.
Kortom: weet goed waar je mee bezig bent ;-)
Een ontvangstbevestiging sturen klinkt dus heel leuk, maar het probleem is dat je niet weet naar wie je die stuurt. Beter kun je die dus helemaal niet sturen en gewoon een melding in beeld tonen: we hebben uw bericht ontvangen. We nemen zo snel mogelijk contact met u op.
Ik zal er een nette merlding van maken op de website en geen bevestiging meer sturen ;-)
Ik weet dat ReCaptcha V3 erg robuust is, maar ik weet op het eerste ogenblik niet hoe dit voldoet aan AVG/GDPR etc. en of er vergelijkbare alternatieven zijn die op het punt van privacy beter voldoen.
Gewijzigd op 02/02/2022 16:03:43 door - Ariën -
Binnen de organisatie waar ik voor werk, wordt Google standaard geblokkeerd. De internationale verdragen Safe Harbour en Privacy Shield zijn afgeschoten op EU-niveau, dus je staat er als persoon/bedrijf nu alleen voor. En er verschijnen steeds meer kritische artikelen, bijvoorbeeld over hoe Nederland persoonsgegevens en leerprestaties van de kinderen te grabbel gooit met Google Classroom.
Gelukkig zie ik steeds meer bewustwording dat Google op de lange termijn toch niet zo'n handige keuze is. Er zijn steeds meer grotere organisaties, waaronder ook overheidsorganisaties, die alternatieven vinden. Een veelgebruikt alternatief voor Google Analytics is PIWIK, en er zijn ook goede alternatieven voor Google Maps op een site.
Als je een goed alternatief weet voor Recaptcha V3, laat het me weten!
Toevoeging op 03/02/2022 20:19:53:
Nog even een aanvulling op Google en AVG/GDPR: Google is puur gif.
https://www.security.nl/posting/741233/Juridische+vraag%3A+Kun+je+als+website+nog+wel+veilig+gebruikmaken+van+Google+Fonts