• ベストアンサー

@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に詳しい方回答お願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.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>

noname#93613
質問者

お礼

丁寧に回答していただきありがとうございました。 パスに関しては、このように書くように書かれていたんです。 それでも出来ないのはSSIのせいなようです。。。 とても丁寧にスクリプトまで記入いただきありがとうございました。

その他の回答 (1)

  • Suzi
  • ベストアンサー率38% (130/334)
回答No.1

$countfile="count.dat"; は $countfile="​http://hpcgi3.nifty.com/******/count.dat"; とか?  でも、このスクリプトはSSIです。@niftyはSSI使用は許可されていなかったような記憶があります。  cgiで画像表示なら可能と思います。

noname#93613
質問者

お礼

回答ありがとうございます。 niftyではSSIが使えないことをはじめて知りました。 ありがとうございました。

関連するQ&A