• 締切済み

メールの内容が消えてしいました。

フォーム入力でメール(mail()関数使用)を送信するようにしているのですが、一度だけですが、内容が一部失われてメールが飛んでしまいました。 フォームの内容を羅列してメールを飛ばすようにしているのですが、 ・名前:○○ ・住所:○○   ・   ・   ・ といった具合です。 それが、一度だけなんですが、 ・名前:○○ ・住所:○○ という風に上部の2項目のみ残っていて残りの項目が消えてメールが飛んでしまったのです。 どういう理由でそうなったのかまったく分からないので、 ご教授お願いします。

みんなの回答

  • taik
  • ベストアンサー率0% (0/0)
回答No.2

1回だけというのは、原因の追究が難しいですね・・・ エスケープ文字使用で、それ以降消えちゃったとか、 原因は実データから検証することが必要かもしれないです。

gon2002it
質問者

お礼

>1回だけというのは、原因の追究が難しいですね・・ ほんとそうなんです。 >エスケープ文字使用で、それ以降消えちゃったとか、 >原因は実データから検証することが必要かもしれないです。 ログを残すことはしていなく、検証データがなく、お手上げ状態です。 なんらかの文字でそれ以降消えちゃった場合を考えますと、手当たりしだいテストしかないですよね。 いろいろやってみたんですが、普通にきれいなメールとんじゃいまして、もう無理かもと少々へこたれてる所ですが、なんとか探しあてたいです。

gon2002it
質問者

補足

追加ですが、テストしてまして、分かったんですが、 フォームで「くさなぎ」と入力した値が 確認ページでは、「なぎ」の部分だけ、消えていまして、 送信し、メールを確認すると、その部分以降が消えていました。 文字化けでそれ以降に影響がでてしまっているんでしょうか? 文字コードがSJISというのがいけないのでしょうか? すみませんが、検討よろしくおねがいします。

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

どういうプログラムフローかもわからないので これでまともに答えられる人はいないでしょう。 まぁ回答としては「ソースにバグがあるから」だと 思います。

gon2002it
質問者

お礼

回答ありがとうございます。 情報不足で失礼いたしました。 プログラムフローといいますか、 フォームで入力した値をPOSTで送って、 それを $message_allにいれて、 $re = mail($to, $subject, $message_all, $headers)); if($re){ header("Location:./submit_end.php"); }else{ header("Location:./submit_error.php"); } としてるだけなのですが・・・。 う~ん、やはりバグですよね~。