電子書籍の厳選無料作品が豊富!

パスワードを入力して進むCGIを設置したいと思います。
具体的に・・・
1つのページ(例えばトップページ)に入力欄を設置し、パスワードが正しいと次にいけるようにしたい。自分が知っている認証CGIは、パスワード入力専用のページにアクセスしてそこから正解ページに飛ぶものだったので、トップページ内に(さりげなく)設置できるものを求めています。
また、そのような使い方をたくさんのページに設置したいのですが可能でしょうか?

なるべくシンプルで使いやすいものでお願いします!
本当に困っています。よろしくお願いします。

A 回答 (2件)

別ページは


飛ばす先はHTMLの別ページですか
それとも、CGI内での別ページですか
CGI内でしたら
&header;
print<<EOM;
<p>別ぺーじ</p>
  
  ※この間※

EOM
exit;

}
この、間にHTMLタグを入れ込んでくださいPASSWARDが正解ならば表示します。
もしくは、このページを基準にさらに先のページに進むように設置したいのですか。
    • good
    • 0

<form action="admin.cgi" method="post">


<input type=password name=pass size=30 value="">
<input type=submit value="管理用"></form>
設置す場所に上記のタグを追加してください。(HTMLタグ内に)

※下がCGI部です
#!/usr/local/bin/perl

#外部より読み込み
require './cgi-lib.pl';
require './jcode.pl';

#パスワード部
$pass = '123'; 

&decode;
if ($in{'pass'} ne $pass) { &error("認証エラー"); }

&admin;
sub admin{


&header;
print<<EOM;
<p>別ぺーじ</p>

</html>

EOM
exit;

}

sub decode {
local($key,$val);
undef(%in);

&ReadParse;
while ( ($key,$val) = each(%in) ) {

next if ($key =~ /^upfile/);

# シフトJISコード変換
&jcode'convert(*val, 'sjis');

# エスケープ
$val =~ s/<>/&LT;&GT;/g;
$val =~ s/&/&amp;/g;
$val =~ s/"/&quot;/g;
$val =~ s/</&lt;/g;
$val =~ s/>/&gt;/g;
$val =~ s/\r\n/<br>/g;
$val =~ s/\r/<br>/g;
$val =~ s/\n/<br>/g;

$in{$key} = $val;
}

}

sub header {
print "Content-type: text/html\n\n";
print <<EOM;
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<title>TEST</title>
</head>
<body>
EOM

}


sub error {


&header;
print <<EOM;
<blockquote>
<h3>ERROR !</h3>
$_[0]
</blockquote>
</body>
</html>
EOM
exit;
}
一応、動きます。
簡単ではありますが、参考にして見てください。
    • good
    • 0
この回答へのお礼

ありがとうございます!
飛ばしたいページはどこに書けばいいのですか?

お礼日時:2006/02/27 17:22

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