- ベストアンサー
@niftyホームページでのアクセスカウンタ(perl)
すごく簡単なアクセスカウンタなのですが実行できません。 ちなみに、perlスクリプトは、count.plというファイルに、 #!/usr/local/bin/perl $countfile="count.dat"; open IN,"$countfile"; $count=<IN>; close IN; $count=$count+1; open OUT,">$countfile"; print OUT $count; close OUT; print $count; html内の記述は、 あなたは、<!--#exec cmd="http://hpcgi3.nifty.com/******/count.pl"-->人目 plファイルを置くディレクトリは間違っていないようです。 perl、@niftyに詳しい方回答お願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>plファイルを置くディレクトリは間違っていないようです。 あくまで、サーバー上での相対パスですから、/cgi-bin/count.pl で無ければなりません。http://が付いているということは、HTTPサーバー経由ということですが、それじゃファイルを開いたり、実行させたりなんて出来ません。 ですが、@nifty@homepageでは、SSIは使えないので意味ないですけど・・・ 方法としては、文字データとして含めたいなら、トップページ自体をindex.cgiとして/cgi-binにおき、index.cgiでページを書き出すか、画像タイプのアクセスカウンター---提供されているアクセスカウンターを使うかになります。 トップページは、http://hpcgi3.nifty.com/****/ になります。 __________ここから、index.cgi_________ #/usr/local/bin/perl use strict; my $countfile="count.dat"; open IN,"$countfile"; $count=<IN>; close IN; my $count=$count+1; open OUT,">$countfile"; print OUT $count; close OUT; print "Content-type: text/html;\n\n"; while(<DATA>){ s/<\!-- counter -->/$count/; print; } # __END__の後にHTMLソースをそのまま書いておく。 ___END__ <html> <head>略</html> <body> <p>あなたは<!-- counter -->人目の・・・</p> </body> </html>
その他の回答 (1)
- Suzi
- ベストアンサー率38% (130/334)
$countfile="count.dat"; は $countfile="http://hpcgi3.nifty.com/******/count.dat"; とか? でも、このスクリプトはSSIです。@niftyはSSI使用は許可されていなかったような記憶があります。 cgiで画像表示なら可能と思います。
お礼
回答ありがとうございます。 niftyではSSIが使えないことをはじめて知りました。 ありがとうございました。
お礼
丁寧に回答していただきありがとうございました。 パスに関しては、このように書くように書かれていたんです。 それでも出来ないのはSSIのせいなようです。。。 とても丁寧にスクリプトまで記入いただきありがとうございました。