Perl/ActivePerl For UNIX/Linux/Windows
 
TryThe Homepage
初めてのCGI
CGI 研究室
ダイナミックCGI
ダウンロード
サービス
サーバ構築(Windows)
データベースアクセス
有料サービス
FAQ
お問い合わせ
このページを印刷
CGIの基礎知識
  CGIとは
一般的なホームページは、HTMLと言われる装飾機能を持った簡易言語で書かれています。 現在では、ほとんどの方々がホームページ作成ソフトを使用してデザインし、 簡単に作成できますのでHTMLを学習する必要もなくなりました。 HTMLドキュメントは、制作者がサーバにアップロードすれば、変更するまで毎日、毎回、同じ物を表示し続けます。 一方、CGIで作成されたページは、制作者はもちろん、訪問者が更新したり、 訪問者のリクエストに応えて毎回違ったページを表示させる事もできます。 この事からインタラクティブ(双方向性)なWEBページと呼ばれているのです。 インタラクティブなホームページは、Javaスクリプトでも作成することはできますが、 CGIがサーバ上で動作するのに対し、Javaスクリプトは、 すべてのコードをダウンロードしてクライアントマシン(皆さんのパソコン)で動作する為、大きなプログラムは非常に重く、 実用的ではありません。 さらに、何と言ってもクライアントで動作すると言うことはサーバを操作する事が絶対にできないことです。 アクセスカウンタや、掲示板が訪問者のクライアントで動作しても何の約にも立ちません。 1つの掲示板を多くの方にご利用いただいてこそ掲示板なのです。 Javaスクリプトには、Javaスクリプトにしかできない事を受け持ってもらって、 インタラクティブなページ作りはCGIに行ってもらいましょう。 Javaスクリプトにしかできないことは、ブラウザを制御する事ですから、CGIがJavaスクリプトを生成する方法もご紹介します。
  CGIでできること
あなたの作成したページは、サーバコンピュータに保存され管理されています。 このことにより、あなたのパソコンの電源が切られていても、アクセスできるわけです。 サーバは、24時間電源が切られることはないのですから。 CGIを使用しているページでは、このような時でも、ユーザーの質問に答えたり、 来客を接待することができるのです。
  • アクセスカウンターをつける
    あなたのホームページを訪れた人数を数えることができます。

  • 来客者名簿
    あなたのホームページを訪れたお客様の名簿を自動的に作成できます。

  • Web検索
    他のホームページを条件により検索することができます。

  • パスワードによるアクセス制限
    メンバー以外の訪問者を拒否することができます。

  • Webチャット
    当時にアクセスしているお客様同士でお話ができます。

  • BBS掲示板
    あなたのページを訪れたお客様が自由に読み書きできる掲示板を設置できます。

  • 注文書
    あなたのページで商品の注文を受けることができます。

  • 呼び出し先の確認
    あなたのホームページが呼び出されたアドレスを知ることができます。 プロバイダの会員のページはこの機能を使って会員を判別しているのです。

  • ブラウザの確認
    あなたのホームページを訪れたお客様が今使用しているブラウザを知ることができます。 この機能で、ブラウザ専用の機能を使ったページが作成できます。 たとえば、「このページは、ネットスケープ4.0以上、インターネットエクスプローラ4.0以上でご覧ください。」 などというメッセージを表示することなく、「あなたのブラウザでは、このページの全機能をご覧いただけません」 というメッセージを表示することもできるのです。

  • 刻々と変化するページ
    呼び出した人、呼び出した条件、呼び出した時刻などでいつも変化するインターラクティブなページが作成できます。

    この他にもCGIでできないことはないと言われるぐらいさまざまなことが可能になります。
  スクリプト
当サイトでご紹介するCGIは、すべてPerl(パールと読む)で書かれています。 CGIスクリプトの1行目には必ずCGIスクリプトが実行できるパスを指定する必要があります。 #!/user/local/bin/perl      perl言語でスクリプトを記述する場合 一般的なプロバイダでは、このパスで実行できるはずですが、実行できない場合は、加入しているプロバイダにお問い合わせください。 また、CGIをまったく許可していないプロバイダもあるようです。
私は現在までにN88-BASICに始まり、,COBOL,FORTRUN,C,PASCALなどほとんどの言語を勉強してまいりましたが、 perlはその中でも、もっとも高級で、やさしい言語だと思っています。 CGIは、Cで記述することもできますが、コンパイルが必要だし、プロバイダによっては、 Telnet(コマンドプロンプト)を許可していません。perlはコンパイルする必要がないので、コマンドプロンプトも必要ありません。 コマンドプロンプトが必要ないということは、難しいUnixのコマンドを覚える必要もないのです。
  拡張子
ご利用のサーバで、CGIスクリプトの拡張子が(.cgi、.plなど)設定されている場合は 「******.cgi」で実行できますが、デフォルト設定されていないサーバでは、個々で拡張子を設定する必要があります。 拡張子の設定は、テキストエディターで、

Addtype application/x-httpd-cgi.cgi

という1行を入力し、「.htaccess」というファイル名で保存します。 このファイルは、「.」で始まる特殊なファイルで、 拡張子が.cgiのファイルは、CGIスクリプトですよという意味です。 作成した「.htaccess」をFTPソフトなどで、あなたのアドレスのpublic_htmlディレクトリにアップロードします。 転送モードは、アスキー形式です。 これであなたのアドレスのpublic_html以下のディレクトリに置かれたCGIスクリプトは実行可能です。
  パーミッション
ほとんどのサーバコンピュータはUnixというOSで動作しており、 Unixは、Windowsなどのパソコン用OSとは違って、複数のユーザーからアクセスされることを前提に設計されています。 他のユーザーからは読み込み専用とか、読み書き不可能、実行許可などが、 それぞれのファイルに対して設定することができます。 CGIスクリプトは、実行ファイルですので、「755」に設定しなければ実行はできません。 このアクセス権「パーミッション」についてはCGIの設置と起動で詳しく説明します。
  CGIを呼び出すHTMLドキュメント
<FORM METHOD=GET ACTION="abcd.cgi">
<INPUT TYPE="text" NAME="name">
<INPUT TYPE="submit" VALUE="QUERY">
</FORM>

これで[QUERY]ボタンを押すとabcd.cgiが呼び出され実行されます。 これ以外にも、Javaを使用する方法や、
http://www.tryhp.net/cgi-bin/abcd.cgi
のように、ブラウザのアドレスバーに直接CGIのアドレスを指定して呼び出すこともできます。
  CGIは命取り
といってもあなたの命を盗る訳ではありませんが、前述のとおり、CGIは、あなたのパソコンではなく、 サーバで実行されます。十分バグ取り(エラー削除)されていないスクリプトを実行したり、 あいまいな知識で作成したスクリプトを実行させるとサーバがハングアップ(暴走)することもありえます。 あなたは、あなたの加入しているプロバイダの数万、数十万の会員に迷惑をかけることになるのです。責任が取れますか?。
完成していないスクリプトをテストするなどはもってのほかです。
Copyright 2004 Terra. All rights reserved. No reproduction or republication without written