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

CGI初心者です。
自分で掲示板を作ってみようとして書いてみたんですが、送信した時にhiddenで数値を持たせようとするんですが、受け取れません。なにか宣言や、処理が必要なのでしょうか。
ちなみに、
<input type = hidden name = mode value = "write">
・・・

if(FORM{'mode'} ep 'write'){
・・・
という感じにしています。

A 回答 (4件)

hiddenではない変数が$FORM{'**'}という形で受け取れているのであれば、


hiddenでも同様に受け取れると思います。

確認して欲しいのが、
submitボタンを設置している<form>と</form>の間に
<input type = hidden name = mode value = "write">
を書いていますでしょうか?

ちなみに$FORM{'mode'}をプリントしてみたら値は何も入ってなかったですか?

if(FORM{'mode'} ep 'write'){

"$"がぬけているのもありますが、"eq"であるはずのところが"ep"になっていますよ。
それが原因の可能性もありますので注意してくださいな。
    • good
    • 0
この回答へのお礼

丁寧な回答ありがとうございます。
"$"や"eq"のところは、スクリプトの方ではきちんとなってました。
("$"はスクリプトを書いていてもしょっちゅう抜けてエラーを出してます(笑))
"<input type = hidden name = mode value = "write"> "の方も、正しい場所に置いてありました。

お礼日時:2001/08/22 11:35

>サブミット後はプログラムの初めからまた読み直すんではないんでしょうか?



フォームの処理とサブミット後の処理はスクリプトを分けることも可能なので確認しました。
それではフォームからの値の取り出し部分を見たいのですが、ReadParse後の処理を補足欄に記載して頂けますか?
    • good
    • 0
この回答へのお礼

度々すいません。
>それではフォームからの値の取り出し部分を見たいのですが、ReadParse後の処理を補足欄に記載して頂けますか?
と回答をもらい、記載しようとしてまとめていたところ、"ReadParse後の処理"と言うところで(私はReadParseがどういう処理をすくかが良く分からなかったので自分でデコードを書いていたんですが、デコードにエラーチェックを連動してつけていたため、最初のフォームの表示で何もデータが無いとエラーが出てしまうので、送信した後からデコードをするようにしていました。)ハッとなって、デコードを先に持ってきたらきちんと動いてくれました。
本当に初歩的なミスですいません。大変親身になって答えていただいて助かりました。ありがとうございました。

お礼日時:2001/08/22 11:29

>$FORM{'mode'}という呼び出しが悪いんでしょうか?



$FORM{'mode'}は合っています。(但し質問文の方は「$」が抜けてますね)
スクリプト全体が見えないので何とも言えないのですが、hiddenで指定した項目はフォームのサブミット後に参照可能となりますので、上記の参照はサブミット後に呼び出される処理の中で行われなければなりません。
まずはこの辺りからチェックしてみてください。

この回答への補足

丁寧な回答ありがとうございます。
サブミット後に呼び出される処理の後と書いてありますが、サブミット後はプログラムの初めからまた読み直すんではないんでしょうか?
私はそのつもりで書いているのですが・・・。

補足日時:2001/08/21 19:17
    • good
    • 0

<input type="hidden" name="mode" value="write">



という風に書き換えてみてください。
(空白にも注意!)

この回答への補足

回答ありがとうございます。やってみましたが、相変わらず動きません。
$FORM{'mode'}という呼び出しが悪いんでしょうか?
hiddenを使うと何処に数値が返ってくるのか良く分からないんで、出来たら教えて欲しいんですが。

補足日時:2001/08/21 17:44
    • good
    • 0

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