CGI初心者です。
CGIを利用しようと、自分の端末をサーバ設定まではできました。が、テストレベルの10行程度のcgiファイルはすぐ表示されるのですが、ためしにフリーのcgiを表示させてみようとしても、30分たってもブラウザに表示されません・・・(一応反応はしているようなのですが)なにが原因なのでしょうか?ちなみに、Win95+HTTPD+ActiveRerlをおとしました。また、テストも表示させはできましたが、[print]や[n]といったものまで表示されるのは正しい表示なのでしょうか?(秀丸でつくったのですが・・・)

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

A 回答 (5件)

それは明らかにCGIが実行されてませんね。


AN HTTPDってのは使ったことが無いので、よくわからないんですが、Apacheだとhttpd.confファイルというのがあって、そのファイルに各種設定項目を記述しています。
CGIを実行する場合も、特定のフォルダに対して実行CGI実行可能なように設定を行います。
AN HTTPDではそのような設定は有りませんか?

参考URL:http://www.harukaze.net/~mishima/perl/ http://www.sosb.com/hp/apache/
    • good
    • 0
この回答へのお礼

いろいろありがとうございました。教えていただいたURLを参考にもう少しがんばってみます。m(._.)m ペコッ

お礼日時:2001/01/22 13:09

いくつかミスがあるので指摘しておきます



print"Content-type: text/html\n";
     ↓
print"Content-type: text/html\n\n";

print"<HTML><BODY>\n"
     ↓
print"<HTML><BODY>\n";

あと・httpdですが
ちゃんとperlのプログラムとか指定しました?
たしか設定する項目があったとおもうのですが
    • good
    • 0
この回答へのお礼

ありがとうございました。指摘された部分を訂正してやってみたのですが、やはり・・・httpdの設定を再度やり直してみます。

お礼日時:2001/01/22 13:11

CGI内に書いたHTML部分以外も表示されてるってことでしょうか?


CGIが正しく実行されていないのではないでしょうか?
試しにそのCGIファイルの拡張子を TXT などにしてブラウザで表示したのと同じモノが表示されていませんか?

HTTPD ってApacheなんでしょうか?それとも他のもの?いずれにしても動作ログやエラーログを吐くでしょうから、それらのログからたどってみたらいかがでしょう?
    • good
    • 0
この回答へのお礼

ありがとうございました。教えていただいたようにtxtファイルにしても同じモノが表示されました。なにがおかしいのでしょうか?ちなみに、
#!/urs/bin/perl

print"Content-type: text/html\n";
print"<HTML><BODY>\n"
print"<H2>Hello!WORLD</H2>\n";
print"</BODY></HTML>\n";
exit;
にうったんですけど。

あと、HTTPDは、AN HTTPDのことです。

お礼日時:2001/01/19 15:01

 端末(=Windows95+HTTPD+ActivePerl)で、HTTPは正常に動作しているのでしょうか?


 まずは、一個一個確実にして行かないと問題の把握が出来ません。

 反応はしているっとなると、貴方が書いたCGIが問題です。フリーのCGIの方には説明がなかったのですか?
 Windows系のOSでCGIを動かすには、設定をいろいろ変えなくてはいけない部分がありますので、今までやった作業を教えて下さい。
 質問の内容だけでは、なにが 起っているのか解りません。

 参考URLのサイトに説明があります。それを参考にしてやってみて下さい。ね。

参考URL:http://www.kent-web.com/
    • good
    • 0
この回答へのお礼

早速ありがとうございました。参考URLを自分も参考にして実施し、hello.cgiをブラウザに表示させることには成功しました。(ただ、表示が、「#」やら「n」やらまでもされていますが、これらまでも表示されるのだというのであれば、成功かと思われます。)が、次の段階の「オフラインでCGIを動かそうの巻」でのことができません。いつまでたっても、砂時計が動くだけで何も表示されないのです。600行もあるからなのでしょうか?

お礼日時:2001/01/19 13:55

本物の端末ならそんな作業は不可能です。

    • good
    • 0

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

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

Q[Apache/CGI/PHP]shebang lineを表示したくない

最近漸くApacheの設定の配置等を覚え,少しずつ今まで避けてきた言語に慣れてきた気がします。

自分にとってわかりやすいという理由で
moduleではなくCGI経由で
ブラウザから
PerlプログラムやPHPプログラムにアクセスしています。

#セキュリティ確保のためIISでなければ転送設定せい、言われたけど,cgi-binフォルダに持っていくの気分悪かったので無効にしている

#ブロードバンドルータでNAPTしていないので外部には公開しておらず
LAN内のみのアクセス。

さて,プログラム自体は正常に実行されているのですが,
PHPプログラムのソースにshebang line(#!で始まる行)を記述すると

ブラウザで表示させたときに処理結果の前にshebang lineがそのまま表示されてしまいます。どの設定が怪しいでしょうか?

#文字数どうなるかわからないので設定ファイル自体は
張ることになったとしてもお礼欄や補足欄を活用してする形

==============
Windows XP SP3 RC 1 + Apache 2.2.6 + PHP 6.0.0
PHPは一応当方のフォルダ見ると
v200712021530
とメモしてある。通じるか判らないけど。
#XP SP3 RC1含め,その辺のバージョンが影響することは無いと思うが

最近漸くApacheの設定の配置等を覚え,少しずつ今まで避けてきた言語に慣れてきた気がします。

自分にとってわかりやすいという理由で
moduleではなくCGI経由で
ブラウザから
PerlプログラムやPHPプログラムにアクセスしています。

#セキュリティ確保のためIISでなければ転送設定せい、言われたけど,cgi-binフォルダに持っていくの気分悪かったので無効にしている

#ブロードバンドルータでNAPTしていないので外部には公開しておらず
LAN内のみのアクセス。

さて,プログラム自体は正常に実行され...続きを読む

Aベストアンサー

がると申します。
httpd.confの設定次第ではあるのですが。通常、Webなどで書かれているような設定をしているかぎりですと、おっしゃるとおりの挙動になります(つまりバグではなくて想定されている挙動です)。

PHPは、<?phpという文字列でスタートしますので。そのあたりはPHP関連をお調べください。
どうしてもshebang lineで動かされたいようであれば、httpd.confでの.php拡張子の挙動を変えてやる必要があります。

以上参考になれば幸いです。

Q[携帯サイト]CGIの対応キャリアについて

初めまして。
私は今までWebサイトは構築したことがありましたが、今回携帯サイトを初めて構築することになりました。

htmlで順調に構築してまいりましたが、会員登録ページなどのユーザからの入力データを受け取る部分はCGIで対応しようと思いました。
しかし、シュミレータで動作確認を行ったところ、docomo以外は対応していないと表示され、非常に困っています。
docomoでは正常にデータが受け取れているのでプログラムは正しいと思います。

いろいろ調べた結果、「CGIは3キャリア対応している」と私は解釈したのですが、実際はどうなのでしょうか?
”~.cgi”というファイルを閲覧可能なキャリアはdocomoだけなのでしょうか?
なにぶん初心者なため、質問内容が初歩的なものとなってしまっているかもしれませんが、ご回答宜しくお願い致します。


なお、使用したシュミレータは以下のとおりです。
docomo:i-mode HTML Simulator II
softbank:ウェブコンテンツヴューア
au:Openwave SDK 6.2K

初めまして。
私は今までWebサイトは構築したことがありましたが、今回携帯サイトを初めて構築することになりました。

htmlで順調に構築してまいりましたが、会員登録ページなどのユーザからの入力データを受け取る部分はCGIで対応しようと思いました。
しかし、シュミレータで動作確認を行ったところ、docomo以外は対応していないと表示され、非常に困っています。
docomoでは正常にデータが受け取れているのでプログラムは正しいと思います。

いろいろ調べた結果、「CGIは3キャリア対応している」と私...続きを読む

Aベストアンサー

ウェブでの通信手順 HTTP について誤解があります。まずは入門書で HTTP を勉強するところからはじめるのがいいです。
お勧め: 上野 宣 (著) 「今夜わかるHTTP」
http://www.amazon.co.jp/%E4%BB%8A%E5%A4%9C%E3%82%8F%E3%81%8B%E3%82%8BHTTP-%E4%B8%8A%E9%87%8E-%E5%AE%A3/dp/4798108200/sr=8-1/qid=1172018022/ref=sr_1_1/503-8526841-4624764?ie=UTF8&s=books

誤解の一番重要なところを説明します。

ウェブは
「http://..../~.cgi のデータをください」
「<html>
...

と、サーバはデータだけ送っているものだと思っていませんか?

実際の動作は
「http://..../~.cgi のデータをください」
「OK です。
 ファイルの内容は text/html です
 ファイルのサイズは xxxxx bytes です
 最終更新日時は ..... です
 (一行空白を置いて)
 <html>
...

という動作をしています。その URL のデータについての情報がデータ本体の前に送信されています。これを「HTTP レスポンスヘッダ」と呼びます。PC のブラウザ(IE, Firefox, Opera, Safari, etc)でもデフォルト状態では表示されませんが、確かにありますし、実は重要です。

先ほどの例で「ファイルの内容は text/html です」という項目を入れました。ウェブでのファイルの種類の区別は本来は HTTP レスポンスヘッダで行うものなんです。例えば「ファイルの内容は text/plain です」と書いてしまうと拡張子が .cgi でも .html でもプレインテキストとして扱う -HTML のつもりがソースコードが表示される- のが本来の規定です。

> ”~.cgi”というファイルを閲覧可能なキャリアはdocomoだけなのでしょうか?
”~.cgi” という名前はクライアントには関係ないんです。

.html や .gif を送るときには管理者は気にしません。ウェブサーバが自動でファイルの種類の行を作るからです。拡張子が問題になるのは、ほとんどのウェブサーバが HTTP レスポンスヘッダを作るときに参照しているからです。

しかし CGI の場合はプログラマが自分で HTTP レスポンスヘッダのファイルの種類の行を作らなければなりません。CGI は HTML, GIF, JPEG, PNG, TXT, etc のどれでも作成できるので、ウェブサーバが自動でファイルの種類の行を作ることができないからです。

PC 向けではうまくいったしれません。IE は HTTP レスポンスヘッダのファイルの種類の行を見ない、しかも拡張子も見ない、実はデータの内容を調べて処理している(例えば <html> が見つかったら HTML として表示する)、ことを Microsoft がドキュメントで説明しています。試しに HTML を拡張子 .txt でウェブサーバにおいて IE で表示させてみてください。HTML として表示されるはずです。後は .gif でも .jpg でも .swf でも何でもいいです。デフォルト設定の IE ではなんだろうと HTML として表示します。(IE 6 以降は設定で変えられます)

HTTP レスポンスヘッダを見るには、ツールを持っているサイトを使うか、自分でツールをインストールするか、です。

私が知っているのは
View HTTP Request and Response Header
http://web-sniffer.net/
# サイトの URL を入力すると HTTP レスポンスヘッダも含めて表示されます
Live HTTP headers
http://firefox.geckodev.org/index.php?cmd=read&page=Live%20HTTP%20headers&word=response%20header
# Firefox の機能拡張です

自分で確かめてくださるようお願いします。

ウェブでの通信手順 HTTP について誤解があります。まずは入門書で HTTP を勉強するところからはじめるのがいいです。
お勧め: 上野 宣 (著) 「今夜わかるHTTP」
http://www.amazon.co.jp/%E4%BB%8A%E5%A4%9C%E3%82%8F%E3%81%8B%E3%82%8BHTTP-%E4%B8%8A%E9%87%8E-%E5%AE%A3/dp/4798108200/sr=8-1/qid=1172018022/ref=sr_1_1/503-8526841-4624764?ie=UTF8&s=books

誤解の一番重要なところを説明します。

ウェブは
「http://..../~.cgi のデータをください」
「<html>
...

と、サーバはデータ...続きを読む

Q[Perl] CGI_Lite.pmでファイル名取得できない

CGI_Lite.pmを使用してファイルをアップロードするCGIを書いていますが、ファイル名によっては、名前の途中までが消えてしまいます。
cgiとhtmlは、以下のとおりです。EUC、Shif-JISの両方で、また、LinuxとWindowsXPの両方で試してみました。


「可能性.txt」というファイルをアップすると、
「性.txt」というファイル名になります。

環境:
CGI_Lite.pmは、2つのバージョンを試してみました。
(1), CGI_Lite 2.02 http://search.cpan.org/~smylers/CGI-Lite-2.02/Lite.pm
(2), CGI_Lite 1.8 http://search.cpan.org/dist/CGI_Lite/

OSなど
(1), WindowsXP + AnHTTPd + Perl5.8.8
(2), SuSE Linux + Apache2.0 + Perl5.8.3



■アップするHTML
<html>
<form action='test.cgi' ENCTYPE='multipart/form-data' method='post'>
<input type="file" name="file1">
<input type="submit">
</form>
</html>

■アップされるCGI(test.cgi)
#!/usr/bin/perl
use CGI::Lite;

my $cgi=new CGI::Lite;
$cgi->add_timestamp(0);
$cgi->set_directory('./') or die $!;
$cgi->set_platform ('Unix');
$cgi->set_buffer_size (10000);
my %in = $cgi->parse_form_data();

print"Content-type: text/html\n\n";
print"-->$in{'file1'}\n";



以上、よろしくお願いします。

CGI_Lite.pmを使用してファイルをアップロードするCGIを書いていますが、ファイル名によっては、名前の途中までが消えてしまいます。
cgiとhtmlは、以下のとおりです。EUC、Shif-JISの両方で、また、LinuxとWindowsXPの両方で試してみました。


「可能性.txt」というファイルをアップすると、
「性.txt」というファイル名になります。

環境:
CGI_Lite.pmは、2つのバージョンを試してみました。
(1), CGI_Lite 2.02 http://search.cpan.org/~smylers/CGI-Lite-2.02/Lite.pm
(2), CGI_Lite 1.8 http...続きを読む

Aベストアンサー

sjisのまま扱いたいということなら、

ShiftJIS 「脳」の文字コード -OKWave
http://okwave.jp/qa3306321.html

の回答 No.2 にあるようなパターンで、ダメ文字の中に隠れている
'\' をエスケープすればうまくいきませんか?

デバッグのときなんかはいろいろ見落としがちですからね。
謝るこたないですよ♪

Q[PERL-CGI] LWPを使った際リダイレクトされたか否かを知る方法について

下記のように、任意のホームページを取得してそれを出力するプログラムがあるのですが、リダイレクトで引越しされたホームページにアクセスしても、特に問題なく表示されます。
できれば、リダイレクトされた場合であれば、次から本当のURLにアクセスしたいためそのホームページを記録したいのですが何か良い方法は無いでしょうか?
ご存知の方、教えていただけ無いでしょうか?
宜しくお願い致します。


-CGI----------------------------------------------------
#!/usr/bin/perl
print "Content-Type: text/plain\n\n";
$url = 'http://URLを入れる';
use LWP;
use HTTP::Cookies;
$file = "cookies.txt";
$browser = LWP::UserAgent->new;
$browser->cookie_jar({file =>$file, autosave=>1 });
$response = $browser->get($url);
print $response->{_content};
__END__
if(リダイレクトされたならば){
open (OUT,">>RedirectLog.txt");
print OUT $url."\n";
close(OUT);
}
-CGI----------------------------------------------------

下記のように、任意のホームページを取得してそれを出力するプログラムがあるのですが、リダイレクトで引越しされたホームページにアクセスしても、特に問題なく表示されます。
できれば、リダイレクトされた場合であれば、次から本当のURLにアクセスしたいためそのホームページを記録したいのですが何か良い方法は無いでしょうか?
ご存知の方、教えていただけ無いでしょうか?
宜しくお願い致します。


-CGI----------------------------------------------------
#!/usr/bin/perl
print "Content-Typ...続きを読む

Aベストアンサー

リダイレクトされていたらリダイレクト禁止にして改めてurlを取り出すとか
if($response->previous()){ #リダイレクトされたならば
$browser->requests_redirectable([]);
$browser->get($url)->content()=~/<a href=[\"\']?([^\"\']+)[\"\']?>/i;
open (OUT,">>RedirectLog.txt");
print OUT $1."\n";
close(OUT);
}
#ちょっと処理的にアレな感じですがとりあえず動きました

Q携帯対応の画像アップロード板[CGI]

携帯対応のレンタルではない、画像アップロード板を探しています…。
モバイルでの有名レンタルBBSは、00やAvi-Banでしょうか?
なにぶんレンタルは広告が多く使い勝手も余り良くないので、
出来ればcgiなどで自分好みに設定していきたいと考えています。
自分ではcgiの知識はなく(初心者レベル)なので、
作る事は不可能に近いです。
もし、ご存知であれば教えて頂けたらと思います。
恐らく携帯ではメール投稿型になると思うのですが、それでも構いません。
宜しくお願いします。

Aベストアンサー

私も昔同じように、探した事があります
その結果、TakasanBBS XGというものを使う事に決め使用していました

TakasanBBS XG
http://www.bashikko.com/takasan/

参考URL:http://www.bashikko.com/takasan/


このカテゴリの人気Q&Aランキング

おすすめ情報