位置情報で子どもの居場所をお知らせ

いつもお世話になります。
今日、カウンタのCGIと、そのカウンタをセッティングするCGIを二つのサーバに設置したのですが、片方のサーバに設置したセッティングCGIがおかしいんです。

本当ならアクセスするとパスワードを求める画面になるはずですが、「次の場所からダウンロードするように選択しました」という、Windowsではおなじみのダイアログが現れて、そのパスワードを入れるページ自体をダウンロードすることになってしまいます。
ここで「ダウンロード」にせずに「上記の場所から開く」にすればパスワード入力画面は開くのですが、これはローカルディスク上で開いていることになりますから、もちろんCGIとしては作動してくれません。

しかし、こんな現象が発生してしまうのはWin98やWin MEでアクセスした場合で、Macでアクセスすると正常にパスワードを求めてきて、もちろんそのまま認証してカウンタのメンテができます。

また、このWinで正常に作動しないのは2つのサーバに設置した内の片方だけで、全く同じものを全く同じ名前とセッティングでアップしてある、もう一つのサーバ上のCGIはMacでアクセスしようがWinでアクセスしようが正常に作動するのです。

しかも、異常がある方のCGIと同じディレクトリにアップしてある、他のCGIは全て正常に作動するのです。

パーミッションの設定も、CGIは755、ログは666と、間違っていないことを確認してあります。
perlへのパスも、Macでなら動くことでもおわかりのように、間違っていません。
尚、このCGIはDOS-Vの改行コードで記述してあります。

どなたかこの異常の原因がおわかりの方はいらっしゃいませんでしょうか?
どうか解決のためのアドバイスをお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (4件)

 CGIスクリプトそのものではなく,その出力がダウンロードされてくるんですよね。

だとすると,一番怪しいのはMIMEタイプ設定なのですが…(MIMEタイプについては,参考URLをご覧ください)。

 ダウンロードされるファイルがなんというMIMEタイプとして認識されているか,判らないでしょうか?

 Mozilla(おそらく Netscape 6.1 も)などであれば,ダウンロードダイアログに「~ xxxx/yyyy タイプのファイルをダウンロード後~」というように,ダウンロードしようとしているファイルのMIMEタイプが出力されるのですが,IEではどうやればいいのか私は知らないので…。

 そのMIMEタイプがわかれば,なぜダウンロードされてしまうのかという原因究明の手がかりになると思うので,できれば調べてみてください。

 または,そのCGIスクリプトのなかで,"Content-type: xxxx/yyyy" という文字列を出力しているところがあれば,それがそのMIMEタイプなのですが…。そこによけいな文字(見えない文字~例えば全角空白など~という可能性もあります)が入ってないか,あるいは設定されていないということがないか,調べてみてください。

 Macでちゃんと動くのは,ブラウザー側でそのMIMEタイプをどう扱うかがきちんと設定されている,あるいは(こちらの方が可能性は高いのですが)MIMEタイプ判別をルーズに行っている(例えばMIMEタイプの判らないテキストファイルは text/html として扱う),などの理由からではないかと思います。

参考URL:http://home.tripod.co.jp/help/building/file_mime …

この回答への補足

コメントと参考URLをどうもありがとうございました。
そうなんですか。CGIの中にそういう記述部があるとは知りませんでした。
なるほど!ネスケだとタイプを教えてくれますね。
ダウンロードしようとしているファイルタイプは、application/x-httpd-cgiであると言って来ています。
あれ?CGIの中には「text/html」と記述されているんですが…?

詳しくは、

   .
   .
   .
#
# HTML文書定型部表示ルーチン
#
sub header {
print <<"HTML";
Conyent-type: text/html

<HTML>
<HEAD>
<TITLE>Control room</TITLE>
<META http-equiv="Content-type" content="text/html; charset=Shift_JIS">
</HEAD>
<BODY bgcolor="#f1f1f1" text="#000000" link="#0000E3" vlink="#008080">
   .
   .
   .
と続きます。
いかがでしょうか?

ところで、NetscapeならMIMEタイプが判ると教えて頂いたおかげで、もう一つ発見がありました。
正常と思われていた方のCGIも、Netscapeでアクセスすると出力結果のHTMLソース自体がブラウザに表示されてしまい、やはりパスワード認証は出来ないことが判りました。
これは、やはりCGIの構造の問題でしょうか?

作者の方がアップしていらっしゃるサンプルのページは、MacでもWinでも、IEでもNCでも正常に動いてしまうんで、私の詳細設定法が悪いのかと思い、作者の方がアップされた圧縮ファイルを解凍したそのままのものを私のサーバにアップしてみた(偶然、perlのパスは書き替える必要がなかったので)のですが、それでもやはりダウンロードが始まってしまったりソースが表示されてしまう現象は変わりませんでした。
私の方に問題があるのかと思ってこちらで質問させていただいたのですが、もしかしてこれはCGIの作者の方に質問すべき内容なのでしょうか?

う~ん、面倒な問題にお付き合いいただいて申し訳ありません。この結果に対する更なるご意見を伺えればありがたいのですが…

補足日時:2001/08/25 00:22
    • good
    • 0
この回答へのお礼

どうもお騒がせいたしました。
atonさんが"Content-type: xxxx/yyyy"という部分を指摘して下さったおかげで、CGIを作った方のタイプミスだということが判明し、解決に至りました。
これから作者の方にも連絡しようと思います。
どうもお世話になりました!

お礼日時:2001/08/25 12:12

見た瞬間、ちょっと笑ってしまいました。


もし下の補足が、コピペだとしたら、コレが原因だったのでしょう。

>print <<"HTML";
>Conyent-type: text/html
Conyent-type:・・・・・

間違い探しですネ。もしコレが原因じゃないとすれば、もはや私には分かりません。。。。
    • good
    • 0
この回答へのお礼

お答え頂きましてどうもありがとうございました!
ホ、ホントだー、大正解です!!
そうなんです。コピペで入れたものです。
これを直したら全て問題がなくなりました。
どうもお世話になりました!

お礼日時:2001/08/25 12:09

違うと思うのですが、万が一と言う事がありますので、載せておきます。


そのDLするか聞いてくる方のサーバーでは、もしかしたら「.httacces」という拡張子ごとの設定を行うファイル
が必要なのかもしれません。
だいぶ前の話ですが、私はそれを置いた記憶があります。
最近はめっきり見ませんが。。。
それだと何故MacではDLするか聞いてこないかという事になりますが、どうでしょう。。。
まぁ、万が一の可能性って事で、サーバー管理者に聞くなり、ちょっと調べて見てください(^^;
あまりお役にたてなくて申し訳ないです。
    • good
    • 0
この回答へのお礼

アドバイスをどうもありがとうございます。
.htacsessですか。どういうファイルかは今日まで知りませんでしたが、名前は聞いたことはありました。
その名前をキーワードにサーチエンジンで検索したところ、記述の方法が載っていたので実際にやってみたんですが、そのファイル、問題のサーバにアップすると、数10秒後に自動的に削除されてしまうみたいで、
「あれ~?やっぱりダメだなぁ」と再度確認のためにftpソフトでアクセスしてみたら無くなってしまっていました。妙な構造のサーバなのか何なのか…
そうですね、最終的にはサーバーの管理の方に聞くしかないのかもしれませんね。

>あまりお役にたてなくて申し訳ないです。
とんでもないです。何もお答えが頂けないと、ますます頭を抱えることになりますから、何かしらお心当たりをお聞かせ頂けるのはとても嬉しいです。
どうもありがとうございました!

お礼日時:2001/08/25 00:00

CGIはperlですか?


もしそうでしたら、記述先頭行を確認してください。
(#!/usr/bin/perl とか)
この記述が、サーバ側のperl実行パスとあっていない事はありませんか?
    • good
    • 0
この回答へのお礼

早々のお答えをどうもありがとうございます。
問題のCGIがアップしてある「cgi-bin」ディレクトリには5つのCGIがアップしてあるのですが、どのCGIも全てサーバー設定マニュアル通り、#!/usr/local/bin/perl5と記述してあります。
万一の打ち間違い見逃しを考え、他のCGIからコピー&ペーストして再アップもしてみたのですが、状況は変わらないんです。
また、これらのCGIは全てperl5用なので、perlのバージョン違いということも考えられません。
何せ、Macでアクセスすれば動くわけですし…

お礼日時:2001/08/23 20:51

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QIEだとCGIが正しく動作しないことに関して

こんにちは。CGI初心者のものです。CGIに関して詳しい方がおられましたらお教えください。

現在Perlでデータベースを作成しています。データはCSVで保存し、検索結果があれば詳細情報を読み出すものです。データとして外国語と日本語を扱うので文字コードはUTF-8にしています。

検索結果が複数ある場合、入力日でソートして入力日の古いものが検索結果として表示されます。最初に表示される検索結果の上部に「次の候補へ」というリンクをつけて、複数ある結果の他の候補を参照できるようにしています。

「次の候補へ」へのリンクは、下記のような構造で検索フォームの内容を再度リロードして検索する形式を取っています。

*********************************************
$page_line = $view_end + 1;
$count = $data_count + 1;
if ($view_end ne $data_count ) {
#次ページHTML
$reload = $reload . '?' . 'kw=' . $FORM{'kw'} . '&' . 'action=search' . '&' . 'line=' . $page_line;
print <<"EOL";
<td width="500" align="left" class="tbg4">
<p class="text"><img src="../img/link.gif" alt="link1" width="7" height="9"> <a href="$reload">検索候補が$count件存在します。次の候補へ</a></p>
</td>
</tr>
EOL
*********************************************
このロジックでFire fox, Opera, Safari, Chromeでは問題なく、次の候補へ移動できます。しかし、IEではこの処理をせずに初期画面(TOPページ)が表示されてしまいます。初期画面に移動すると言うことは他の検索候補を検索できなかったことになります。実際は他にも候補があるのに、どうしてこのように動作するのか、私にはわかりません。

しかも、奇妙なことに幾つかの文字に関してはIEでも「次の候補」が正しく表示されるものもあります。もしかすると文字コードのせいでIEでは正しく検索ができるものとできないものがあるのかと思っています。

もしこの件に関してなんらかの助言ができる方がおられましたら、何でもかまいませんので教えていただければ幸いです。宜しくお願いします。

こんにちは。CGI初心者のものです。CGIに関して詳しい方がおられましたらお教えください。

現在Perlでデータベースを作成しています。データはCSVで保存し、検索結果があれば詳細情報を読み出すものです。データとして外国語と日本語を扱うので文字コードはUTF-8にしています。

検索結果が複数ある場合、入力日でソートして入力日の古いものが検索結果として表示されます。最初に表示される検索結果の上部に「次の候補へ」というリンクをつけて、複数ある結果の他の候補を参照できるようにしています。

...続きを読む

Aベストアンサー

同様の現象に当たったことがあります。
原因を追究してなく、回避していただけなのですが
回避方法はすでに気づかれているエンコードを行うことでした。

Qcgiファイルを実行すると、「開く」や「保存」のダイアログが出てきて困

cgiファイルを実行すると、「開く」や「保存」のダイアログが出てきて困ってます。

■環境は以下のとおりです。
・OS:windows7
・CドライブにApacheをインストール
・ActivePerlインストール済み

■httpd.confの変更した箇所(現状下記の状態です)
・Option Indexes FollowSymLinks Includes ExecCGI
・AllowOverride All
※以下は先頭の「#」を削除
・AddHandler cgi-script.cgi
・AddType text/html.shtml
・AddOutputFillter InCLUDES .shtml

■http://localhost/ にはアクセス出来てます。

以上、宜しくお願いします。

Aベストアンサー

#1です。
cgiの設定、もしくはcgiソースの書き方(1行目とか)がおかしそうですね。WindowsのApacheについては経験が無いのでどうすればいいかアドバイスできませんが、Apacheのエラーログに何かメッセージが出ているはずです。

QCGIでソースがそのままでてしまうのですが・・・。

CGIでソースがそのまま表示されてしまうのですが、どうしてなのでしょうか?

先週からCGIやPerlを学び始めました。そこで簡単なものを試しに作ってみたのですが、入力したソースがそのまま表記されてしまいます。

ちなみに、こんなものです。

#! c:/perl64/bin/perl

print "Content-type: text/plain\n\n";
print "Hello Perl !";

どこをどう変えればいいのか、わからないので、質問してみました。

わかる方がいましたら、教えてください。

初心者なので、お手柔らかにお願いします。

.





この質問に補足する.

Aベストアンサー

CGIスクリプトのソースがそのまま出力されるのは、そのファイル/URIがCGIとして実行できていないためです。

httpd.confの<Directory>ディレクティブや<Location>ディレクティブなどの指定箇所が間違えているか、
ファイルの拡張子を間違えているか、
httpd.confを書き換えてからApacheをリスタートしていないか。。。


Forbiddenが出てきたら.cgiファイルに実行権限が無い。
Internal Server Errorが出てきたら、Perlがインストールされていないか.cgi拡張子とPerlが関連づけられていない。

ということが考えられます。

Qホームページでファイルをダウンロードさせる

お世話になります。
会社のホームページを制作中です。
マニュアルなどをアップしておき、ユーザーにダウンロードしてもらうページを作ろうと思っています。
<ベクターのような>
参考になる情報ありましたら教えてください。
宜しくお願いいたします。

Aベストアンサー

ダウンロードについて、
参考URLのページに分かりやすく書いてあるようです。
例もあるのでぜひ参考にしてください。

参考URL:http://www.tohoho-web.com/wwwxx013.htm


人気Q&Aランキング