- ベストアンサー
変数の値が取得できません。< > のせいでしょうか?
mb_send_mailでメールを送信する際に FROM句の部分で値が取得できておらず エラーになってしまいます。 どうやら < > が原因のようなのですが・・・ $test = 'From:<'.$post['mail'].'>\n'; $test は From: しか、はいっていません。 書き方が、間違っているのでしょうか? もし、ご存知の方がいらっしゃいましたら 教えてください。 よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
ブラウザで確認しているなら、 echo '<xmp>' . $test . '</xmp>'; と出力しても空ですか? 空ならそもそも $post['mail'] が空なのだと思います。 あと\nはダブルクォートで。 $test = 'From:<' . $post['mail'] . '>' . "\n";
その他の回答 (4)
- inu2
- ベストアンサー率33% (1229/3720)
もしかして、$_POST['mail'] ですかね? ヘッダーインジェクションを考慮してない書き方なので、セキュリティ的にはものすごく危ない書き方です、自己責任で使ってください。
お礼
$_POST['mail']では、ありません。 回答、ありがとうございました。 お礼が遅くなり申し訳ありません。
- cbd_mei
- ベストアンサー率55% (143/259)
No1で回答したcbd_meiです。 補足です。(投稿内容が編集できれば楽なのですが) $test = "From:<".$post['mail'].">\n"; のように「"」で括って試されてどうでしょうか。 たしか < > についてはエスケープしなくても良かった気がしますが。 (忘れてしまいました・・・)
お礼
<>はエスケープなしでも 良かったと僕も思っていましたが 原因はよくわかりませんが うまくいきませんでした。 でも「"」だとうまくいきました。 ありがとうございました。
- asuncion
- ベストアンサー率33% (2127/6289)
> どうやら < > が原因のようなのですが・・・ そのように判断されたのであれば、 > $test = 'From:<'.$post['mail'].'>\n'; ここを $test = 'From:'.$post['mail'].'\n'; に修正して再挑戦してみてはいかがでしょうか。
お礼
回答、ありがとうございました。 お礼が遅くなり申し訳ありません。 「"」をつかって うまくいきました。
- cbd_mei
- ベストアンサー率55% (143/259)
$post['mail'] ではなく、$_POST['mail']として取得できないですか? $test = 'From:<'.$post['mail'].'>\n'; の$post['mail']が取得できなかった場合(変数がNULLの場合)は おそらく$test には From しか入らない事になると思います。 余談ですが、 $test変数に入れる前にPOSTされたmailデータについてNULL判定等を されたほうがいいと思います。
補足
さっそくの回答ありがとうございます。 とても、紛らわしくて 申し訳ないのですが、 $post['mail']は、 $_POST['mail']ではなく 別物なのです・・・。 NULL判定ですね! ありがとうございます、さっそく付け加えておきます!
お礼
ダブルクォートでやると うまくいきました。 回答、ありがとうございました。 お礼が遅くなり申し訳ありません。