• ベストアンサー

PHPでのお問い合わせフォームの本文のみが文字化けします。

ityounomiの回答

回答No.4

私は初心者なのですが、何度も文字化けには苦労させられました。私も同様な経験があります。メールの本文だけが文字化けしたりとか、yahooのWEBメールでは文字化けしていないのに gooのWEBメールでは文字化けしていたりとか・・・。文字化けの原因のほとんどが異なる文字コードで記載されたものが混在していることでした。

akohghg
質問者

お礼

みなさまの回答を拝見してこの質問内容に関しての情報提供が不足していたことから、回答者のみなさまが適切な判断に至らなかったと反省しています。 私自身が全くPHPを理解していません本当の初心者で、お問い合わせフォームに挑戦しています。 4つのサイトにフォームを設置してそのうち3つはちゃんと動いています。PHPの部分だけをコピペーして4つめのサイトへフォームを設置したところこのようになりました。 なので、問題はPHPではなく、文字コードが原因だとは推測できるのですが、送られてきた文字化けした本文は確かにISO-2022-JPとなっていました。 既存のHTMLのページにPHP部分をコピペーして文字コードをShift_JJISからUTF-8へ変更しただけですので、そこに原因があるのだと思います。 なにはともあれ、この質問することに対しても勉強不足だということを再認識いたしました。 みなさまに一括してのお礼となり申し訳ありませんが、回答してくださいましたみなさまありがとうございました。

関連するQ&A

  • PHPの文字化け

    PHPでチャットを作っているのですが、どうしても、文字化けを起こしてしまいます。 文字化けを起こす場所は、入室するときの名前と、ログを読み出すときです。 それ以外は正常に動作しているように見えます。 文字化けする文字は、日本語だけで、アルファベットは問題ありません。 「テスト」と入力するとFirefoxでは「???鴻??」といった用になって、IEでは「・・"鴻ヨ」というように文字化けの仕方が違うようです。 文字コードはEUCです。 サーバーはwindowsでローカルサーバーを立てています。 サーバーの設定の問題でしょうか? アドバイスをよろしくお願いします。

    • ベストアンサー
    • PHP
  • PHP フォームからのデータが文字化け

    PHPにて簡単な以下のようなアプリを勉強がてら作っています。 1.登録フォームを表示 2.確認画面表示 3.DB(MySQL)にデータ登録 そこで質問なのですが、フォームから入力し確認画面を表示するときに、フォームから入力した文字が文字化けしてしまいます(正確には文字化けする時としない時があります)。 出力ページはSmartyを使っています。 テンプレートはUTF-8を使っており、テンプレート内の文字は文字化けしません。PHPソースもUTF-8で書いてあります。 各PHPソースには mb_language("uni"); mb_internal_encoding("UTF-8"); mb_http_output("UTF-8"); と記述しています。 DB(MySQL)のテーブルはUTF-8にしてあります。 1点気になるのは、某ホスティングサービス上で作っているのですが、PHPinfoで見てみるとmb_internal_encodingはEUC-JPになっています。 今回UTF-8で作りたいのですがどうしたら良いのでしょうか? 環境は、 Apache 1.3.34 / PHP 4.3.7 / MySQL 4.1.21 です。 アドバイスお願いいたします。

    • ベストアンサー
    • PHP
  • 文字化けメールのエンコードについて

    私は、外資系(香港本社)の会社につとめています。 会社のサービスに関する問い合わせを、HPからのフォームで受け付けているのですが、常に文字化けした状態で問い合わせメールを受け取ります。 以前使っていたPCでは、メール本文を開いたウィンドウの「表示」>「エンコード」>「Unicode(UTF-8)」を選ぶと、文字化けしていたのがちゃんと日本語に戻って暮れたのですが、現在使っている別のPCでは、同じことを行っても文字化けが直りません。 また、会社の同僚のPCを使ってみても、うまく文字化けが直るPCと、直らないPCがあります。 当初は、香港に置かれている会社HPのサーバーに原因があるのかと思ったのですが、こうした状況を考えると、個別のPCのフォントに関する設定に問題がある気がします。 文字化けしたままですと、問い合わせへのフォローもできませんし、この1年くらい悩まされています。 どなたか、原因なり対処方法がお分かりになるようでしたらお教えください。 よろしくお願いします。

  • PHP 問い合わせフォームの文字化け

    はじめまして。 会員648です。 Websiteを作成し、問い合わせフォームで 入力をHTML、チェック・確認画面、送信をPHPで 作成しました。 初心者なので、サイトでの作成事例をまねております。また文字化けは UTF-8を書けば良い ということも サイトにあったので、とりあえずそうしました。 しかし 他のHTMLは正常に表示しますが、HTMLの入力画面、PHPチェック画面 すべて  文字化けします。 入力画面は <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <form method="post" action="check.php"> ですが 文字化け表示となります。 内容確認画面は check.php で <?php // フォームデータが空の場合は処理終了 if (empty($_POST)) { echo "処理終了"; exit; } // セッションの開始 session_start(); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> で始まります。 詳しくPHPを知りませんので、どこが問題なのか 教えていただけませんでしょうか。 なお、テスト環境は 自分のPCで Xampp をインストールして、htdocs 配下に すべての HTML, CSS, image,php を 置いております。 なにとぞ よろしくお願いいたします。

    • 締切済み
    • PHP
  • PHPのメールフォーム文字化けについて

    PHP超初心者です。 前任者が退職し、急きょWEBを引き継ぐことになりました。 現在稼動中のサイトのメールフォームは、PHPで処理を行っているのですが、 フォーム入力後に表示する入力確認画面及び送信メールで、 日本語が文字化けを起こしてしまいます。 PHP内に記述されているのは、 if(phpversion() < "4.1.0"){ $_GET = $HTTP_GET_VARS; $_POST = $HTTP_POST_VARS; $_SESSION = $HTTP_SESSION_VARS; } なのですが、レンタルサーバーのPHPバージョンは5.2.8です。 言語及び内部エンコーディングは、 mb_language('Japanese'); mb_internal_encoding(UTF-8); と設定してありますので、文字化けはバージョンの違いによるものではないかと考えているのですが、なにぶん初心者でどのように修正をかければよいのか分かりません。 尚、動作には問題はありません。 初歩的な質問で大変恐縮ですが、どなたかご回答よろしくお願いいたします。 (初心者向けの分かりやすい回答でお願いします)

    • 締切済み
    • PHP
  • PHP(UTF-8)で作ったフォームで、メールが文字化けします。

    PHPで問合せフォームを作っていて、最初は文字コードが”EUC”でうまく動作していました。ところが、サーバを変えたら文字化けしてしまい、問い合わせたところ”UTF-8”に変えてくださいと言われました。 単純に”EUC”だったところを”UTF-8”に修正したら、HP上の表示は直ったのですが、送信されるメールが文字化けしたままなのです。(「?????」という感じで) mb_language("uni");  を入れたらいいのだろうというとこまでは辿り着いたのですが、どこに入れてもうまくいかず・・・。 http://www.infinity-dimensions.com/blog/archives/000114.html もともと私が作ったプログラムではなく、PHPの知識がないため困っています。 自分なりに調べて、いろいろ試してもわかりませんでした。 助けていただける方がいらっしゃいましたら、よろしくお願いいたします。 -------------(現在のソースです)------------- <?php foreach($_POST as $key => $val){ if(is_array($val)){ continue; } $val = mb_convert_kana($val, "KVas","UTF-8"); $val = trim($val); $val = stripslashes($val); $val = htmlspecialchars($val); $_POST[$key] = $val; } ?> <form method="post" action="<?php print($_SERVER["PHP_SELF"]); ?>">

    • ベストアンサー
    • PHP
  • PHP4からPHP5にしたときのDB文字化けについて

    よろしくお願い致します。 すでに、PHP4で作っていたサイトで、DBにもいろいろと登録していたのですが、PHP5にしたい事情が出てしまい、PHP5にしました。 すると、すでに登録されていた、DBの内容が文字化けしてしまいました。 PHP4(UTF8)+MySQL5(UTF8) → PHP5(UTF8)+MySQL5(UTF8) 情報足りませんでしたら申し訳ないです、申し付けて下さい。 phpMyAdminから見たときは、すでに入っていたDBの内容は文字化けはしていないのですが… 次にPHP5で新しく登録した場合は、サイトでの表示は文字化けしないのですが、次はphpMyAdminで見ると文字化けしていました。 php.iniの設定も同じにしてます、Apacheのconf設定なども見たのですが、文字化けは解消しませんでした。 よろしくお願い致します。

    • 締切済み
    • PHP
  • メールフォームの文字化け

    フリーのプログラムで、mailform3というPHPを使って、サイトにメールフォームを設置いたしました。 こちらからの送受信テストでは問題はなく、別の人間が試してみても問題はありませんでしたが、何通か文字化けしたメールが送られてきているようです。 文字化けはすべてアルファベットの羅列だったのですが、 相手のPC環境によりこちらで受信した際、文字化けを起こすことってあるのでしょうか。 この問題を回避させるために、コードを出した方がよろしいようでしたら公開します。 どうぞよろしくお願いいたします。

    • ベストアンサー
    • PHP
  • PHPで文字化けします

    PHPでリンク集を登録、表示するプログラムを考えています。 登録、削除などは出来るのですが、表示部分が文字化けします。 登録内容をcsvに保存して、PHPから読み込んで表示する仕組みなのですが、csvから読み込む部分以外は正常に表示されますが、csvから読み込んだ部分が文字化けします。 サーバーは共用なので、管理者に問い合わせた所、サーバの通常文字コードはUTF-8との事、.htaccess ファイルで EUCへの変換方法を教えてもらったので、試しましたが、csv内に登録した時点で、文字化けした状態で記録されているようで、PHPファイルをsjisにして試しても、EUCにして試しても結果が同じです。 フォームからcsvに登録する時の文字コードを設定したりはできないのでしょうか。 また、公開されているスクリプトで相互リンク登録が出来るようなプログラムをご存知であれば、お教えください。

    • 締切済み
    • PHP
  • PHPの文字化けについて

    宜しくお願い致しますm(__)m PHPを覚え初めてまだ一週間という初心者なのですが、ご質問させて下さい。初心者向けのPHP入門書を買ってフォームの作製をしたんですが、localhostでテストしてみるとちゃんと文字が表示されるんですが、サーバにアップしてテストするとphpの部分で、変数の部分が文字化けするんです。通常のphpの中のhtml部分はちゃんと表示されるんですが、変数に代入している文字や数字が化けるんです。なぜでしょう(T_T) どなたかお知恵をお貸し頂けると大変助かります。

    • ベストアンサー
    • PHP