自宅サーバのHPで下記の例のようにページAをクリックしてからでないとページBに行けずエラーが出るCGIのページを作りたいと思っていますがまったくわかりません(TT)
例Bをクリック→エラー:先にAをクリックしてください。
Aをクリック→Bをクリック→ページBを表示
のようにしたいです。
いちおういろいろ検索し「直接アクセスされては困るページ制限(参照制限) v1.00」というCGIを見つけて実行してみたのですがエラーが出て表示されません。
どなたかわかる方いましたら教えてください。
ちなみに携帯のHPで使うつもりです。
WWWサーバはApache2.0を使用してます。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
試しにActivePerl5.10.0を入れてスクリプトのみ動かしてみました。
結果、コピペ時の問題なのかわかりませんが、3行目の$ref_url設定箇所にUnicodeの制御文字らしきものがあって動きませんでした。
このスクリプトをコマンドプロンプトで実行すると以下のようなエラーが出ます。
Search pattern not terminated at C:\***\test.pl line 3.
これと同一原因なら、メモ帳などで一度エンコードをANSI(ASCII)またはShiftJISにして保存して開き直すと、3行目が以下のような感じで表示されるはずなので、「?」2カ所を削除してください。
$ref_url = '?http://www.yahoo.co.jp';?
同一原因ではなくても、コマンドプロンプトで実行することで前記のようなエラー表示がされますので、原因解析が楽に出来ると思います。
No.2
- 回答日時:
今は直接の原因が分からない状態ですよね?
その場合の私の見つけ方です。(もっといい方法あるかもですが)
下記の(1)(2)を追加します。
print "Content-type: text/html\n\n";
#(1)適当な文章を入れる
print "test";
#(2)処理を終了する
exit;
上記でエラーが発生しなければ次は下記の後に
(1)、(2)を追加します。
$ref = $ENV{'HTTP_REFERER'};
これでエラーが発生しなければ、更にひとつ元のコードを
入れて確認します。
これでコードのどこでエラーになっているのか問題の切り分けが
できます。
力作業になりますが、よろしければお試し下さい。
No.1
- 回答日時:
そのスクリプトの配布元URLとエラーログを教えてください。
Refererを見て、適切なモノが設定されていればページを遷移するものだと思いますが、何か設定が間違っているのだと思います。
よくあるところとしては下記あたり。
1.perlなどのパス
2.パーミッション設定
3.書き換えなくてはいけない箇所の不足/ミス
この回答への補足
ご回答ありがとうございます。
スクリプト配布もとのURLは
http://www.rescue.ne.jp/cgi/reflimit/
です。
これを自分なりに下記のように作りました。
#---------------------------------------
#!C:/Perl/bin/perl
$ref_url = 'http://www.yahoo.co.jp';
print "Content-type: text/html\n\n";
$ref = $ENV{'HTTP_REFERER'};
$ref =~ tr/+/ /;
$ref =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
if (!($ref =~ /$ref_url/i)) { &error; }
while (<DATA>) { print; }
exit;
sub error {
print <<'EOF';
<HTML><HEAD><TITLE>404 File Not Found</TITLE></HEAD>
<BODY><H1>Error</H1>
Error
</BODY></HTML>
EOF
exit;
}
print "Content-Type: text/html\n\n";
print "<html>\n";
print "<body>\n";
print "<h1>Hello!</h1>\n";
print "</body>\n";
print "</html>\n";
exit;
#--------------------------------------
これをtest.plで保存し携帯のほうで確認しましたがエラーが出てしまいました。
エラーは「このページはエラーにより表示できません(500)」と出ます。
perlのパスはCドライブ/Perl/bin/perlなのであっていると思います(たぶんです)。
パーミッションの設定は書き忘れていましたが、Windowsを使っているのでパーミッション設定はいらないと勝手に思っているのですがあってるでしょうか?
話は変わりますが簡単なカウンタのCGIでさえ表示されないので、もしかしたらCGIの使い方がわからないだけかも知れません(汗)
いちおう下記のCGIは動いたのでApacheの設定はあっているとは思います。
#--------------------------------------
#!C:/Perl/bin/perl
print "Content-Type: text/html\n\n";
print "<html>\n";
print "<body>\n";
print "<h1>Hello!</h1>\n";
print "</body>\n";
print "</html>\n";
exit;
#--------------------------------------
長くなりましたがよろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(パソコン・スマホ・電化製品) とある情報が知りたく、検索して表示されたリンクをクリックしてページを見て、そこに知りたい情報の説明の 3 2022/11/26 18:55
- オープンソース AWSドメイン名でApacheテスト・ページを表示させる方法を教えて下さい。 1 2023/04/26 15:59
- その他(インターネット接続・インフラ) PCに関してのトラブル 2 2023/04/02 18:52
- その他(IT・Webサービス) ホームページ、hTML グローバルメニューをクリックすると内部の別ページにいくにいく仕組みについて 2 2022/07/08 21:36
- Chrome(クローム) グーグルクロームでプラウザーを2個開く件について 1 2023/08/03 16:04
- その他(プログラミング・Web制作) 出務表のwebページを作りたいです 3 2022/04/05 15:35
- Windows 10 マイクロソフトアカウント 2 2022/08/10 13:09
- C言語・C++・C# プログラミングの問題です。至急教えてください。 /***から***/の部分をプログラミングにしてほし 1 2022/10/13 11:48
- 教えて!goo ブロック逃げ 5 2022/07/11 05:05
- その他(プログラミング・Web制作) seleniumbasic chrome操作について 1 2023/03/29 15:40
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ApacheでのCGIについての質問
-
EXCELファイルに誰がアクセスし...
-
《エクセルVBA》「他の人が該当...
-
.cgi拡張子のままCGIファイルを...
-
ASP(IIS?)のエラーについて
-
Yomi-Search CGIですが・・・
-
実行可能な外部コマンドは?
-
FTPにて553エラー
-
CGIでソースがそのままでてしま...
-
perlからJavascriptを起動
-
FC2レンタルサーバーライトでの...
-
クライアントサイドとサーバー...
-
VBScriptで、ファイルから任意...
-
「EJBとServletの違い」「J2SE...
-
FC2にwebPatio設置の方法
-
初心者のCGI設置方法
-
BBS掲示板でのhtmlとcgiの関係...
-
自作CGIで、wwwサーバーエラ...
-
hp 送信する情報を・・・
-
HTMLソースファイルからタグを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CGIでのPC内でのテストで画面が...
-
ApacheでのCGIについての質問
-
cgiにアクセスしても画面が真っ白
-
文法はあってるのにサーバーエ...
-
HTTP 501未実装 エラーについて
-
perl:Insecure dependency in s...
-
CGIがうまくアップできない(50...
-
CGIの設置ができない
-
CGIをHTML(scriptタグ)上でうま...
-
EXCELファイルに誰がアクセスし...
-
《エクセルVBA》「他の人が該当...
-
URLに~/cgi-bin/~を隠す方法
-
VBAでサーバーにアクセスするに...
-
ラジオボタンのグループ化
-
ASPから既存のexcelブックを開...
-
VBScriptで、ファイルから任意...
-
CGIでソースがそのままでてしま...
-
FTPにて553エラー
-
VBAを使用して、外部サーバのフ...
-
perl 矢印演算子 -> の使い方
おすすめ情報