CGIの実験(2000/7/29)(2003/3/8改正)

カウンターの制作(合計・Yesterday・Today)

サンプルです。
1999/9/17から人目の訪問者です。  本日は番目のアクセスです。 また昨日は人のご来場者がありました。

  1. CGIとは何か?

    1. CGIは、Common Gateway Interfaceの略です。Gatewayとは「橋渡し」の意味です。クライアントのブラウザから入力したデータをWebサーバ側で動作し、結果を返すシステムをCGIプログラムといいます。インターネットがよりインタラクティブになります。

    2. プロバイダーのサーバーのOSに注意

      1. UNIX系のOSでCGIは動作する。

      2. 他のOSですとうまく動作しない場合があります。

      3. CGIの言語はPerlソフトでかかれてありますが、バージョンが5.0以上のものを使用して下さい。

      4. FTPソフトでパーミッション設定が行えること。私は「FFFTP」を使用しました。

  2. 準備するツール

    1. 編集ソフト(エディタ)
      CGIプログラムは[EUC]という文字コードでかかれていますので、メモ帳やワードパッドでは編集できません。ここでは、「秀丸」を使用しました。

    2. FTPソフト
      パーミッションが出来るもの。ここでは「FFFTP」を使用しました。

    3. カウンターCGIのフリーウェア
      ここでは、KENT-WEBを使用しました。

      • daycount.lzhのファイルをダウンロードし解凍する。

        daycount.cgi

        daycount.dat

        gifcat.pl

      • 次に1〜10までのカウンタ画像(GIFファイル)を2種類用意し、それぞれ"0.gif, 1.gif,....9.gif"とします。

        (GIF画像例1)

       

  3. FTP先のフォルダーを準備

    【フォルダの構成】
    
              +-- index.html ... ここにカウンタを設置するものとする
              +-- html
              +-- gif
              +-- cgi-bin [777] / daycount.cgi [755]
                     |            daycount.dat [666]
                     |            gifcat.pl    [644]
                     |
                     +-- gif1 / 0.gif
                     |          1.gif
                     |           :
                     |          9.gif
                     |
                     +-- gif2 / 0.gif
                                1.gif
                                 :
                                9.gif
    cgi-binのフォルダを宝島のサーバーに作成する。
    []内はパーミッション設定であり、FFFTPのツールソフトに属性というのがあり
    そこで上記の[]内の数字を設定する。
  4. daycount.cgiの修正

    daycount.cgiエディタ で開き、以下の個所を修正します。

     
    #!/usr/local/bin/perl宝島の場合#!/usr/bin/perl
     (プロバイダで定められたPerlへのパスを指定します)
    $ip_check = 0;
     (IPアドレスをチェックし連続カウントを防止する機能です。この機能を使用する場合は 1 とします)
     
    $lockkey = 1;
     (ファイルロック機構にsymlink()関数を使う場合は 1を、open()関数だと2とします。symlink()関数の方がロック機能が強固とされていますが、NTサーバなど、使用できないプロバイダも多く、その場合には open()関数を設定してください)

     

    # 記録ファイル
    $logfile = './daycount.dat';<---(各ページ毎に名前を変えて設定できます)

     

    #-------------------#
    # カウンタ出力処理 #
    #-------------------#
    ## とほほさんの wwwcounterを参考にさせていただきました
    sub count_view {
    $count += 0;<---(100からカウントを始めたい場合は100)
  5. Htmlに書き込み(index.htmlに書き込む場合)
    999/9/17から<img src="http://www.tamano.or.jp/usr/okabe/cgi-bin/daycount_cgi.cgi?gif">人目の訪問者です。  
    本日は<img src="http://www.tamano.or.jp/usr/okabe/cgi-bin/daycount_cgi.cgi?today">番目のアクセスです。 
    また昨日は<img src="http://www.tamano.or.jp/usr/okabe/cgi-bin/daycount_cgi.cgi?yes">人のご来場者がありました

  6.