PHP sortörés probléma charset megadása esetén

PHP sortörés probléma charset megadása esetén
2012-11-04T15:40:15+01:00
2012-11-07T10:55:49+01:00
2022-11-27T08:20:38+01:00
aDaM
Van egy PHP-s email küldő szkript. Ha nincs ez a sor (a kód alján) megadva:
$headers.= "Content-Type: text/html; charset=utf8\r\n";

akkor az elküldött e-mailben az ékezetes betűk helyett összevissza karakterek jelennek meg.
Ha viszont beillesztem, akkor jól jelennek meg az ékezetes karakterek, viszont a sortörések meg "eltűnnek", amit e-mail-ként kapok meg, abban ömlesztve lesz a szöveg, sortörések nélkül.

Itt az egész kód:

<?php if(isset($_POST['email'])) { // EDIT THE 2 LINES BELOW AS REQUIRED $email_to = "adamtek909@gmail.com"; $email_subject = "WEBOLDAL_ŰRLAP"; function died($error) { // your error code can go here echo "Sajnáljuk, de hibákat találtunk az űrlapban, melyet kitöltött: "; echo "A hibákat alább tekintheti meg.<br /><br />"; echo $error."<br /><br />"; echo "Kérjük, navigáljon vissza és javítsa a hibákat.<br /><br />"; die(); } // validation expected data exists if(!isset($_POST['first_name']) || !isset($_POST['last_name']) || !isset($_POST['email']) || !isset($_POST['telephone']) || !isset($_POST['comments'])) { died('Sajnáljuk, de hibákat találtunk az űrlapban, melyet kitöltött.'); } $first_name = $_POST['first_name']; // required $last_name = $_POST['last_name']; // required $email_from = $_POST['email']; // required $telephone = $_POST['telephone']; // not required $comments = $_POST['comments']; // required $error_message = ""; $email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/'; if(!preg_match($email_exp,$email_from)) { $error_message .= 'Az e-mail cím, amit beírt érvénytelen.<br />'; } $string_exp = "/^[A-Za-z .'-]+$/"; // if(!preg_match($string_exp,$first_name)) { // $error_message .= 'The First Name you entered does not appear to be valid.<br />'; // } // if(!preg_match($string_exp,$last_name)) { // $error_message .= 'The Last Name you entered does not appear to be valid.<br />'; // } if(strlen($comments) < 2) { $error_message .= 'A megjegyzések nem tűnnek érvényesnek.<br />'; } if(strlen($error_message) > 0) { died($error_message); } //$email_message = "Form details below.\n\n"; $email_message = "Az űrlap részletei alább.\n\n"; function clean_string($string) { $bad = array("content-type","bcc:","to:","cc:","href"); return str_replace($bad,"",$string); } $email_message .= "Vezetéknév: ".clean_string($first_name)."\n"; $email_message .= "Keresztnév: ".clean_string($last_name)."\n"; $email_message .= "E-mail: ".clean_string($email_from)."\n"; $email_message .= "Telefonszám: ".clean_string($telephone)."\n"; $email_message .= "Megjegyzések: ".clean_string($comments)."\n"; // create email headers $headers = "MIME-Version: 1.0\r\n"; $headers.= "Content-Type: text/html; charset=utf8\r\n"; $headers.= "From: ".$email_from."\r\n". "Reply-To: ".$email_from."\r\n" . "X-Mailer: PHP/" . phpversion(); @mail($email_to, $email_subject, $email_message, $headers); ?> <!-- include your own success html here --> Köszönjük, hogy válaszolt kérdéseinkre. <?php } ?>
Mutasd a teljes hozzászólást!
A $email_message változóba valódi html-t tegyél
$email_message='<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Language" content="hu" /> .. </head> <body>'; $email_message .= "Vezetéknév: ".clean_string($first_name)."<br />"; $email_message .= "Keresztnév: ".clean_string($last_name)."<br />"; $email_message .= "E-mail: ".clean_string($email_from)."<br />"; $email_message .= "Telefonszám: ".clean_string($telephone)."<br />"; $email_message .="</body></html>";


És akkor jó a
$headers.= "Content-Type: text/html; charset=utf8\r\n";
Mutasd a teljes hozzászólást!

Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd