CGIの起動をフォームのサブミット以外からは起動させない方法はありますか?
[上に]
[前に]
[次に]
K3
[E-Mail]
1999/05/14(金) 14:22:12
CGIをフォームのサブミットボタンを選択した場合のみ起動させ、
直接キー入力した場合は起動させないようにする方法はありますか?
なお、CGIはPerlで作成してあります。
しなのむし
1999/05/14(金) 23:49:44
起動はしてしまいますが、別画面を表示させることは出来ます。
以下、フォームのデータ取得方法がPOSTの場合。
if ($ENV{'REQUEST_METHOD'} eq "POST")
{print "post";}
else
{print "else";}
K3
[E-Mail]
1999/05/17(月) 16:06:33
GETの場合はどうすればよいでしょうか?
POSTになおさないとだめですか?
旅人C
1999/05/18(火) 00:13:04
同じく
$ENV{'REQUEST_METHOD'} eq "GET"
で処理すればOKでしょう。
K3
[E-Mail]
1999/05/18(火) 00:26:34
直接キー入力した場合もGETになってしまうので、
その場合とFORMのGETの違いは、どうやって見分けたら
良いのでしょうか?
Aurai
1999/05/18(火) 00:39:24
HTTP_REFERERを参照してみてはどうでしょう
K3
1999/05/19(水) 20:21:05
使用しているサーバは、HTTP_REFERER をサポートしていないようです。
ウンジャマラミー
1999/05/24(月) 16:36:58
function aaa() {
return false ;
}
function bbb() {
:
document.form.submit() ; ;
}
:
<FORM NAME="dummy" onSubmit="return aaa()">
<INPUT TYPE="BUTTON" onClick="bbb()">
:
</FORM>
<FORM NAME="formname" METHOD="get" ACTION="XXX.cgi">
:
</FORM>
この様にフォームを2つに分けたらどうでしょう?
K3
1999/05/27(木) 15:43:24
[[解決]]
解決しました。
というか、よく見たら似たような質問が他にもあり、
URLを直接、キー入力した場合は、HTTP_REFERERに値は
セットされないとあり、確認したら、確かにその通りでした。
今回、収集できた情報で、なんとか、対応できそうです。
ご回答いただいた皆様、ありがとうございました。
[上に]
[前に]
[次に]