• ベストアンサー

変数の値が取得できません。< > のせいでしょうか?

mb_send_mailでメールを送信する際に FROM句の部分で値が取得できておらず エラーになってしまいます。 どうやら < > が原因のようなのですが・・・ $test = 'From:<'.$post['mail'].'>\n'; $test は From: しか、はいっていません。 書き方が、間違っているのでしょうか? もし、ご存知の方がいらっしゃいましたら 教えてください。 よろしくお願いします。

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

  • ベストアンサー
  • tany180sx
  • ベストアンサー率63% (239/379)
回答No.4

ブラウザで確認しているなら、 echo '<xmp>' . $test . '</xmp>'; と出力しても空ですか? 空ならそもそも $post['mail'] が空なのだと思います。 あと\nはダブルクォートで。 $test = 'From:<' . $post['mail'] . '>' . "\n";

g1979
質問者

お礼

ダブルクォートでやると うまくいきました。 回答、ありがとうございました。 お礼が遅くなり申し訳ありません。

その他の回答 (4)

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

もしかして、$_POST['mail'] ですかね? ヘッダーインジェクションを考慮してない書き方なので、セキュリティ的にはものすごく危ない書き方です、自己責任で使ってください。

g1979
質問者

お礼

$_POST['mail']では、ありません。 回答、ありがとうございました。 お礼が遅くなり申し訳ありません。

  • cbd_mei
  • ベストアンサー率55% (143/259)
回答No.3

No1で回答したcbd_meiです。 補足です。(投稿内容が編集できれば楽なのですが) $test = "From:<".$post['mail'].">\n"; のように「"」で括って試されてどうでしょうか。 たしか < > についてはエスケープしなくても良かった気がしますが。 (忘れてしまいました・・・)

g1979
質問者

お礼

<>はエスケープなしでも 良かったと僕も思っていましたが 原因はよくわかりませんが うまくいきませんでした。 でも「"」だとうまくいきました。 ありがとうございました。

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.2

> どうやら < > が原因のようなのですが・・・ そのように判断されたのであれば、 > $test = 'From:<'.$post['mail'].'>\n'; ここを $test = 'From:'.$post['mail'].'\n'; に修正して再挑戦してみてはいかがでしょうか。

g1979
質問者

お礼

回答、ありがとうございました。 お礼が遅くなり申し訳ありません。 「"」をつかって うまくいきました。

  • cbd_mei
  • ベストアンサー率55% (143/259)
回答No.1

$post['mail'] ではなく、$_POST['mail']として取得できないですか? $test = 'From:<'.$post['mail'].'>\n'; の$post['mail']が取得できなかった場合(変数がNULLの場合)は おそらく$test には From しか入らない事になると思います。 余談ですが、 $test変数に入れる前にPOSTされたmailデータについてNULL判定等を されたほうがいいと思います。

g1979
質問者

補足

さっそくの回答ありがとうございます。 とても、紛らわしくて 申し訳ないのですが、 $post['mail']は、 $_POST['mail']ではなく 別物なのです・・・。 NULL判定ですね! ありがとうございます、さっそく付け加えておきます!

関連するQ&A