OCN光で最大124,800円おトク!

初心者です。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プログラムを書き換えるのですが、
表示された乱数を入力しても「エラーです」と表示され投稿できません。

どこが間違ってますでしょうか?よろしくお願いします。

このQ&Aに関連する最新のQ&A

乱数 とは」に関するQ&A: 乱数とは・・・?

A 回答 (1件)

もしかしての話ですが、



$random_x = int( rand(999) ) + 1;
<b> ${random_x} と半角で入力</b>
if ($FORM{'guard'} ne $random_x){&er_(" エラーです。 ");}

――みたいに記述してて、

CGI起動(rand)→ブラウザ受信→ユーザ入力→ブラウザ送信→CGI起動(rand)&POSTデータ処理

――と処理されてるとか。もしそうなら、送信データを処理するタイミングでは値が変わってるだろう(偶然同じになる可能性もある。)から、ダメじゃないかと。
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/05/04 21:54

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


人気Q&Aランキング