![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
超初心者からプログラムを初めて1週間、
プログラム言語にはperlを使用しています。
mac os x です。
perlの教科書読みながら、アクセスカウンタを作ろうとした所、
何故かgif画像が表示されません。
ネットの素材置き場からとってきましたが、パソコン自身、gif自体は認識してくれてます。
ただ、それをperlに組み込んで使おうとすると、表示されません。
ブラウザはfirefoxとsafariで試しましたが、両方認識してくれませんでした。
ちなみにソースは
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "<HTML>\n";
print "<HEAD><TITLE>アクセスカウンタ2</TITLE></HEAD>\n";
print " <BODY>\n";
print "<H1>test</H1><HR>\n";
if ( open ( FH , "count.txt")){
$cnt = <FH>;
close( FH );
$cnt++;
print"<CENTER>\n";
foreach $fld (split (// , $cnt)){
print "<IMG SRC=\"${fld}.gif\">";
}
print"</CENTER>\n";
if ( open(FH, ">count.txt" )){
print FH $cnt;
close(FH);
}
else {
print "ファイルの書き込みオープンに失敗しました。\n";
}
}
else {
print "ファイルの書き込みオープンに失敗しました。\n";
}
print "</BODY>\n";
print "</HTML>\n";
__END__
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
です。
テキストファイルを確認しているので、
perl 自体の活動と、アクセスのログ?自体は正常に動いているみたいです。
お願いします。
助けてください!
No.2ベストアンサー
- 回答日時:
これは、サーバーの設定の関係ですね。
そのGIFファイルをCGIと同じディレクトリに置いていませんか?
httpサーバーの設定によっては、URL上では一緒に見える CGIのディレクトリと 静的なファイルのディレクトリとが違います。Macのサーバーの初期設定では、まさにそのようになっているようです。
そのGIFファイルを WebServer > Documents に入れてみてください。
まとめると
localhost/~.cgi はCGIのアクセスと解釈され、CGI-Executables にあるファイルが実行される。
その結果の出力として出てきた locahost/~.gif は静的なファイルなので Documents にファイルを探しにいく。
ありがとう御座います!
結果としては出力を変更して、
print "<IMG SRC=\"../${fld}.gif\">"; にして
ファイルをDocmentsというフォルダに入れることで作動しました!
設定でのご意見、誠にありがとう御座います!
No.3
- 回答日時:
具体的に、カウンタ画像はどこに置いてあるのでしょうか?
それに合わせてHTML出力を設定してください。
CGIは、単に「HTMLをプログラムで生成する」ものにすぎません。
その出力をHTMLとして正しいものにするのは、CGIの問題ではなく HTMLの「Webデザイン」的な話になります。
質問者さんのコードでは、
「<IMG SRC="0.gif">」のようなHTMLデータを出力しています。
このCGIが「http://localhost/cgi-bin/count.cgi」に置いてあるのですから、
画像も同じディレクトリである「http://localhost/cgi-bin/0.gif」などでアクセスできるようにしておかないと、画像を表示できないことになります。
画像が別のフォルダに置いてあるのなら、
・画像もcgi-binフォルダに入れる
か
・画像の置き場所に合わせてHTML出力を変える
か、どちらかが必要です。
(後者は、例えば(「http://localhost/XXX/0.cgi」で画像が表示できるのなら、
HTMLデータとして「<IMG SRC="/XXX/0.gif">」とすればいいわけですから、
プログラムは「print "<IMG SRC=\"/XXX/${fld}.gif\">";」のようになります)
ありがとう御座います!
結果としては出力を変更して、
print "<IMG SRC=\"../${fld}.gif\">"; にして
ファイルをDocmentsというフォルダに入れることで作動しました!
置き場所でのご意見、誠にありがとう御座います!
No.1
- 回答日時:
まず、現状どう表示されるのですか?
このスクリプトをCGIとして実行するように、HTTPサーバーは設定できていますか?
単にfirefoxやSafariの「開く」でPerlのスクリプトを開いても、そのスクリプトがそのまま表示されるだけだと思いますが。
この回答への補足
ご回答ありがとう御座います。
現状は
test
---------------------------------------------------------------------------------------------------
□□□
と表示されます。
□にはブラウザ毎の画像が表示できないアイコンが出てます。
素人すぎて恥ずかしい話ですが、
「このスクリプトをCGIとして実行するように、
HTTPサーバーは設定できていますか?」
については、お話しされている内容がよくわかりません。ごめんなさい。
状況としては、まだ、オンライン上にはあげておらず、
自分のパソコンの中で学習しているので、
サーバー等の知識は全然無いのです。
今は、パソコンの中のHD→ライブラリ→WebServer→CGI-Executablesに入れて
実験をしています。
開くためには http://localhost/cgi-bin/count.cgi と打ってsafariやfirefoxで表示させています。
以上、ご確認の上、更なるご助言をいただければと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- PHP PHP ページング データベース 1 2022/06/16 10:30
- PHP PostgreSQLからCSV形式でエクスポートする際にカラム内の改行をとる方法 1 2023/02/22 10:05
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
自作のアクセスカウンタ
-
read関数で読み込んだ内容をフ...
-
wordの数式について 定積分を書...
-
ラジオボタンが両方とも選択で...
-
(Perl)ReadParseによるハッシ...
-
ひとつのCGIファイルに複数のペ...
-
パスワード認証のCGI
-
pythonのnumpyでの列(縦)ベク...
-
複数ボタンのvalueを送れない
-
チェックボックスの返す値
-
EXCELとの連携
-
FORMのselectの選択肢を最初か...
-
フォームの年号リストの自動更新
-
PHPで検索ボタンを押さずに検索...
-
Google検索のラジオボタン
-
postデータのあるページの再表示
-
チェックボックスとセレクトボ...
-
Ruby/DBIが上手く動きません。。
-
「value」に2つの値をセットす...
-
HTMLでFORMのSELECTでの<OPTION...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ディレクトリのファイル数取得
-
2種類のファイルを一枚の画像フ...
-
パールの-pオプションの値0777...
-
wordの数式について 定積分を書...
-
ラジオボタンが両方とも選択で...
-
「value」に2つの値をセットす...
-
INPUT TYPE
-
チェックボックスの返す値
-
select値をhiddenのvalueに渡し...
-
別formのhidden項目を自form値...
-
WEBページを強制的に横画面で見...
-
VB.net データーグリッドビュー...
-
VB初心者。小数点以下の表示で...
-
FORMのselectの選択肢を最初か...
-
[HTML]プルダウンメニューの横...
-
perlで書いたcgiでsqliteの使い...
-
チェックボックスとセレクトボ...
-
プログラミングについての質問...
-
SUN BBSの改造方法
-
EXCELとの連携
おすすめ情報