• ベストアンサー

メールフォームが文字化けします、、、、

メールフォームが文字化けします、、、。 「申します」→「垂オます」 とかなってしまいます。 また、「(1)」とかは「?」になってしまいます。 いろいろ調べてみたんですがこの辺かなぁとは思います。 ちなみにプログラミングなどド素人です。 ____________________________ if(get_magic_quotes_gpc()){$str = stripslashes($str);} //¥除去 return $str; } ____________________________ アドバイスお願い出来ましたら幸いです。><;

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

  • ベストアンサー
  • inu2
  • ベストアンサー率33% (1229/3720)
回答No.1

「パソコン性能の申請書」 と入力してみてください、もし、文字化けするようであれば php.iniのmagic_quotes_gpc = Onになっているかと思います magic_quotes_gpc = Off にしましょう もしくは、shift_jisではない ほかの文字コードを使ってください。

kon3914
質問者

お礼

早速のお返事ありがとうございます★ 全項目に入れて送信してみたのですが 下記のように「商品名」と「備考」の欄だけ文字化けしています。 ><; ちなみに magic_quotes_gpc = Onとは上記の get_magic_quotes_gpc() の部分を get_magic_quotes_gpc(1) にするのでしょうか?それでしたら何時間か前にやってみたのですが変化有りませんでした、、、、、。 _______________________ 商品:「パャRン性狽フ瑞ソ書」 お名前:「パソコン性能の申請書」 様 郵便番号:「パソコン性能の申請書」 ご住所:「パソコン性能の申請書」 お電話番号:「パソコン性能の申請書」 発送方法:「パソコン性能の申請書」 指定時間:「パソコン性能の申請書」 送料:「パソコン性能の申請書」 お振込金額:「パソコン性能の申請書」 お振込予定日:「パソコン性能の申請書」 お振込方法:「パソコン性能の申請書」 備考:「パャRン性狽フ瑞ソ書」

その他の回答 (3)

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.4

functionはmojifilter()ですね。 222,223行目の   mojifilter($title);   mojifilter($comment); しか通ってません。 mb_send_mail(302,319行目)の直前に   if(get_magic_quotes_gpc()){ $mail_str = stripslashes($mail_str); } を入れてみてください。

kon3914
質問者

お礼

折角細かい行数を頂いたのですがどうやって数えたらいいのかわからず、CTRL+Fでmb_send_mailを探したところ2箇所見つかったので下記のように変更致しました。 そしたら、ページ自体表示されなくなってしまいました、、、。><; mb_internal_encoding("sjis"); @if(get_magic_quotes_gpc()){ $mail_str =stripslashes($mail_str);} mb_send_mail($conf['mailto'],$title,$mail_str,'From:'.mb_encode_mimeheader("{$conf['sitename']}").$conf['mailto']); _____________________ mb_internal_encoding("sjis"); @if(get_magic_quotes_gpc()){ $mail_str =stripslashes($mail_str);} mb_send_mail($mail,$subject,$mail_str,'From:'.mb_encode_mimeheader("{$conf['sitename']}").$conf['mailto']); }

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.3

ANo.2です。 「文字化けします」というのが、メール本文でなくphpで表示しているhtml(フォーム)のことだとしたら、「申します」はご自分で定義していますよね?そうだとしたら、スクリプトの文字コードを(当然HTMLも)SJIS以外(EUC-JPかUTF-8)に変更するほうが手っ取り早いです。 まぁ多分こちらではないとは思いますが、念のため。 ちなみにANo.1さんの手法(php.iniの変更)でもかまいませんが「php.iniが変更できる(もしくはユーザ別に使える)サーバかどうか」をまずは確認してください。

kon3914
質問者

お礼

お返事ありがとうございます! おっしゃるとおりメール本文が文字化けします。 ホームページは大丈夫です。 先ほどサーバーのファイルマネージャーからファイルを選択してJISをEUC-JPとUTF-8の両方替えてみたのですが駄目でした。 magic_quotes_gpc()を magic_quotes_gpc(0) にしても駄目でした。

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.2

 get_magic_quotes_gpc()をチェックしてONだったらstripslashesで「\」を除去する・・というのは必須です。returnで返っているということはfunctionだと思いますが、POSTされたデータは全部このfunctionをちゃんと通していますか? >ちなみにプログラミングなどド素人です。 であれば、このスクリプトは「誰が」書いたものですか?配布されているようなものであれば、配布元やスクリプト名などを書いていただけるといいかもしれません。

kon3914
質問者

お礼

早速のお返事ありがとうございます★ http://www.keitai-site.net/ のメールフォームバージョン101です。 自分でいろいろ項目など替えちゃってるあたりで何か間違えてしまったのでしょうか、、、、。 function、、、を通る、、、。この辺でしょうか? 本当にすみません。 _________________________________ function delete(){ //▼delete global $conf,$aryfl1,$ua,$admin,$msg; if(is_numeric($_REQUEST['del_id'])){ $del_id = $_REQUEST['del_id']; $i = 0; foreach($aryfl1 as $value){list($id1,$id2,$id3,$reg_time,$name,$mail,$url,$title,$comment,$upfile,$dllimit,$dlkey,$pass,$vol,$thumbfile,$dlcount,$zan,$host) = explode(",",mb_convert_encoding($value,"SJIS","ASCII,JIS,UTF-8,EUC-JP,SJIS")); if(strcmp($id1,$del_id) == 0){ unset($aryfl1[$i]); //指定データ行削除 @unlink('uf/'.$upfile); //アップロードファイル削除 @unlink('uf/'.$thumbfile); //サムネイルファイル削除

関連するQ&A