09. januar 2007 - 11:31Der er
19 kommentarer og 3 løsninger
sikker email validation
hey..
jeg er ved at skal lave en kontakt formular til min hjemmeside og jeg vil nok kun have 4 felter man skal ud fylde nemlig navn,emne,email og så beskeden.
den formular blir så sendt til min email adresse når den blir submittet men jeg skal have noget validering/sikkerhed på formularen så jeg slipper for spammere og den slags.
jeg har overvejet at bruge Ajax til at validere med men ved ikke om det er godt nok..
har i nogen foreslag til hvad jeg kan lave for at få bedste sikkerhed. ?
men ved ik hva man kan kalde det så .. floodere? :/ ej ved ik.. vil bare ik have folk skal sende 10 emails på 2 min med alt muligt reklame osv osv.
en af mine venner har lavet hvor den sætter en cookie når han submitter formularen og så blir den fjernet igen efter 2 timer.. men det jo simpelt nok at fjerne den cookie jo så der er der ik så meget sikkerhed.
der findes flere metoder til at verificere email afsender. F.eks. yahoomail bruger "domain keys" og MSN hotmail/outlook/messenger bruger .NET active directory (ADO). Desuden skulle du kunne frasortere mail fra "anonymous servers" og spammere, osv.
ved ikke om det du tænker på er sådan noget som at man indtaster "asdnasdoas" som sin mail f.eks.. og det vil du gerne kunne undgå bliver sendt til dig da det er useriøst?
du kan i hvertfald validere om det er en korrekt mail på denne måde
<?php$email = "someone@example.com"; if(eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$",$email)) { // send mail } else { echo "Du skal indtaste en rigtig email adresse!"; } ?>
Du bestemmer selv hvem der skal have point.. du kan evt. fordele til flere. Jeg behøver ingen.
Angående din sidste post så er det jo fint nok til det formål du gerne vil have... går ud fra der ikke var så meget af alt det vi ser nu og det eneste du ville opnå var noget alá det du har lavet bare at tage det værste:)
Fint! :) Funktionen var ret gammel, så jeg reviderede den lige - Det blev den kortere af:
function isValidEmail($address) { $address = trim($address); list(,$host) = split('@',$address); if (!preg_match('/^[-!#$%&\'*+\\.\/0-9=?A-Z^_`{|}~]+' . // username '@' . // 'at' '([-0-9A-Z]+\.)+' . // domain name(s) '([0-9A-Z]){1,6}\.?$/i', // tld $address)) { // Return true if it's an IP return preg_match( "/^\[(\d{1,3}\.){3}\d{1,3}\]$/", $host ); } $host .= '.'; // DNS style address return (getmxrr($host,$mxrecords) || checkdnsrr($host,'ANY')); }
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.