• ベストアンサー

PHPフォーム→PHP確認画面で、文字化け

PHPでHTMLのフォームを吐き出し、そこから、PHPの確認画面に移行する際、文字化けが発生するのですが、どうしたらよいでしょうか?

  • PHP
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

とりあえずheaderでキャラクターセットを指定してあげてください header("Content-Type:text/html;charset=euc-jp"); それで直らない場合は出力時に文字コードをコンバートしてあげてください print mb_convert_encoding($str,"EUC","SJIS");

参考URL:
http://www.php.net/manual/ja/function.header.php,http://www.php.net/manual/ja/ref.mbstring.php

関連するQ&A

  • 申し込みフォーム、確認画面の文字化けについて

    WPにてスマートフォンサイトの作成を行っています。 申し込みフォームのみ決められたHTMLのソースがあるので、FTPに入れてそちらに飛ばすように作っています。 同じものを何サイトか作っていて、ほぼ問題なく作れているのですが、何故か1サイトのみ、申し込み内容の確認画面で文字化けを起こしてしまって直りません。 Shift_JISはすべてUTF-8に書き換えています。 その他のサイトは同じやり方で文字化けは起こしていません。 ソースが間違っているのかと思い、文字化けを起こしていないサイトに使用したフォームのソースを入れてみましたが、やはり文字化けをしたままです。 逆に、文字化けしているサイトに使用予定のソースを違うサイトに入れてみても文字化けは起こしません。 (ソース自体はほぼ同じです。金額が違うためその部分だけ違うようです。) スマートフォンのサイトに関してはすべて同じ作り方で作っています。 WPが何かを引き起こしてるとも思えません。 スマホサイトは各項目ごとのPCサイトのディレクトリの下層ページに作っていますが、他のCSS等が作用しているのでしょうか? 後他のサイトとの違いといえば スマホ文字化けなし →スマホサイトをPCから操作し、申し込みフォームを入力すると確認画面で文字化けするが、スマホで入力すると文字化けなし。 スマホ文字化けあり →スマホサイトをPCから操作し、申し込みフォームを入力すると確認画面で文字化けしないが、スマホで入力すると文字化けする。 すべてが文字化けなら納得?いくのですが、何故かの1サイトのみ・・・ 完全に行き詰ってしまいました。 お詳しい方ご教授いただけないでしょうか? よろしくお願いいたします。

  • フォームで文字化けしてしまって....

    googleで検索しても答えが見つからなかったので、皆様のお力をお貸しいただければと。 携帯サイト用のフォームをつくってみたのですが、文字化けを起こしてしまい、解決法が分からずに困っております。 文字コードをEUCにしてソースも変えると【au】では HTML(フォーム1ページ目の入力画面)も、処理後(入力した内容を確認する画面)も化けてしまいます。 ※docomoとsoftbankはオールクリアでした。 また 文字コードをShift_JISにしソースも変えると HTML(フォーム1ページ目)は3キャリア共化けません。処理後(確認画面)はdocomoとsoftbankで文字化けします。 些細な事でもかまいません。 アドバイスいただけたら幸いです。

  • 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
  • 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
  • フォーム確認画面で文字化け

    お世話になります。 フォーム確認画面で特定の文字を入力すると、文字化けします。 流れは フォーム(ランキングと入力すると)EUC 確認画面(ラン?5)鵐 と表示されます。)EUC 送信 EUC となっております。 そこでラ・ン・キ・ン・グ と一文字づつ入力してみましたが、正常に表示されております。ランキングとつなげてが表示が出来ません。どうやら、”キ”と”き”が原因なのでは無いかと考えております。 なお、確認画面のソースは以下になります。 $comment=$_POST["comment"]; $comment= mb_convert_kana($comment, "KVKV"); $comment= htmlspecialchars($comment); $comment= stripslashes($comment); $comment= nl2br($comment); <?php print $comment;?> どなたかご教授いただける方お願いいたします。あと、”広告”の文字もだめでした。

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

    今、会社のHP用でメールフォームをphpで作成しています。 「入力」→「確認」→「送信」 でsession関数を使って作成しているのですが確認画面で文字化けしてしまい、送られてくるメールも文字化けしてしまい困っています。 エンコードの間違い?と思って mb_language("ja"); mb_internal_encoding("SJIS"); でやっているのですがこれだけではいけないのでしょうか? 個人で借りているサーバーで試したところうまくいったのですが、会社の借りているサーバーだと文字化けしてしまう状態です。 ちなみに個人で借りているのはロリポップで 会社のサーバーはphp4まで対応しています。 わかりにくい質問ですがよろしくお願いします。

    • 締切済み
    • PHP
  • PHPによる確認フォームについて

    PHP初心者です。 HTMLフォームからPHPファイルに変数を受け渡すシステムを作っています。 下記のようにHTMLフォームから入力された変数をPHPファイル (確認フォーム)で受け取ることはうまくいきました。 $HTTP_POST_VARS['変数'] 次はそのデータを確認フォームの「確認ボタン」で確認して次のPHPファイル (DBへの入力)に変数を渡したいのですが、どのようにすればよいのでしょうか? いろいろ調べてみたのですが、どうもうまくいきません。 どのようにすればよいのでしょうか?

  • フォーム受け渡しの際の文字化け

    phpスクリプトで フォーム入力→確認画面→ログファイルに書き込み→別スクリプトによりログファイル読み込み→表示 というスクリプトを作ったのですが、フォームに本文を入力した際に 確認画面で本文を見ると、文字化けしてしまいます。 例えば、芸能界と書けば芸柏lになってしまうなど、何故かある一定の文字が書き込めません。(他の大半の文字は文字化けしない) おそらく、euc-jpではなくSJISでphpスクリプトを作っているためだと思うのですが、どうしてもSJISで書きたい場合、何か解決方法はありますか? また、表示するときにSJISになっていればいいため、入力段階などではeuc-jpでも大丈夫です。 ご教授お願いします。

    • ベストアンサー
    • PHP
  • [HTML-PHP]あるPHPファイルだけ文字化け

    お世話になります。 XP/PHP5.2.9/Apache2.2.11 の環境で、簡単なシステムを作っているのですが、その際に PHP側で header( "Content-Type: text/html;charset=shift_jis"); HTML側で <meta http-equiv="content-type" content="text/html; charset=shift_jis"> と明示的にSJISにしているのですが、実際にローカルで確認すると文字化けしてしまうPHPファイルがあります。(1ファイルのみ) 他のPHPファイルは同様のヘッダー情報を送信していますが、文字化けせずに画面出力されています。 HTML-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

専門家に質問してみよう