CGI-BBS > 基本認証 > 手動パスワード制限 > CGIパスワード制限のID外してパスワードだけを使いたい。


カレッヂ
カレッヂ


質問者 勇也  投稿日 11/25(火) 20:03:03
どうしても手動パスワード制限のIDの設定を無くして、パスワードのみで利用したいのですがどうすれば良いのでしょうか?
どなたか教えて頂けないでしょうか?自分でも自力で頑張りましたがCGIのどこをどうやって改造(削除)すれば良いかわかりません。


# IDとそれに対応したパスワードを設定する(書き替えてください)←この部分をパスワードだけの利用で個人事に設定するのではなく設定した一つのパスワードだけで利用したいのですが。
# かならず0からの一連番号を付けること(いくつでも増やせます)
# このenter.cgiを他のユーザから見られてしまうようなサーバでは、
# このenter.cgiのパーミッションを705にするなどして対応してください。
# メッシュでは755でOKです。
#---------------------------------------------------------------------
  $ID[0]='test';        $PW[0] = 'test';)                ←この部分をパスワードだけの利用で個人事に設定するのではなく設定した一つのパスワードだけで利用したいのですが。


          
#---------------------------------------------------------------------

if ($ENV{'REQUEST_METHOD'} eq "POST") { read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); }
else { $buffer = $ENV{'QUERY_STRING'}; }

@pairs = split(/&/,$buffer);
foreach $pair (@pairs)
{
    ($name, $value) = split(/=/, $pair);
    $value =~ tr/+/ /;
    $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
    $FORM{$name} = $value;
}

$members = @ID;
foreach (0 .. $members -1) {

  if ($FORM{'password'} eq $PW[$_]) { $target = $FORM{'target'}; &html; }
}

$target = '401.html'; &html;


sub html {

   if (!open(HTML,"$private_html\/$target")) { &html404; }
   @lines = <HTML>;
   close(HTML);

   print 'Content-type: text/html' ."\n\n";
   foreach (@lines) { print; }
   exit;
}

sub html404 {

   # 上記 sub html で404.htmlを扱うことができますが、万が一404.htmlが開けない場合、
   # 無限ループを起こしてしまうので、このルーチンを別に付けました。このルーチンには
   # エラー処理をしていませんので、404.htmlが開けない場合はサーバエラーになります。

   open(HTML,"$private_html\/404.html");
   @lines = <HTML>;
   close(HTML);

   print 'Content-type: text/html' ."\n\n";
   foreach (@lines) { print; }
   exit;
}

プロバイダ参照:
サーバのOS:UNIXサーバ
パソコンのOS:Win95系
エディタ:メモ帳
FTPソフト:FFFTP
サーバ移転:していない
改造:していない 改造前正常動作
CGI習熟度:beginner

回答者 しあわせのツボ  [削除]  投稿日 11/25(火) 23:00:23
いわゆる半角カナはトラブルのもとなので、ネット上では使わないようにしましょう。

面倒なことは嫌でしょうから、一番簡単な方法で。
input type="hidden" で適当なIDを入れておけば、
見かけ上はパスワードだけになり、CGIは改造不要です。

返信(回答)する

 


Web裏技