• ベストアンサー

アクセス制限のための、パスワードの設定について

アクセス制限等を行いたい場合の通常のパスワードの設定は、HTMLファイルに設定するものだと思うのですが、CGIファイルの中で、リンクが設定されている文字列の部分に、パスワード認証を設定する事は可能でしょうか?(リンク先もCGIです)私が試したのは、パスワードを設定したい文字列の付近にパスワード入力フォームを作り、リンク先のプログラムに、パスワードが未入力の場合と間違っている場合にエラーメッセージを表示させるプログラムを入れてみましたが、パスワードを入力しても未入力のエラーメッセージが出て入力した事が認識されません。どんな方法でも構いません。ご指導いただけたら幸いです。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

全体的に質問者様の意図が良くわかりません。 「認証」とはどのような認証ですか? ベーシック認証? プログラムで実装している認証? >アクセス制限等を行いたい場合の通常のパスワードの設定は、HTMLファイルに設定するものだと思うのですが HTMLにアクセス制限のパスワードを設定するというのは聞いたことがありません。

choku15
質問者

補足

ご回答ありがとうございます。的外れな分からない質問で申し訳ありません。参考書等を見ながらHPを作成しています。この補足質問も分かりにくかったら大変申し訳ないんですが、参考書を見るとパスワード制限をかけたいHTMLファイルの前のHTMLファイルに、FORMタグのaction属性でパスワード制限のCGIファイルを呼び出し、入力値が正しい時と間違っている時、それぞれの場合のHTMLファイルを呼び出し表示させるというふうに書いてあります。またベーシック認証の場合は、ディレクトリ(フォルダ)以下のデータにパスワード制限をかけたい場合というふうに書かれています。間違った理解をしているかもしれませんが。私の場合、フリー配布のCGIを改造しているのですが、構成としてはトップページ、新規登録ページ、詳細表示ページ、返信メールフォームページ、登録データの編集・削除ページ、検索ページ、管理画面になっています。そしてこれらのページは、2つのCGIファイルの中にすべてプログラムされています。私がやりたい事は、トップページに新規登録ページに行くための「新規登録」という文字列があるのですが、その文字列をクリックした時にパスワードを要求するようにしたいと思っています。そこでわたしが試したのが、「新規登録」の文字列の付近にパスワード入力欄を作成し、そこに入力してから「新規登録」をクリックして新規登録ページに行くというスタイルを考え、プログラムを改造してみました。そして全体のソースをよく見て、新規登録のソースが書かれているところの先頭にパスワードが未入力の時と、間違っている時のソースを 追加しました。が、どうもパスワードが入力されている事を認識していないようです。パスワードを入力しても「パスワードの入力は必須です」とメッセージが出てしまいます。大変長くなり申し訳ありません。また分かりづらくて申し訳ありませんが、何かいい方法がありましたらご指導よろしくお願いします。

その他の回答 (2)

回答No.3

ごめんなさい、いただいた情報だけで適切な回答をできる自信がありません。ド素人と仰っていますが、プログラムを改造しようとされているわけですから基本的は事は理解されているものと思います。 そういう場合は、パートに分けて不具合箇所を切り分けていくしかないと思います。 ・Formを表示するところできちんと表示されているか(表示されたページのソースで確認) ・入力してSubmitしたものが次のCGIに渡されているか ・渡された変数を取得できているか(print文で表示だけさせてみるなど) ・取得した変数を元に判断する部分は正しく動作しているか(if分岐に変数を使わずにパスワード文字列を直接指定させてみるなどd) ・ソース中に文字の打ち間違いは無いか(_と-の間違いとか、スペースの有無など) 地道にやるしかありませんね・・・

choku15
質問者

お礼

ご指導どおりの内容を再確認の上、地道にやってみます。親切なご回答でここまでお付き合いいただき、本当にありがとうございました。

回答No.2

すいません、まだ良くわかりません。 >参考書を見るとパスワード制限をかけたいHTMLファイルの >前のHTMLファイルに、FORMタグのaction属性でパスワード制限のCGIファイルを >呼び出し、入力値が正しい時と間違っている時、それぞれの場合のHTMLファイル >を呼び出し表示させるというふうに書いてあります ここで記述されているCGIと、 >私の場合、フリー配布のCGIを改造しているのですが、 このCGIは同一のものをさしていますか? >トップページに新規登録ページに行くための「新規登録」という文字列があるの >ですが、その文字列をクリックした時にパスワードを要求するようにしたいと思 >っています。 「新規登録」へはAタグでリンクですか? それともFORMタグですか? >「新規登録」の文字列の付近にパスワード入力欄を作成し これは<input type="text">のような感じで作ったのでしょうか? だとしたら上の質問への回答はFORMタグのはずですが。 原因として考えられるのは、 1.パスワードを受ける側のプログラムがおかしい(パスワードを受け取っているのに認識できていない、判断処理が間違っている、など) 2.パスワードを渡せていない(いろんな理由があります。一番怪しいかも) 3.そもそもやろうとしていることが間違っている。 失礼ですが、CGIに使用している言語(perlですか?)のご経験はどの程度でしょうか。 またCGIへの変数の渡し方(GETやPOSTの違いなど)、渡された変数を取り出すプログラムの書き方などは理解されていますか?

choku15
質問者

補足

わけの分からない質問に対しての親切なご回答、本当にありがとうございます。経験は、質問の内容からもお分かりのように、これから初めてHPを開設しようと考えているド素人です。CGIの参考書を見てもうまくいかないので、フリー配布のCGIを改造する事にしました。参考書の事について書いてあるCGIと、フリー配布のCGIは別のものです。新規登録へはFORMタグです。CGIのソースの途中に無理やりEOMを使い、<INPUT type="password">という感じでパスワード入力フォームを作りました。変数の渡し方は、なんでもかんでもPOSTを使ってしまっています。action属性には、変数が保存されているメインのCGIファイルを。それから前回のご質問の時に、改造中のCGIは2つのCGIファイルによって全てのページが表示されるように構成されているというふうにご説明したと思いますが、1つは上記にもご説明した変数等が保存されているメインのCGIファイル。もう1つは、新規登録ページや検索ページ、管理画面等を表示させるtoolという意図的なファイル名のついたCGIファイルです。FORMタグはメインのCGI側、エラーメッセージを表示させるソースはtool.cgi側に挿入しました。パスが関係あるのかな?という素人考えが浮かんだのでご説明させていただきました。ご回答の中の原因3にあてはまっているかもしれないところ、とても親切なご回答を頂いている事に大変感謝しています。

関連するQ&A