プロが教える店舗&オフィスのセキュリティ対策術

テキストボックスやラジオボタンなど、フォームに書き入れた内容をメールに送信するプログラムを作っています。(アンケートフォームのようなもの)
まず、nyuryoku.phpでテキストエリア内に入力されたものを kakunin.php に $area1 として、表示させました。その内容を、hidden でmail.php に送りました。
kakunin.phpでは、$area1 がきちんと表示されるのに、
メールに送られてきた内容は、1行しか送られてきません。
なぜなのでしょうか?
kakunin.phpで改行させる為に、
 $area2 = nl2br($_POST[area]."\n");
をしましたが、それは関係あるのでしょうか。

分かりづらい説明で、申し訳ありませんがよろしくおねがいします。

A 回答 (3件)

解決になるかわかりませんが、



タグの要素は必ずダブルコーテーションまたはシングルコーテーションで囲んでください。
というのは改行などはホワイトスペースなので、要素の終わりと判断されてしまうような気がします。
また、文字列にこれらが含まれているようだと、またアウトなので、配慮の必要があります。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

ダブルコーテーションで囲った結果、無事に複数行メール送信されてきました。
ダブルコーテーションひとつで、表示が変わってしまうんですね。改めて勉強になりました。
ありがとうございます!

お礼日時:2004/10/04 11:58

HTMLを見るにやはり、hiddenタグが壊れていますね。


shu aさんのおっしゃる通りクォーテーションでくくればなんとかなりますが、それだと、エスケープしたりなんやかんやで、処理が増えたりします。

解決方法としてセッションをお勧めしたのですが、表示形式を変えても良いなら、textareaタグのreadonly属性を使ってみてはいかがでしょうか?

kakunin.phpの表示を
<textarea name="ta01" wrap="hard" readonly>
 <?= $テキストエリアの変数$ ?>
</textarea>

という感じでtextareaで表示すれば、そのままPOSTできますので、もっとシンプルに解決できると思います

参考URL:http://html.eweb-design.com/0904_txt.html
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

結局、いまだにセッションの使い方は分かっていないのですが…。
textareaには、入力してもらいたい所なのでreadonlyを使ってしまうと、それができなくなってしまい使えないんです。
ダブルクォーテーションで囲ったら送信されました!!
ありがとうございました。

お礼日時:2004/10/04 12:11

要するにhiddenに埋めてバケツリレー中にデータが壊れたということですよね?



hiddenタグに複数行を突っ込むのが暴挙のような気がします。kakunin.phpの出力ソースはどうなっていますか?
hiddenタグが壊れているんじゃないでしょうか?

セッションに埋めるなどした方が得策では?(環境の制限にもよると思いますが)

mail.phpで$_POST[hiddenタグのname]の中身を確認した方がよろしいかと。

ちなみに$area1も$area2も表示に使っただけなら、関係ないと思います。

この回答への補足

返答が遅くなってすみません。

>hiddenタグに複数行を突っ込むのが暴挙のような気がします。
そうだったんですか…。知識不足でした。
kakunin.php の出力ソースは次の通りです。

<td width="250"> ご質問等 </td>
<td width="450">あああああ
<br />
いいいいい
<br />
ううううう
<br />
えええええ
<br />
</td>
<input type=hidden name=situmon2 value=あああああ
いいいいい
ううううう
えええええ
>
改行されるので、1行目のデータしか遅れないのでしょうか?
セッションについて、調べて、試してみたいと思います。

補足日時:2004/10/03 01:41
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!