[PHP-users 15507]POSTによる改行を含む文字列の受け渡し

tanizoe_jun @ mx71.tiki.ne.jp tanizoe_jun @ mx71.tiki.ne.jp
2003年 5月 27日 (火) 23:08:52 JST


こんにちは。にわか管理人@兵庫です。

いくつかの書籍を参考に次のような機能を実装したいのですが、どうにもうまく
いきません。

■フォーム
入力.php:ユーザ情報(氏名、コメントなど)を入力してもらう。
 ↓
確認.php:入力.phpで入力された内容を確認のため表示させる。誤りがあれば入
     力.phpに戻る、なければ登録.PHPに進む。
 ↓
登録.php:確認.PHPから送られてきたデータをDBに書き込む

■受け渡しの方法
入力.php:<input type="text" name="note">
 ↓
確認.php:
 表  示  部:echo htmlspecialchars($_POST["note"]);
 フォーム部:<input type="hidden" name="note" value="<? echo
              nl2br(htmlspecialchars($_POST["note"])) ?>"
 ↓
登録.php:

ここで、登録.phpにチェックポイントとしてecho文を埋め込んで
echo htmlspecialchars($_POST["note"])
とか
echo $_POST["note"]

とかしてみるのですが、どうも確認.PHPの表示が思うようにいきません。

つまり、入力.PHPで"note"に「改行を\n含む文字列\nを送信したい」(\nは改行
箇所)と入力して送信すると、確認.PHPでは「改行を\n含む文字列\nを送信した
い」と表示します。
しかし、登録.PHPでは「改行を」までしか表示してくれないのです。

過去ログ、書籍等、目に付くものは全て参考にしてみましたが、解決の糸口が見
いだせません。

PHPのバージョンは4.1.2、サーバ環境はwindows2000、文字コードはS-JIS、便宜
上漢字を使いましたが、実際のファイル名は半角英文字です。

セッション管理機能を使えば簡単らしいということはわかったのですが、このコ
ードを実際に動かすサーバがもっと古いバージョンのPHPらしく、より枯れた方
法で実現したいと思っています。


PHP-users メーリングリストの案内