人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

CGIについてです。
次のようなものを作りたいと思います。

テキストボックス1つと送信ボタンがある画面→
(送信ボタンを押す)今入力したテキストボックスの内容と、文字列「abc」が一致しているか調べ、
一致していれば→「ページA」へ
一致していなければ→「ページB」へ
自動的に移動するようにする

このようにするには、CGIをどのように作ればよいでしょうか?
目的は、パスワード認証ですが、「文字列が一致するか調べてどちらかのページに自動的に移動する」のみで良いです。


●質問者: Hiroto
●カテゴリ:コンピュータ ウェブ制作
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● TransFreeBSD

言語とか環境が決まってないと一般的なことしかかけませんので、そういうレベルで書くと。
「文字列が一致するか調べて」→if文とか条件分岐で
「どちらかのページに自動的に移動する」→リダイレクトで
リダイレクトの仕方は下記とか。具体的方法は環境によります。
http://www.futomi.com/lecture/ohter/redirect.html


TransFreeBSDさんのコメント
あ、書き忘れましたが、リダイレクトは移動させているだけで、アクセス制限なければ直接アクセスすればアクセス出来ますので、パスワード認証にはなりません。 あくまでユーザを導くだけです。

Hirotoさんのコメント
試してみます。

2 ● うぃんど
ベストアンサー

perlということなので・・・

htmlフォーム

<html>
<form action="cgiのファイル名" method="post">
 パスワード<input type="text" name="pw" />
</form>
</html>

perl スクリプト

# CGIライブラリの準備
use CGI;

# 初期化
$query = new CGI;

# 受け取ったパラメータに応じてリダイレクト
if ( $query->param('pw') eq 'abc' ) {
 print $query->redirect('ページAのURL');
} else {
 print $query->redirect('ページBのURL');
}

Hirotoさんのコメント
ありがとうございます! やってみます!

Hirotoさんのコメント
出来ました! ありがとうございました!

3 ● uwao

一般的なPerlのCGIの場合、下記のようなプログラムで対応出来ると思います。

HTMLページ
<FORM action="hoge.cgi" method="post">
<INPUT type="text" name="AIUEO">
<INPUT type="submit" value="送信">
</FORM>

hoge.cgiはこんな感じ

#!/usr/bin/perl
read(STDIN, $buff, $ENV{'CONTENT_LENGTH'});
@pairs = split(/&/,$buff);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$in{$name} = $value;
}
#リダイレクト
if($in{'AIUEO'} eq 'ABCD'){
#ABCDと一致
print "Location: http://一致した時の転送先URL\n\n";
}else{
#ABCDと一致しない
print "Location: http://一致しない時の転送先URL\n\n";
}
exit;


Hirotoさんのコメント
ありがとうございます! やってみます!
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ