0

次の連絡先フォームがあります。

(HTML と PHP)

<form method="post" action="index.php">

    <p>
      <label>Namn</label>
      <input name="name" placeholder="Skriv här">

      <label>Epost adress</label>
      <input name="email" type="email" placeholder="Skriv här">

      <label>Meddelande</label>
      <textarea name="message" placeholder="Skriv här"></textarea>

      <label>Hur mycket är 2+2? (Anti-spam)</label>
  <input name="human" placeholder="Skriv här">
    </p>
    <p>
      <input id="submit" name="submit" type="submit" value="Submit">
    </p>



    <?php
    $name = $_POST['name'];
    $email = $_POST['email'];
    $message = $_POST['message'];
    $from = 'Från: Forall.se'; 
    $to = 'info@forall.se'; 
    $subject = 'Ny meddelande';
    $human = $_POST['human'];

    $body = "From: $name\n E-Mail: $email\n Message:\n $message";

    if ($_POST['submit']) {
    if ($name != '' && $email != '') {
        if ($human == '4') {                 
            if (mail ($to, $subject, $body, $from)) { 
            echo '<p>Ditt meddelande har skickats!</p>';
        } else { 
            echo '<p>Någonting gick fel. Var vänlig och försök igen!</p>'; 
        } 
    } else if ($_POST['submit'] && $human != '4') {
        echo '<p>Du har gett fel svar på Anti-Spam frågan!</p>';
    }
    } else {
        echo '<p>Du behöver att fylla alla fält i formuläret!</p>';
    }
}

?>

</form>

ã、õ、ä、å、ö、ç などの英語以外の文字を除いて、すべて正常に機能しています。スウェーデンのウェブサイトでなければ、これは問題にはなりません。

以下は、私が最後に受け取った電子メールのサンプルです。

"Jag hoppas du har förstÃ¥se för detta och att du hittar nógon annan marknadsförare! Jag Ã¥terkommer när och om jag startar upp minfirma, just nu är det lite osä kert hur det blir med dettas"

この問題を解決するにはどうすればよいですか?

4

2 に答える 2

0

PHPメール関数の 4 番目のパラメーターは、from 値を送信するためだけのものではありません。PHPのマニュアルによると:

-これは通常、追加のヘッダー (From、Cc、および Bcc) を追加するために使用されます。複数の余分なヘッダーは、CRLF (\r\n) で区切る必要があります。

メッセージのテキストをエンコードする文字セットを含めます。あなたの場合、コメントにあるように、UTF-8を使用する必要があります。

したがって、コードは次のようになります。

$header = "From: somebody@example.com\r\nContent-Type: text/plain; charset=UTF-8";
$message = $_POST['message'];
$to = 'info@forall.se'; 
$subject = 'Ny meddelande';


mail ($to, $subject, $body, $header)
于 2013-06-19T12:32:22.707 に答える