• 締切済み

乱数にするとエラーになります

初心者です。CGI掲示板の投稿欄に投稿キーを設置しました。 --------------------------------------------------------- print<<"_FORM_"; <input type=text name=guard size=8$ff> <b> 555 と半角で入力</b> _FORM_ ログ書きこみ処理 if ($FORM{'guard'} ne "555"){&er_(" エラーです。 ");} --------------------------------------------------------- (以上は全て bbs.cgi ファイルに記入) この状態で正常に作動します。(555 入力で○ それ以外は×) これを乱数でやろうと思い自分で付け加えました。 $random_x = int( rand(999) ) + 1; (set.cgi というファイルに記入) 555 の部分を $random_x に変更してbbs.cgiプログラムを書き換えるのですが、 表示された乱数を入力しても「エラーです」と表示され投稿できません。 どこが間違ってますでしょうか?よろしくお願いします。

みんなの回答

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

もしかしての話ですが、 $random_x = int( rand(999) ) + 1; <b> ${random_x} と半角で入力</b> if ($FORM{'guard'} ne $random_x){&er_(" エラーです。 ");} ――みたいに記述してて、 CGI起動(rand)→ブラウザ受信→ユーザ入力→ブラウザ送信→CGI起動(rand)&POSTデータ処理 ――と処理されてるとか。もしそうなら、送信データを処理するタイミングでは値が変わってるだろう(偶然同じになる可能性もある。)から、ダメじゃないかと。

syuricyan
質問者

お礼

なんとなく理解できます。それになんとなくそういう感じがしてきました。 というのも、rand(1) としてやると乱数が1しかないので、 それでやってみると「1」入力で投稿できます。(エラーにならない)ありがとうございました。

関連するQ&A