- ベストアンサー
CGIでアクセス制限をしたい
- CGIを使用してホームページのアクセス制限を設定する方法を調べています。参考書に記載されているKENT WEBさんのアクセス制限を試していますが、認証ページからの戻り先が分かりません。現在のアクセス制限はjavaで行っていますが、上手く動作していません。
- 現在、CGIを使用してホームページのアクセス制限を設定しようとしています。KENT WEBさんのアクセス制限を試していますが、認証ページからの戻り先が不明です。現在のアクセス制限はjavaで行っていますが、うまく機能していません。
- CGIを使用してホームページのアクセス制限を設定する方法を探しています。KENT WEBさんのアクセス制限を試していますが、認証ページからの戻り先が不明瞭です。現在のアクセス制限はjavaで行っていますが、うまく機能していません。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
回答番号:No.1の者です。 KENT WEBさんのアクセス制限「LOG IN」を@niftyでCGI設置できるか試してみたところ、きちんとできました。 以降は、「とりあえず設置する」ということを主眼において記述しています。 【# 認証ページからの戻り先について】 >>index.html⇒password.html⇒main.htmlと進んでいくので、 >>$home "../main.html";と記入しましたが 認証ページからの戻り先というのは、「パスワード入力画面よりも前の段階のページへ戻るため」に設定するものなので、 次のページへ進むために設定するのとは、ちょっと意味合いが異なります。 password.htmlがパスワード入力画面ということでしたら、password.htmlをlogin.cgiと置き換えて考えてください。 index.html(トップページ)→login.cgi(パスワード入力画面)→パスワード認証OK後に表示される隠しページ の流れの場合、パスワード入力画面に入る前の段階のページ、つまりトップページのアドレスを指定します。 $home = "http://homepage●.nifty.com/□□□/index.html"; (ホームページも@niftyのサーバーの場合) 行末の「"」や「;」が抜けていないか、また「;」の後ろに全角の空白がないかどうか注意してください。 【HTMLファイルから login.cgi へリンクを貼る】 絶対パスでリンクします。 <a href="http://hpcgi●.nifty.com/□□□/login/login.cgi">パスワード入力画面入り口</a> (loginフォルダに格納してフォルダごとアップロードした場合) <a href="http://hpcgi●.nifty.com/□□□/login.cgi">パスワード入力画面入り口</a> (loginフォルダに格納せずにcgi-binディレクトリ内に直接ファイルをアップロードした場合) パスワード入力画面入り口 という語句は「Enter」でも何でも良いです。 【他に変更することについて】 パスワードは自分の好みのものに。 $secretは隠しページのファイル名と同一にします。 (例) 隠しページのファイル名がsecret.htmlなら、ファイル名をsecret.cgiに変更してcgiファイルに変えます。 隠しページのファイル名がmain.htmlなら、ファイル名をmain.cgiに変更してcgiファイルに変えます。 ※htmlファイルからcgiファイルに変更しても、テキストエディタで開くことで内容を修正・変更可能です。 (要:HTMLタグについての知識) login.cgiもsecret.cgi(隠しページ)も、同一ディレクトリであれば相対パスのままです。 例) $script = "./login.cgi"; $secret = './secret.cgi'; (隠しページの名前がsecret.cgiの場合) $secret = './secret.cgi'; のsecret.cgi部分を他のファイル名(main.cgiなど)に変えた場合は、 行末の「'」や「;」が抜けていないか、また「;」の後ろに全角の空白がないかどうか注意してください。 【CGIエラーについて】 login.cgi内の「設定項目」を自分用に設定した時、必要な部分(「"」や「;」など)を抜かしませんでしたか? cgi-binディレクトリやloginフォルダのパーミッションは確認しましたか? (755が基本値です。) login.cgiのパーミッションは755です。 secret.cgiのパーミッションは604です。
その他の回答 (3)
- panto-maim
- ベストアンサー率89% (476/533)
パスワード記載は、後でパスワード変えてくださいね・・。 >>1)自由に編集出来ますか? >>2)別のhtml fileに入れ替え可能でしょうか? 【login.cgiの場合】 1)編集については、可能です。 login.cgiに記述してある部分に書き加えてHTMLとして生成してもらう必要があります。 HTMLタグについての知識のほか、CGIについての知識も必要です。 2)入れ替えとは、HTMLファイルとして表示したいということですか? それなら、他のCGIプログラムを使うのがよいと思います。 【会員ページ(隠しページ)の場合】 1)編集については、自由にできます。 テキストエディタで開くことで自由に内容を編集可能です。 (要:HTMLタグについての知識) 2)パスワード入れたらHTMLファイルに飛びたい、ということでしたら可能です。 HTMLファイルを指定すればOKです。 (該当するHTMLファイルは、通常どおりhomapegeディレクトリ内にアップロードしておきます。) $secret = 'http://homepage●.nifty.com/□□□/△△△.html'; ただし、このページの実際のアドレスがブラウザのアドレス欄に載ってしまいます。 これを載せたくない、ということでしたら、他のCGIを使ったほうが手っ取り早いですね。
お礼
panto-maimさん 長時間お付き合い頂き、 的確なご指示を戴き有り難う御座いました。 これから「基本認証」に挑戦しますので、 引き続きご指導の程宜しくお願い致します。
補足
htmlの知識30点 cgiの知識限りなく0点 本件 色々tryしてみます。
- panto-maim
- ベストアンサー率89% (476/533)
>>URLをクリックしてindex.html画面からパスワード画面まで出て、パスワード入力後に「認証する」ボタンを押すと「ホームページ開設者が閲覧・・・・」が出てきます。 パスワード入力後に「認証する」ボタンを押して進むページ(隠しページ)への設定部分は $secret = './secret.cgi'; (隠しページがsecret.cgiの場合) なのですが、ここはどのようになっていますか? いちおう、隠しページをcgiファイルではなくhtmlファイルで指定しても、 (その場合は絶対パスを記述しないといけません。) 動作はします。 ただし、cgiファイルで指定したのとは違って、隠しページのURLが判明してしまうことになります。 もし、htmlファイルを指定して、cgi-binディレクトリにそのhtmlファイルをアップロードしているのでしたら、 絶対パスが合っていても正常に動作しません。 (@niftyでは、cgi-binディレクトリにアップロードされたhtmlファイルは、 アクセスしても「実行エラー」または「ホームページ開設者が閲覧することを許可していないため~」となります。) >>パーミッションは755と確認しました。 どのファイルのパーミッションが755でしたか? パスワード画面が出たのなら、「login.cgiを755にする」のは合っていると思います。 パスワード入力後「認証する」ボタンを押すと表示されるsecret.cgi(隠しページ)のパーミッションは、 配布元の解説にもあるとおり、604です。
お礼
初めてのCGI 全くの手探り。 一筋の光明が見えてきました。 実は次は無謀ながら「ベーシック認証」に挑戦しようとしています。 その節は宜しくお願い致します。
補足
もう一つ教えて下さい。 当該urlです。 http://homepage3.nifty.com/carnews/ パスワード 半角小文字で tkijz です。 パスワードを承認すると会員のページに飛びますが、 これを 1)自由に編集出来ますか? 2)別のhtml fileに入れ替え可能でしょうか? 又 その方法をご教授下さい。 1回の投稿で2回の質問で恐縮ですが宜しくお願い致します。
- panto-maim
- ベストアンサー率89% (476/533)
@niftyでcgiを設置する場合、 homepageのファイルが入っているフォルダ(homapageディレクトリ)ではなく、 それとは別のフォルダ(cgi-binディレクトリ)内にcgi関連ファイルを転送する必要があります。 そのため、「cgiファイルでhtmlファイルへの戻り先を指定する」や「htmlファイルからcgiファイルへリンクする」など、 ディレクトリを越えて移動させる場合は、相対パスで指定することができません。 (cgi-binディレクトリ内のファイルを参照・表示しようとするので、 「ホームページ開設者が閲覧することを許可していないため~」というメッセージが表示されます。) 絶対パスで指定するようにと、@niftyのヘルプにもありますので、 (参考URLのページを参照) そちらをお試しになってください。
お礼
早速の回答有り難う御座います。 やはり 初めてのCGI苦戦です。 URLをクリックしてindex.html画面からパスワード画面まで出て、パスワード入力後に「認証する」ボタンを押すと「ホームページ開設者が閲覧・・・・」が出てきます。パーミッションは755と確認しました。 以降宜しくお願いします。
補足
はい cgi-binのfileにアップしています。 また絶対パスniftyのHP url/index.html 又は /next.html(送り先)でtryしましたが上手く行きませんでした。戻り先とは次に進むfile名.htmlで宜しいですか? niftyURL/index.htmlだと又接続時に戻ってしまう様な気がするので確認させて下さい。尚ご案内頂いた、@niftyのヘルプは見ています。
お礼
感謝感激です。 序でにもう一つ教えて下さい。 あれ~ 上記の補足 文字化け?ですね。 要は //hpchi●.nifty.com にして居なかったのです。 質問は 上に書きます。
補足
出来ました~ <a href="http://hpcgi●.nifty.com/□□□/login/login.cgi">パスワード入力画面入り口</a> が<a href=http://homepage●.nifty.com/□□□/login/login.cgi">になっていました。