• 締切済み

確認画面からデータを受け取る方法

hiddenには文字制限があるのでしょうか? 質問者:ninakko あるフォームに備考欄をつけました。 その内容を確認画面に表示。 その後確認画面がOKをおされた場合備考の内容を <form action="./index.php" method="post"> <input type="hidden" name="biko" value=<? echo $biko; ?>> でメール送信するモジュールへとばしています。 このとき、届いたメールに備考の内容が26文字しかありませんでした。 これはhiddenの文字の上限なのでしょうか? 解決方法もわかる方がいらっしゃったら教えてください。

みんなの回答

  • kusukusu
  • ベストアンサー率38% (141/363)
回答No.4

う~ん。。 悪いところはありませんし、私の環境で試してみると、上手く動きました。 また、No2の方の言われる特殊文字を混ぜてもうまくいきます。 さて、問題は何でしょう(^^; もうちょっと詳しいコードを書いたら(または、どこかにUPして、他の人が見られるようにしたら)いい回答が付くかも知れません。 現在の情報だけでは「何も問題がない」と言うのが答えですね。

  • zzzzzz
  • ベストアンサー率61% (70/113)
回答No.3

hiddenに文字数制限はないはずです。思いついた原因を挙げておきます。 1.value属性の値が引用符で囲まれていない 通常、value="<? ... ?>"のように記述すると思われます。 引用符を省略できる場合もありますが、書いておいた方が無難です。 これについては参考URLを参照してください。 2.文字参照絡み $bikoに">"という文字が含まれている場合、inputタグの終端と解釈されてしまいますので、 $bikoの内容をエスケープする必要があります。 例えば、>を&gt;に、"を&quot;にします。

参考URL:
http://www.w3.org/TR/html4/intro/sgmltut.html#h-3.2.2
  • kirin_f
  • ベストアンサー率51% (44/85)
回答No.2

hiddenに文字数制限があるのかどうかはわからないですが、 26字ではないです。 もっと長い文字列を渡しても大丈夫だったことがあります。 その渡した文字列の27文字目は、何ですか? そこでひっかかってしまっているんじゃないでしょうか。 "'<>などの特殊文字なら、&gt;などに変換したほうがいいですよ。 ひっかかってしまうので。

  • kusukusu
  • ベストアンサー率38% (141/363)
回答No.1

こんばんは <?php $mode=$_GET[mode]; if($mode=="") {   print<<<EOF <form action=$_SERVER[PHP_SELF]?mode=test method=post> <input type=hidden name=biko value="あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろ"> <input type=submit value=go> EOF; }else if($mode=="test") {   $biko=$_POST[biko];   print $biko; } ?> これを実行すると、正常に$bikoを表示しました。 hiddenの限界ではなく、メールモジュール側に問題があるのだと思います

ninakko
質問者

補足

ありがとうございます。 よかったら何処を改善すればよいのか教えてください。 メールモジュールは以下のとおりです。 $mail_detail= "備考 :" . $biko; mail("$sendto_email",$mail_title,$mail_detail,"From: ***@****.com\nContent-Type: text/plain; charset=ISO-2022-JP");