2016-05-03 23 views
0

ご挨拶PHPフォームのテキストエンコーディングに援助が必要です。フォームを介して電子メールを送信しているときに、 "±čęėįšų"のような文字を使わずに受信します。ここでは、私がこれまで試したものです: PHP - フォームに文字の代わりにシンボルが表示されます

<!doctype html> 
<html lang="en"> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
    <title>Kontaktai</title> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
    <script src="http://code.jquery.com/jquery-latest.js"></script> 
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.1/css/font-awesome.min.css"> 
    <link rel="stylesheet" href="css/style.css"> 
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css"> 
    <link rel="stylesheet" href="css/main.css"> 
    <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script> 
    <script src="js/main.js"></script> 
</head> 
<body class="one"> 
<div id="holder"> 
    <div id="full-width-background"> 
     <div class="container"> 
     <?php include 'header.php';?> 

     <?php 
    if (isset($_POST["submit"])) { 
     $name = $_POST['name']; 
     $email = $_POST['email']; 
     $message = $_POST['message']; 
     $human = intval($_POST['human']); 
     $from = 'ITConnect'; 
     $from .= 'Content-Type: text/html; charset="UTF-8"'; 
     $from .= 'Content-Transfer-Encoding: 7bit'; 
     $to = '[email protected]'; 
     $subject = 'Kliento kontaktas'; 
     $body = "Nuo: $name\n\n Adresatas: $email\n\n Tekstas:\n $message"; 
     // Check if name has been entered 
     if (!$_POST['name']) { 
      $errName = 'Įveskite savo vardą'; 
     } 
     // Check if email has been entered and is valid 
     if (!$_POST['email'] || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) { 
      $errEmail = 'Įveskite teisingą el. pašto adresą'; 
     } 
     //Check if message has been entered 
     if (!$_POST['message']) { 
      $errMessage = 'Parašykite žinutę'; 
     } 
     //Check if simple anti-bot test is correct 
     if ($human !== 5) { 
      $errHuman = 'Anti-Spam atsakymas neteisingas'; 
     } 
// If there are no errors, send the email 
if (!$errName && !$errEmail && !$errMessage && !$errHuman) { 
    if (mail ($to, $subject, $body, $from)) { 
     $result='<div class="alert alert-success">Dėkojame, žinutė išsiūsta! Atsakysime per vieną darbo dieną.</div>'; 
    } else { 
     $result='<div class="alert alert-danger">Žinutė nebuvo išsiūsta. Atsiprašome už nesklandumus.</div>'; 
    } 
} 
    } 

メッセージに、私は「ąąčaac」のようなものを送っていた場合 - 私が受けてる何がある:??? AAC。手伝ってください!

+1

PHPMailerやSwiftMailerのような電子メールを送るためにラッパーを使うことをお勧めします。 あなたはヘッダー 'Content-Transfer-Encoding:7bit'で言ったが、決してこれをしなかった。また、あなたのテキストは本当にUTF-8でエンコードされていますか? –

答えて

1

私は

代わりの

if (mail($to, $subject, $body, $from)) { 
    ... 
} 

を使用して、これを試してみてください...問題は、あなたが明示的にあなたのメール・メッセージのコンテンツタイプを設定しないでいるとします私は希望

$headers = "From: $from <$from>\r\n". 
      "MIME-Version: 1.0" . "\r\n" . 
      "Content-type: text/html; charset=UTF-8" . "\r\n"; 
if (mail($to, $subject, $body, $headers)) { 
    ... 
} 
+0

ありがとう!魅力のように働く。 – JustinasT

+0

喜んで:-) – MarcoS

関連する問題