• ベストアンサー

perl初心者 「カウンタ」

勉強のためにperlでカウンタを作りました。 しかし、このカウンタは単独で動作するだけでHTMLと連動しないようなものです。 配布されているようなカウンタでは、HTMLに<img src="http://~~/count.cgi?id=index">と記述することでcgiを呼び出して、HTMLと連動しているということは分かるのですが、どういった仕組みなのか分かりません。 どなたかご教授お願いします。

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

  • ベストアンサー
  • root139
  • ベストアンサー率60% (488/809)
回答No.1

通常のHTMLを出力するCGIスクリプトの動作を、非常に大雑把に表現すると下記の様になります。 おそらく、作成されたカウンタもこのようなものかと。 ブラウザ ―(CGIをリクエスト)→ Webサーバ ―(CGI)→ perl(CGIスクリプトを処理) ブラウザ ←(HTMLを返す)― Webサーバ ←(CGI)― perl それに対して、お尋ねのimgタグから呼び出すタイプのカウンタCGIスクリプトの動作は下記の様になります。(大雑把ですが) 1.imgタグの貼り付けられたHTMLを取得。  ブラウザ ―(HTMLをリクエスト)→ Webサーバ  ブラウザ ←(HTMLを返す)― Webサーバ 2.ブラウザが送られてきたHTMLを解析。 3.カウンターの画像を取得。  ブラウザ ―(CGIをリクエスト)→ Webサーバ ―(CGI)→ perl(CGIスクリプトを処理)  ブラウザ ←(画像を返す)― Webサーバ ←(CGI)― perl この流れは、ブラウザが通常の画像を表示する場合とまったく同じです。ただ、通常はWebサーバがGIFファイルなりJPEGファイルなりをそのまま返すところを、CGIスクリプトを処理するところが違うだけです。

参考URL:
http://tohoho.wakusei.ne.jp/soft/wcnt.htm
kei_von
質問者

お礼

ご回答ありがとうございます。 画像をHTMLではなくcgiで表示している、そしてその値は、cgiスクリプトのカウントの動作によって返された値だ、とういことでしょうか? 動作の流れがわかりました。ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • mi-si
  • ベストアンサー率35% (200/567)
回答No.3

1)HTMLのURLを呼び出す 2)ブラウザHTMLを解釈して <img src=...>タグを見つけたとき、画像を読み込むためこのCGIを呼び出す。 3)呼び出されたカウンタCGIはサーバー場で 3-1)カウンタの処理(カウントアップ) 3-2)カウンタイメージの作成 3-3)ブラウザにイメージデータを出力。 の処理を行う (場合によっては不正呼び出しなどの処理を行います。 ) 4)ブラウザ側にイメージが表示される。 と言う順番になります。

kei_von
質問者

お礼

ご回答ありがとうございます。 大まかな流れを理解することができました。

全文を見る
すると、全ての回答が全文表示されます。
  • the845t
  • ベストアンサー率33% (246/743)
回答No.2

そのページが*.cgiなどCGIが使える状態で無い限り、 <img>などで呼び出さないとカウンタを呼び出すことができません。 <img>で呼び出されたカウンタは、カウントファイルを呼び出し、 その数を画像にして出力しているわけです。 とほほのWWW入門さんのgifcat.plなどを使うと良いでしょう。 http://tohoho.wakusei.ne.jp/wwwsoft.htm テキストでいいなら、簡単なのは<iframe>で呼び出して見るとかね。

参考URL:
http://tohoho.wakusei.ne.jp/wwwsoft.htm
kei_von
質問者

お礼

ご回答ありがとうございます。 kent webさんで配布されているカウンタも、とほほさんの画像連結ライブラリを使用されているみたいですね。 やっぱり、kent webさんで配布されているカウンタのスクリプトを読解することが、悩みを解決する近道かもしれません。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • カウンターについて教えてください。

    HPを立ち上げようと思っています。そこでカウンターをつけようとしているのですが、カウンターが "1" から進みません。下記をどのように手直しすればよいのか教えてください。よろしくお願いします。            ↓ <IMG SRC="http://counter.******.dti.ne.jp/cgi-bin/Count.cgi?df=********.00.dat|dd=A"> ******=サブドメイン ********=個人ID

    • ベストアンサー
    • CGI
  • カウンターcgiをHTMLに表示したい

    perlの入門書を見て簡単なカウンターのcgiを作りました。gif画像を10枚使ってテキスト数字のかわりに表示させるものです。 サーバーにアップして動作確認もしました。ちゃんと動いています。 このカウンターをHP上のHTMLのページに表示させたいのですが方法が分かりません。 <img src="カウンターcgiのURL"> と書いたのですが、ダメでした。 画像ではないのでimgタグだとダメなのでしょうか。 どうすればHTMLに表示できるのか教えて下さい。 関係があるか分かりませんが、SSIは使えます。

    • ベストアンサー
    • Perl
  • OCNのアクセスカウンターについて

    ※ Page ON 1契約でひとつのカウンタをご利用いただけます。 アクセスカウンタをつける場所に下記のようなHTMLをつけ加えます。 例: <img src="/cgi-bin/Count.cgi?df=WEBアカウント.dat&frgb=ff0000"> ※上記の例をコピー&ペーストしただけではカウンタは表示されません。 必ず上記の「WEBアカウント」のところをお客様のWEBアカウント名に変更して下さい。 もし、お客様のWEBアカウントが ocnweb であれば、 <img src="/cgi-bin/Count.cgi?df=ocnweb.dat&frgb=ff0000"> と記述して下さい。 と書いてあるのですが、WEVアカウントって何ですか? それと、アクセスカウンターが、表示されないのですが どうしたらいいのですか?教えてください。

    • ベストアンサー
    • CGI
  • カウンター

    CGI(Perl)を勉強中の初心者です。 自作のグラフィックカウンターのCGIをHTMLに貼り付けると、 カウンターは表示されるのですが、 HTMLでカウンターより下に配置してある画像が表示されません。(テキストはOK) CGIを貼るタグは<IMG src=".......cgi>としてあるのですが、 調べてみたところ、このタグ内でwidthとheightの属性を設定しないと このタグ以下のHTMLが表示されないことがあるとのことで、 属性も設定したのですが、やはり表示されません。 CGIスクリプトそのものに問題があるのでしょうか。 よろしくお願いいたします。

    • 締切済み
    • CGI
  • commufaホームページでカウンタをつけたい

    commufaでホームページを開設しています このたびカウンタをつけたいと思いcommufaのサポートを見たのですが それには次のように書かれていました ・・・・・『お客さまのホームページに、以下のように記述してください。 <img src="/cgi-bin/Count.cgi?df=XXX.dat"> お客さまのWeb IDが"commufa"の場合、<img src="/cgi-bin/Count.cgi?df=commufa.dat">となります。』 この通りやってみたのですが ページには何も表示されません commufaでカウンタをつける方法についてもう少し詳しく教えていただけないでしょうか ちなみにWindows7・ホームページビルダー14で作成しています よろしくお願いします

  • カウンターの画像が表示されない

    無料カウンターの画像が「×」になります perlパスはusr/bin/perlです。 indexと同じ階層にdaycounterのフォルダをおきました。パーミッションはサーバーの方が HTML画像ファイル604 CGI実行ファイル700 CGIデータファイル600 .htaccessファイル604 ディレクトリ705 index.html ┃ daycounterフォルダ(755)   ┃   img1フォルダ(701)━gif画像(604)   ┃   img2フォルダ(701)━gif画像(604)   ┃   cgi-lib.pl(600)   ┃   counter.html(604)←使用しないそうです   ┃   daycounter.cgi(700   ┃   daycounter.dat(600)   ┃   gifcat.pl(600) そこのapeboardの設置を参考にしました。 http://www.lolipop.jp/?mode=faq&state=detail&genreid=6&faqid=000120 imgフォルダだけバイナリで転送してあります。 カウンターのソースは <IMG src="http://127.0.0.1/yoshi/public_html/free_cgi/counter/daycounter/daycounter.cgi?mode=total"><P> 本日:<IMG align="absmiddle" src="http://127.0.0.1/yoshi/public_html/free_cgi/counter/daycounter/daycounter.cgi?mode=today">  昨日:<IMG align="absmiddle" src="http://127.0.0.1/yoshi/public_html/free_cgi/counter/daycounter/daycounter.cgi?mode=yesterday"> です。

    • ベストアンサー
    • CGI
  • カウンター設置方法について

    カウンター設置方法を何度やっても、カウンター表示されません。 index.htmlのソース、一番下の行に、 <IMG src="/perl-bin/counter/~ユーザーID/?ndigit=5> または、 <IMG src="/perl-bin/counter/~ユーザーID/?ndigit=5&uri=/~ユーザーID/***"> を入れています。(ユーザー名も何度も確かめました。) FTP上入力もだめで、PCよりアップしてもだめでした。 何が問題なのか教えてください。 ホームページ作成初心者です。よろしくお願い致します。

    • ベストアンサー
    • HTML
  • モバイルアクセスカウンタ

    初心者。 モバイル用のアクセスカウンタ設置中です。 CGIROOMさんのモバイルカウンターをダウンロードしました。 http://cgiroom.nu/list/count/mcount/ そこで、質問があるのですが、 モバイルカウンタは、count.cgi?にアクセスしてカウントされますよね?? トップページなどに設置してカウントされるようにしたいのですが、 そのようなことは可能なのでしょうか?? HTMLのソースに 今日のアクセス<img src="CGIまでのパス/count.cgi?mode=t"> と記入しても、 数字は表示はされるのですが、カウントはしないのです。 宜しくお願いします。

    • 締切済み
    • CGI
  • アクセスカウンタ

    プロバイダWAKWAKの無料HPサービスで、 アクセスカウンタを作成、設置しました ユーザー設定ガイド http://www.wakwak.com/support/setup/homepage/cgi/counter.html の通り、 txtファイルに、下記の記述を追加 <img src="/cgi-bin/Count.cgi?df=xxxxx|user=yyyyy"> xxxx はアクセスカウンタ名 yyyyyはFTPログインID を入力しました txtファイルは、『count.txt』とファイル名をつけて、保存 これを cgi-bin に アップロードして、 アドレスバーに下記の通り入力、表示しようとしましたが・・・ http://park21.wakwak.com/~○○○/cgi-bin/count.txt (○○○は私のFTPログインID) エラーの表示になってしまいました CGI Error The error was detected while processing this request. Be sure of followings: The CGI script does exist. The permission of CGI script is 755. The Perl path in CGI script is #!/usr/local/bin/perl. CGIスクリプトの呼び出し中にエラーが発生しました。 下記の点をご確認ください。 ・CGIスクリプトが存在すること。 ・CGIスクリプトのパーミッションが755であること。 ・CGIスクリプトのperlのパスが #!/usr/local/bin/perl であること。 アクセスカウンタが表示できない理由は何でしょうか?

  • テキストカウンターのエラー 詳しい方教えて!!

    ttp://up.kabubu.net/cgi/img2/15270.zip これがソースですフレーム分割してテキストカウンターを表示させるやつです 一週間でマスターするCGI for Macintoshについてきたものです 本通りにやってもできません ローカルのアパッチでも試しましたが webサーバーだと500エラーがでました 本にはサポートページもありませんでした 一応ソースのせます #!/usr/bin/perl open(COUNT, "+<countdata") || die "File 'countdata' Open Error."; flock(COUNT,2); $counter = <COUNT>; $counter_new = $counter + 1; seek(COUNT, 0, 0); print COUNT "$counter_new?n"; close(COUNT); flock(COUNT,8); print "Content-type: text/html?n?n"; print << "END_OF_HTML"; <HTML> <BODY> <CENTER> <FONT size="6"><B> ようこそ<BR> あなたは<FONT color="red"> $counter_new </FONT>人目のお客様です </B></FONT> </CENTER> </BODY> </HTML> END_OF_HTML ソースミスを指摘してもらいましたが 自分でやるとエラーがでるので どなたかエラーがでないようにソースを直して下さい あとパーミッションも御願いします 本にのってた通りのパーミッションでは ファイル countdataは606 counter.cgiは705 main.htmlは404 index.htmlは404 briage.gifは404 となっております ディレクトリの名前はcounterです パーミッションは755 ソースエラーを指摘されましたが難しいのでどなたか動作確認できてから書き直して載せて下さい御願いします

    • ベストアンサー
    • CGI
このQ&Aのポイント
  • DCP-J137Nのエラーメッセージに従い対応したが、紙詰まりエラーが解消されない状況です。エラーメッセージの対処方法を試しても改善されず、紙詰まりが解消されないことに困っています。
  • DCP-J137Nの紙詰まりエラーが消えない状況です。エラーメッセージに従い、紙詰まりを解消する方法を試しましたが、改善されませんでした。解決策を教えてください。
  • DCP-J137Nのエラーメッセージに従って紙詰まりエラーを解消しようとしていますが、うまくいきません。エラーメッセージの対処方法を実行しても、紙詰まりエラーは解消されません。助けてください。
回答を見る

専門家に質問してみよう