AN HTTPD ゲストブック/コメント集(2001年6月15日17:22)


中田昭雄 nakata@st.rim.or.jp 2001/06/23 07:50

satosi さん、
henjibbs.cgi というフォルダを作っているのですか?
まずそのフォルダ名を henjibbs と .cgi を含まない名前に変えてからやってみてください。
もちろんそのJavaScriptや関係する内容などもそれなりに変えなくてはいけませんが。

画像が正常に表示されるかどうかは、ブラウザで、
http://127.0.0.1/www/satosi/henjibbs/access2.cgi?http://127.0.0.1/www/satosi/
などといれてみることでわかります。


satosi satosi@mx3.tiki.ne.jp 2001/06/23 00:59

>(1)他のPerlのCGIは動くのか?(Access2以外で動いたものがあるのか?)
掲示板と人工無能が動きます

>(2)Access2 をどのように動かそうとしているのか?
掲示板にデータ収集用のjavaスクリプトを貼り付けるようになっています。

<SCRIPT Language="JavaScript"> 
<!--
document.write("<p align=center><a href=http://127.0.0.1/www/satosi/henjibbs.cgi/access2.cgi?vew>");
document.write("<img src=http://127.0.0.1/www/satosi/henjibbs.cgi/access2.cgi?" + document.referrer + " border=0></a></p>");
// -->
</SCRIPT>
これがそうです

>(3)最初から動かないのか、それとも何か操作をした時に思ったように動かないのか
このSCRIPTを貼り付けているところにダミーの画像が表示され、そこをクリックすればアクセス解析が見えます。となるはず・・・・(説明によると)

>(4)「動かない」というのは、何かエラーメッセージ(らしきもの)が表示されるのか、それとも何も起こらないのか?
ダミーのところが×になります。(正常なら用意した画像が表示される)

よろしくお願いします。


中田昭雄 nakata@st.rim.or.jp 2001/06/22 21:44

satosi さん、
そうでしょうね。
ですから、どういうことをした場合にどうなるのかをsatosiさんがちゃんと説明しなければ、正しい回答は得られません。

何をどう説明したらいいかわからないのであれば、とりあえず、
(1)他のPerlのCGIは動くのか?(Access2以外で動いたものがあるのか?)
(2)Access2 をどのように動かそうとしているのか?
(3)最初から動かないのか、それとも何か操作をした時に思ったように動かないのか?
(4)「動かない」というのは、何かエラーメッセージ(らしきもの)が表示されるのか、それとも何も起こらないのか?
にお答え下さい。


satosi satosi@mx3.tiki.ne.jp 2001/06/22 16:24

ありがとうございました。さっそく試してみましたがプログラムが動いていないように思います。javaスクリプトが貼り付けてあるのが関係するでしょうか・・???


中田昭雄 nakata@st.rim.or.jp 2001/06/20 21:12

satosi さんへ追記、
print の前に binmode(STDOUT); も必要です。
つまり、

print "Content-type: image/jpeg\n\n";
open(IMG, "$imgfile") || die "Can't open: $dir/$img";
binmode(IMG);
binmode(STDOUT);
print $_ while (<IMG>);
close(IMG);

とする、ということです。

ただし、最初の質問では単に「動きません」と言っているだけなので、この binmode だけで「動く」かどうかは別問題です。
おかしな設定をしていれば binmode を追加してもやはり「動かない」でしょう。


ES msekine@basil.freemail.ne.jp 2001/06/19 21:44

satosiさん
binmode()は指定したファイルハンドルに対して有効で、出力する前に設定しておかなければ
なりませんから、open後、print前に binmode(IMG); を記述します。


satosi satosi@mx3.tiki.ne.jp 2001/06/19 16:09

ファイルハンドルを binmode()  ←これをどこに加えればよいのでしょうか?教えてください。
よろしくお願いします。


いしどう ishidou@po.iijnet.or.jp 2001/06/16 01:01

Satosiさん

なにがどううまく動かないのかよくわかりませんが、ざっと見た感じでは、
イメージファイルを開いた後、ファイルハンドルを binmode()にしていませんね。
そこらへんからチェックを始めてみてはいかがでしょう。


satosi satosi@mx3.tiki.ne.jp 2001/06/15 17:54

突然すみません。
さきほどのソースはいただいたものです。
他の人のページに掲示してもよいかどうか問い合わせていません。
削除してくださればと思います。
すみませんでした。


satosi satosi@mx3.tiki.ne.jp 2001/06/15 17:22

httpd:1.33gで下のcgiを動かしたいのですが動きません。UNIX用の言語がどこかにあるのでしょうか?
そして、それが原因なのでしょうか?。よろしくお願いします。

#!/usr/local/bin/perl 
# ↑あなたが加入しているプロバイダの「perl」言語が使用できる
# パスを指定します。一般的に「#!/usr/local/bin/perl」で大丈夫

#=======================================================================================
# access2 Version 98.1
#=======================================================================================

(省略)

print "Content-type: image/jpeg\n\n";
open(IMG, "$imgfile") || die "Can't open: $dir/$img";
print $_ while (<IMG>);
close(IMG);
exit;
}
#=======================================================================================
(省略)