件名が文字化けしてしまう。PHPで送信フォームを作成しましたが件名が?????と
文字化けします。
<?
require_once("./lib/form_check.lib");
$type = $_POST['type'];
$company = $_POST['company'];
$industry = $_POST['industry'];
$post = $_POST['post'];
$name = $_POST['name'];
$address = $_POST['address'];
$tel = $_POST['tel'];
$mail = $_POST['mail'];
$detail = $_POST['detail'];
type_name($type);
$to = "■■■@■■■■";
$subject = "お問い合わせ";
$header= "From:".$mail;
$msg ="────────────────────────────────────────────\n";
$msg .="■お問い合わせ内容\n".$type_name."\n\n";
$msg .="■会社名\n".$company."\n\n";
$msg .="■業種\n".$industry."\n\n";
$msg .="■役職・部署名\n".$post."\n\n";
$msg .="■氏名\n".$name."\n\n";
$msg .="■住所\n".$address."\n\n";
$msg .="■電話番号\n".$tel."\n\n";
$msg .="■メールアドレス\n".$mail."\n\n";
$msg .="■お問い合わせ詳細\n".$detail."\n";
mail($to,$subject,$msg,$header);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitio …
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja">
<head>
<title>お問い合わせ</title>
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
これではダメなので
mb_language("japanese");
mb_internal_encoding("EUC-JP");
mb_send_mail($to,$subject,$msg,$header);
と付け足しました。
これで件名が????になるのはふせげたのですが今度は送信後のページ全体が
文字化けとなりお手上げ状態です。
どう組めばいいのでしょうか?
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
mb_send_mail()はなにかと問題がおおくてお薦めできません。
mail()を使うときに普通にエンコードしてやればよいのでは?
$subject=mb_convert_encoding($subject,"JIS","EUC-JP");
$subject=mb_encode_mimeheader($subject,"JIS");
mail($to,$subject,$msg,$header);
ありがとうございます。
その方法ですと件名が無記名になってしまうのです。
「お問い合わせ」という件名を付けたいのですが
どのようにすればいいのでしょうか?
No.2
- 回答日時:
>その方法ですと件名が無記名になってしまうのです。
ならないでしょ・・・
<?
$subject="お問い合わせ";
$subject=mb_convert_encoding($subject,"JIS","EUC-JP");
$subject=mb_encode_mimeheader($subject,"JIS");
print $subject;
?>
もちろんこの場合はソースがEUCで書かれていなければいけませんが。
度々ありがとうございます。
<?
require_once("./lib/form_check.lib");
$type = $_POST['type'];
$company = $_POST['company'];
$industry = $_POST['industry'];
$post = $_POST['post'];
$name = $_POST['name'];
$address = $_POST['address'];
$tel = $_POST['tel'];
$mail = $_POST['mail'];
$detail = $_POST['detail'];
type_name($type);
$to = "■@■";
$subject="お問い合わせ";
$subject=mb_convert_encoding($subject,"JIS","EUC-JP");
$subject=mb_encode_mimeheader($subject,"JIS");
$header= "From:".$mail;
$msg ="────────────────────────────────────────────\n";
$msg .="■お問い合わせ内容\n".$type_name."\n\n";
$msg .="■会社名\n".$company."\n\n";
$msg .="■業種\n".$industry."\n\n";
$msg .="■役職・部署名\n".$post."\n\n";
$msg .="■氏名\n".$name."\n\n";
$msg .="■住所\n".$address."\n\n";
$msg .="■電話番号\n".$tel."\n\n";
$msg .="■メールアドレス\n".$mail."\n\n";
$msg .="■お問い合わせ詳細\n".$detail."\n";
mail($to,$subject,$msg,$header);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitio …
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja">
<head>
<title>お問い合わせ</title>
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP">
このようにしたのですが件名はちゃんとなったのですが本文などが
文字化けしてしまいました。
これにすると
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
件名部分がなく本文が大丈夫の状態です。
No.3
- 回答日時:
良くあるミスですけど、エンコーディングを変更した際にPHPファイルの文字コードセットも変更していますか?
或いは入力フォームが正しくエンコーディングされていますか?
No.4
- 回答日時:
bodyやheaderもちゃんとやろうよ・・・
(もうすこし調べてから質問してほしいところ)
$subject="お問い合わせ";
$subject=mb_convert_encoding($subject,"JIS","EUC-JP");
$subject=mb_encode_mimeheader($subject,"JIS");
$from ="おくるひと";
$from=mb_convert_encoding($from,"JIS","EUC-JP");
$from=mb_encode_mimeheader($from,"JIS");
$message="・・・・";
$message=mb_convert_encoding($message,"JIS","EUC-JP");
$version=phpversion();
$header=<<<eof
From: {$from} <xxx@exsample.com>
Return-Path: <xxx@exsample.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-2022-jp
Content-Transfer-Encoding: 7bit
X-Mailer: PHP/{$version}
eof;
mail($to,$subject,$message,$header);
とか・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- PHP php ログイン 1 2022/11/01 00:24
- HTML・CSS 私の能力からして間違っていないような気がします。 4 2022/09/30 13:24
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- JavaScript javascriptで入力フォームが空欄の時にアラートによるエラーを出すコードを書いています。 2 2023/06/13 17:58
- PHP PHPのエラーの解消法について教えて下さい。 1 2023/02/06 10:48
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
UTF8メールがLotus Notesで文字...
-
メールのCCに複数のアドレスを...
-
imodeメールのSubject部分の文...
-
廣のjis変換で文字化け
-
文字化け変換方法
-
PHP mb_convert_encoding sjis...
-
よく、書式で出てくる ○○ ( ○○,...
-
phpのメールフォームの完了画面...
-
メールフォームが部分的に文字...
-
mail()で送信したメールのタイ...
-
ソースコードの1行が長いとき...
-
VBAのコマンドボタンの文字列の...
-
エスケープ文字の復帰(¥r)と...
-
メッセージボックスで1025文字...
-
文字の入力で横バー上段、中断...
-
エクセルのCOUNTIFが正しくカウ...
-
ファイルから読み取った改行文...
-
COBOLの改行
-
カンマの含まれる文字列の数値...
-
改行について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
文字化け変換方法
-
phpのメールフォームの完了画面...
-
SQL Serverで文字コードUTF-8
-
PHPmailerでの添付ファイルの文...
-
SJISで取得した半角カナをUTF-8...
-
mb_convert_encoding で 一部の...
-
SJIS→UTF-8変換後の文字化けに...
-
PHP cURLでPOSTした値が文字化...
-
phpMyAdmin内での文字化け
-
mb_ereg_replaceに関して
-
RSSを取得すると文字化けする。
-
PostgreSQLからCSV形式でエクス...
-
【PHP】mb_convert_encoding...
-
mb_regex_encodingでエンコード...
-
postの文字化け防止について
-
小さいひらがな(っ、ょ、ぃ、ゃ...
-
UTF8メールがLotus Notesで文字...
-
mail()で送信したメールのタイ...
-
php自動返信メール本文の一部の...
-
phpでの文字エンコード
おすすめ情報