Beef Ñ€ã‘æ’ã‘âã‘âãâºãâ¸ã⹠Ñ…ãâ¸ã⿠Ñ…ãâ¾ã⿠Ñâãâ¼ãâ¾ã‘‚ã‘€ãâµã‘‚ã‘å’ Ãâ¾ãâ½ãâ»ãâ°ãâ¹ãâ½
When someone enters foreign characters (like Cyrillic text, and Japanese/Chinese probably gives the same problem) into the mail form, the email that arrives is all gibberish.
For example this should read "test message from *name*" in Russian.
ТеÑтовое Ñообщение от Корин
I tried changing the header content-type thing from plain text to HTML but that didn't fix it.
The script I'm using is one I found online for free (eternal thanks to its author some of the lines are in Dutch)
Does anyone know how to let the form accept foreign characters? Thanks a lot in advance !!
<? $your_email_address="theemail@whereitissentto.com"; if(empty($_GET) && empty($_POST)) { die('Ongeldige actie'); } // Emular register_globals on if (!ini_get('register_globals')) { $superglobales = array($_SERVER, $_ENV, $_FILES, $_COOKIE, $_POST, $_GET); if (isset($_SESSION)) { array_unshift($superglobales, $_SESSION); } foreach ($superglobales as $superglobal) { extract($superglobal, EXTR_SKIP); } } // to prevent header injection if (eregi("\r",$_POST['your_email_address']) || eregi("\n",$_POST['your_email_address'])){ exit; } // kick anyone whoever tried to inject a header in the form foreach( $_POST as $value ){ if( strpos($value,'Content-Type:') !== FALSE ){ exit; } } $fields = array_keys($_POST); function headfunction($url) { header ("Location: $url"); } // protect the variable $reserved_vars if(isset($reserved_vars)) { unset($reserved_vars); } $reserved_vars = array("css_file", "background_color", "background_image", "text_color", "link_color", "visited_link_color", "active_link_color", "font_name", "font_size", "highlight_color", "required_fields", "after_url", "check_email_address", "subject", "your_email_address", "env_report", "owner_name", "autoresponse", "response_subject", "response_mail", "dodosmail_header_file", "dodosmail_footer_file"); function include_dodosmail_header($dodosmail_header_file) { global $reserved_vars; foreach($reserved_vars as $reserved_var) { global $$reserved_var; } if(is_file($dodosmail_header_file)) { include_once($dodosmail_header_file); return; } else { echo "<html>\n"; echo "<head>\n"; echo "<title>\n"; echo "DodosMail\n"; echo "</title>\n"; if($css_file != "") echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"$css_file\">\n"; echo "</head>\n"; echo "<body bgcolor=\"$background_color\" background=\"$background_image\" text=\"$text_color\" link=\"$link_color\" vlink=\"$visited_link_color\" alink=\"$active_link_color\">\n"; echo "<font face=\"$font_name\" size=\"$font_size\">\n"; } } function include_dodosmail_footer($dodosmail_footer_file) { global $reserved_vars; foreach($reserved_vars as $reserved_var) { global $$reserved_var; } if(is_file($dodosmail_footer_file)) { include_once($dodosmail_footer_file); return; } else { echo "</font>\n</body>\n</html>"; } } function dodosmail_error_handle($msg) { global $highlight_color; if(isset($highlight_color)) { $extra_begin = "<font color=\"".$highlight_color."\">"; $extra_end = "</font>"; } else { $extra_begin = "<span class=\"DodosMailErrorHighLight\">"; $extra_end = "</span>"; } return $extra_begin.$msg.$extra_end; } // checking required fields // in case they used comma and space, replace if(strstr($required_fields, ", ")) { $required_fields = str_replace(", ", ",", $required_fields); } else { $required_fields = $required_fields; } $required_fields = explode(",", $required_fields); for($i = 0; $i < count($required_fields); $i++) { $required_var_name = $required_fields[$i]; if(empty($$required_var_name)) { include_dodosmail_header($dodosmail_header_file); echo "<p class=\"DodosMailError\">Fout! - het verplichte veld ".dodosmail_error_handle($required_var_name)." is niet ingevuld.\n"; echo "<br /><br /><a href=\"javascript:history.back(1)\">Terug</a>\n"; echo "</p>\n"; include_dodosmail_footer($dodosmail_footer_file); exit; } } if($check_email_address == "yes" && !empty($email)) { if(!check_email($email)) { include_dodosmail_header($dodosmail_header_file); echo "<p class=\"DodosMailError\">Fout - het adres ".dodosmail_error_handle($email)." is niet geldig.\n"; echo "<br /><br /><a href=\"javascript:history.back(1)\">Terug</a>\n"; echo "</p>\n"; include_dodosmail_footer($dodosmail_footer_file); exit; } } for($i = 0; $i < count($fields); $i++) { $actual_var = $fields[$i]; if(in_array($actual_var, $reserved_vars)) { $inside_mail = $inside_mail; } else { if(is_array($$actual_var)) { $inside_mail.= "$actual_var: "; foreach($$actual_var as $actual_val) { $inside_mail.= "$actual_val "; } $inside_mail.= "\n"; } else { $actual_val = stripslashes($$actual_var); $inside_mail.= "$actual_var: $actual_val\n"; } } } // getting other information from the form $cname = gethostbyaddr($_SERVER[REMOTE_ADDR]); $inside_mail.= " ----------------------------------------------------------------------- SENDER INFO: IP: $_SERVER[REMOTE_ADDR] Computer Name: $cname Browser Type: $_SERVER[HTTP_USER_AGENT] Page Referer: $_SERVER[HTTP_REFERER] ----------------------------------------------------------------------- "; $headers .= "MIME-Version: 1.0\r\n"; $headers .= "X-Priority: 3\r\n"; $headers .= "X-MSMail-Priority: Normal\r\n"; $headers .= "X-Mailer: DodosMail 2.0 http://regretless.com/scripts/\r\n"; $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; //$headers .= "Date: ".date("R")."\r\n"; $headers .= "From: $name <$email>\r\n"; $success = mail($your_email_address, $subject, $inside_mail, $headers); if($success) { if($autoresponse == "yes") { $response_subject = stripslashes($response_subject); $response_mail = stripslashes($response_mail); mail($email, $response_subject, $response_mail, "From: $owner_name <$your_email_address>"); } if($after_url == "") { // out put send info include_dodosmail_header($dodosmail_header_file); echo "<p>\n"; echo "Het formulier is verzonden!</p><ul>"; for($i = 0; $i < count($fields); $i++) { $actual_var = $fields[$i]; if(in_array($actual_var, $reserved_vars)) echo ""; else { if(is_array($$actual_var)) { echo "<li>$actual_var: "; foreach($$actual_var as $actual_val) { echo "$actual_val "; } echo "</li>\n"; } else { $actual_val = stripslashes($$actual_var); echo "<li>$actual_var: $actual_val</li>\n"; } } } echo "</ul>\n<p></p>"; include_dodosmail_footer($dodosmail_footer_file); exit; } else { headfunction($after_url); } } else { include_dodosmail_header($dodosmail_header_file); echo "<p class=\"DodosMailError\">Fout - Het formulier is tijdelijk niet bruikbaar, gebruik ".dodosmail_error_handle($your_email_address)." om contact op te nemen.\n"; echo "<br /><br /><a href=\"javascript:history.back(1)\">Terug</a>\n"; echo "</p>\n"; include_dodosmail_footer($dodosmail_footer_file); exit; } function check_email($email) { if( (preg_match('/(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/', $email)) || (preg_match('/^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/',$email)) ) { return true; } return false; } ?>
Source: https://forums.phpfreaks.com/topic/190219-mail-form-doesnt-send-russiancyrillic-characters-correctly/
0 Response to "Beef Ñ€ã‘æ’ã‘âã‘âãâºãâ¸ã⹠Ñ…ãâ¸ã⿠Ñ…ãâ¾ã⿠Ñâãâ¼ãâ¾ã‘‚ã‘€ãâµã‘‚ã‘å’ Ãâ¾ãâ½ãâ»ãâ°ãâ¹ãâ½"
Post a Comment