15. august 2007 - 16:40
Der er
6 kommentarer
Kontakt formular.
Her derude. Jeg har en kontaktformular der fungere ualmindelig fint. med validering og det hele. Problemet: Når man sender en mail fra den kan modtageren af mailen ikke se Æ,Ø & Å.. den skriver ubyldige tegn i stedet.. så som & Tegnet. Nogen der har erfaringer med hvor problemet kan ligge ?
Annonceindlæg fra Kingston Technology
15. august 2007 - 16:51
#1
Kan vi se koden, du bruger til at sende med?
15. august 2007 - 17:29
#2
selvfølgelig <?php if(isset($_POST["send"])) { 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')); } if (empty($_POST["navn"]) ) { $message1 = "Du mangler at udfylde dit navn"; } elseif (is_numeric($_POST["navn"]) ) { $message1 = "Dit navn kan ikke indholde tal"; } elseif (empty($_POST["email"]) ) { $message2 = "Du mangler at indtaste din email"; } elseif (!isValidEmail($_POST["email"]) ) { $message2 = "Din email er ik korrekt indtastet prøv igen"; } elseif (empty($_POST["emne"]) ) { $message3 = "Du mangler at skrive et emne"; } elseif (is_numeric($_POST["emne"]) ) { $message3 = "Dit emne kan ikke indholde tal"; } elseif (empty($_POST["besked"]) ) { $message4 = "Du mangler at skrive en besked"; } else { $navn = htmlentities($_POST["navn"]); $emne = htmlentities($_POST["emne"]); $besked = htmlentities($_POST["besked"]); $besked .= nl2br($besked); mail("Din@mail.dk", "dinhjemmeside.dk :: " . $emne, $besked, "From: dinhjemmeside.dk :: " . $navn . "<" . $_POST["email"] . ">"); $SlutBesked = "Din email er nu afsendt, og vi vil svare hurtigst muligt"; } } ?>
15. august 2007 - 17:41
#3
Sætter du et charset med HTML og PHP? Muligvis skal du også definere charset i forbindelse med mailen. Det ved jeg, man af og til skal i ASP med bl.a. den komponent, der hedder JMail.
15. august 2007 - 19:37
#4
prøvet med: $replace[] = '/æ/'; $replace[] = '/ø/'; $replace[] = '/å/'; $with[] = 'æ'; $with[] = 'ø'; $with[] = 'å'; $besked = preg_replace( $replace, $with, $_POST['besked'] ); ???
15. august 2007 - 20:06
#5
zurekk: Hvor i koden skal jeg smide det ind ?
15. august 2007 - 23:07
#6
Hvor som helst. $navn = htmlentities($_POST["navn"]); $emne = htmlentities($_POST["emne"]); $replace[] = '/æ/'; $with[] = 'æ'; $replace[] = '/ø/'; $with[] = 'ø'; $replace[] = '/å/'; $with[] = 'å'; $besked = preg_replace( $replace, $with, $_POST['besked'] ); $besked = htmlentities($besked); $besked .= nl2br($besked); Er dog ikke sikker på det virker. Hvis ikke, så prøver at fjern din mail(), og udskriver $_POST['besked'] istedet, i toppen af filen, og så fortæl hvad den gør med æ ø å, så er det lidt lettere at løse :)
Vi tilbyder markedets bedste kurser inden for webudvikling