• ベストアンサー

header関数で文字化け

PHP初心者なのでよろしくお願いします。 たとえば header('Location: aaa.php?msg=こんにちは'); として、 aaa.php側で受け取って表示させると「こんにちは」が文字化けします。 Firefoxでは大丈夫でIEで文字化けします。 これを回避するにはどう記述したらいいでしょうか?

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

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

  • ベストアンサー
回答No.1

<?php // 送信側 $str = 'こんにちは'; $str = urlencode($str); header ("Location:aaa.php?msg=$str"); ?> <?php // 受信側 $str = urldecode($_GET['msg']); echo "$str"; ?> これで、できませんでしょうか?

sattakah_goo
質問者

お礼

urlencodeなんて物があったんですね。 まだまだ勉強初めで、知識不足でした。 試したら成功しました!ありがとうございます。

関連するQ&A

  • phpファイルで文字化け

    お世話になります。 PHP4で作成しています。 あるPHPファイルが読み込まれたとき、 パラメータが引き渡されているか確認し、 引き渡されていない場合には、 別のページにジャンプするように以下のように作成しています。 if ($aaa==""){ header("Location: aaa.php" ); }else{ header("Conten-type: text/html; charset=Shift_JIS"); } 通常、aaa.phpファイルは文字化けしないのですが、 このファイルから自動的に飛んだときに 文字化けで表示されてしまいます。 ブラウザの更新ボタンをクリックすると、 きちんと表示されるようになります。 文字化けした時のエンコードを見ると 西ヨーロッパ言語になっています。 aaa.phpファイルでも、 charset=shift_jis と指定しているのですが、 何が原因でしょうか? よろしくお願いします。

    • 締切済み
    • PHP
  • PHP header関数が使えない

    OS:Linux PHP、Postgres のシステム環境です。 現在PHPのheader()関数が動いてくれません。 (リダイレクトできない。) <HTML> <HEAD><TITLE>aaaa</TITLE></HEAD> <BODY> <?php header('Location: http://aaa.com/'); ?> </BODY> </HTML> こんな風にHTMLタグなにか出力した後にheader関数を呼び出すとエラーになり、headerのコールはすべての出力の前に行うこととサイトで調べてみまして分かったのですが。 あるシステムではHTMLタグの中に入れてもheader関数は問題なく動いています。 php.iniの設定なのでしょうか、それともプログラムの記述方法で回避できるのでしょうか? このおかげで膨大な修正が必要になりました。 回避策はございますでしょうか? よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • header関数が使えない

    <html> <head> </head> <body> <?php header("Location: http://www.php.net/"); exit; ?> </body> </html> のように、単にheader関数を試したら Warning: Cannot add header information - headers already sent by (output started at /home/***/index.php:5) in /home/***/index.php on line 6 のようなエラーがでました。header関数が使えないようなのですが、これはどこの設定を直せば解決できるのでしょうか? 普通に、phpinfo.phpは表示できるので、phpそのものは使えています。 Apache/1.3.26 PHP 4.2.2

    • ベストアンサー
    • PHP
  • サーバーにアップすると文字化けするんです

    PHP初心者です。 文字化けの原因がわからず、困っております。 サーバーにphpファイルをUPして、 IEで確認すると文字化けをしてしまうんです。 IEの[表示/エンコード]で[日本語(自動選択)]をクリックすると、文字化けは解消されますが、 ページを切り替えると、また文字化けしてしまって・・・。 <meta http-equiv="Content-Type" content="text/html; charset=shift_jis" />の記述は怠っていません。 ローカルホストから確認したときは、文字化けせずに表示されています。 何が原因なのか見当がつきません。 どうすれば、文字化けを解消できるでしょうか。 お力をお貸しくださいませm(__)m

    • ベストアンサー
    • PHP
  • 文字化け

    PHPとMySQLを利用して、ホームページを作っています。 ところが、どうしても一部文字化けをしてしまいます。 EUCとS-Jisの違いというのは分かっているんですけど、 データベースにアップする際、S-Jisでデータ挿入と しているにも関わらず、文字化けをするのはなぜでしょうか? また、念のため、表示する側(PHP)でも、S-Jisで表示するように指定しているんですけど…。 これは、どうしても回避できないんでしょうか? データベースに挿入する際に、例えば「表\示」と最初から 入れておかないとだめ、ということでしょうか?

  • Cannot modify header information

    質問がの仕方が下手なので理解しずらいかもしれませんが、どうかお願いします。 PHPを使っているとタイトルのエラーがが表示されてしまいます(T_T) ソースコードは <?php header(""Location: http://yahoo.co.jp"); exit; ?> という簡単なものです。 自分で調べてタブとか空白という事でしたので調べましたが、わかりませんでした。 試しに2、3行目をコメントにして実行すると画面上はもちろん真っ白なものが表示されます。 しかし、文字コードを変えてみると何かが文字化けしたようなものが表示されます。 これが問題だろうとはわかるのですが、どうしてよいかわからず・・・。 何方かアドバイスいただけないでしょうか

    • ベストアンサー
    • PHP
  • Firefox 文字化け

    Firefoxで「:」や「4」、「5」などの文字が得体の知れない記号に文字化けしてしまって困ってます。 書体を変えても文字化けをします。 IEなどではちゃんと表示されます。 どうしたら直りますか?

  • HEADERについて

    無知でお恥ずかしいのですが、PHPで出力する際 header("Content-Type: text/html;charset=EUC-JP"); などと最初にヘッダーを出力すると思うのですが、例えばtest.phpが以下のようになっていた場合でもPHPでヘッダーを出力する必要があるのでしょうか? test.php ※1<?php header("Content-Type: text/html;charset=EUC-JP"); ?> <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="TEXT/HTML; CHARSET=EUC-JP"> <TITLE></TITLE></HEAD> <BODY> TEST <?php echo $test; ?> </BODY> </HTML> 参考書などを見てみると「全ての出力の前に記述する必要がある」と書いてあるだけで、書かずとも正常に表示されますし、仮に文字化けしても <META HTTP-EQUIV="Content-Type" CONTENT="TEXT/HTML; CHARSET=EUC-JP"> と追加すれば文字化けも解決するので、疑問は感じつつも思い出したときにPHPにもヘッダを記述するようにしていたのですが、少しづつPHPを勉強しやれる事が増えてくる内に、記述してあるものと記述して無いものが混在してきて気持ち悪く感じてきました。 皆さんはどのようにされていますか? ※他サイトで配布されているPHPスクリプトなども見てみたのですが、毎回記述している方、一切記述していない方それぞれでした。 あと、全く違う質問ですが、MYSQL接続中にエラー処理でexit;する場合、exit;する前にMYSQL接続を切断する必要ってあるのでしょうか?

    • ベストアンサー
    • PHP
  • header関数で画面が切り替わらない

    a.phpにボタンがあり、押されるとb.phpに飛んである処理を行い、c.phpで完了メッセージを出す、というようなものを作成しています。 b.phpで処理後、header("Location: end.php");というのを使っているのですが、 ページが切り替わらずに(URLがb.phpのまま)、ページを表示できませんと出てしまいます。 一体何が原因なのでしょうか? これが出来ないと先に進まないので困っています・・・

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

    charset=utf-8"のページでiframeを利用してファイルを読み込んでいます。 firefox3.03とIE7で文字化けが起こります。firefox2.0.0.20とIE6だと正常に見れます。 読み込みたいファイルは.phpです。 同じファイルをcharset=shift_jis"のページから読み込むとfirefox3.0.0.20とIE7、プラスIE6も見られるようです。 charset=utf-8"のままfirefox3.03とIE7で見れるようにするにはどうすればよいでしょうか??