HOME | インターネット各種設定 | CGI

CGI

はじめに

CGI(Common Gateway Interface) は html(Hyper Text Markup Language) で構成されたホームページからサーバー上のプログラムを呼び出して、利 用者のデータをプログラムに渡すものです。プログラムは渡されたデータ を処理し、サーバーはプログラムからの結果をブラウザに返します。 これにより掲示板や訪問者リスト、アンケートフォームといった対話的な ホームページを作成する事が可能となります。

※Knetでは、CGI をご利用でないお客様を含めた全ての お客様に快適な環境をご提供していくため、CGI を条件付開放とさせて 頂いております。本規定に反する行為や他のお客様のご迷惑になる行為が 確認された場合、CGI のご利用をお断りする事がございます。

利用にあたってのご注意

利用の制限等

登録本数の制限等

  Knetでは、CGI をご利用でないお客様を含めた全てのお客様に快適な環境をご提供していくため、ご登録頂ける CGI プログラム の本数を制限させて頂いております。
WWW サーバーへ登録できる本数・・・・・・20 本まで
この本数は、管理者領域へ登録した個数でカウント致します。従いまして jcode.pl や cgi-lib.pl 等をお客様がご用意された場合には、カウント対 象となります。ただし、お客様のディレクトリ内に存在するデータファイ ルやログファイルはカウント対象ではありません。
万一、20 本を超えて登録が必要な場合には、別に用意させていただいた無保証型サー バーへ登録をお願い致します。20 本を超える WWW サーバー(保証型サー バー)への登録ご希望の際は、1 本あたり 500 円/(月額)を申し受けます。 無保証型サーバーをご利用の場合、別途費用は発生致しません。無保証型 サーバーに関するご案内は、関連ホームページをご参照下さい。

お客様のCGIが、弊社WWWサーバーに過度の負荷をかけている場合にはW3サーバーに移行してもらうことがございます。また、強制的に撤去させていただく場合もございますので何卒ご了承の程お願い致します。

無保証型サーバー

20本以内のCGIプログラムは従来通り、そのままご利用頂けますが、21本 以上のCGIプログラムの利用については、次のいずれかの方法に てご利用頂くこととさせて頂きます。

※尚、「保証型」と「無保証型」の違いは、バックアップを取るなどサーバーの環境について保証を受けられるかどうかの違いです。従いまして、無保証型のサーバーは無償でご使用頂けますが、弊社サポート対象外とさせ て頂いております。

→無保証型サーバー

ご利用の手順

準備

CGI登録依頼

CGI の登録依頼は下記の手順にてお願い致します。

CGI 環境パス

1) Perl の指定

#!/usr/local/bin/perl

2) ライブラリの指定

2-1)日本語変換ライブラリ(jcode.pl)
・弊社の物を利用する場合

require '../cgi-lib/jcode.pl';

・お客様が用意される場合

require './jcode.pl';

2-2)入力データ処理ライブラリ
・弊社の物を利用する場合

require '../cgi-lib/cgi-lib.pl';

・お客様が用意される場合

require './cgi-lib.pl';

2-3) Sendmail の指定

/usr/lib/sendmail

3) CGI の起動パス例

・直接起動する場合

http://www.ksky.ne.jp/cgi-bin/users/アカウント/***.cgi

 または

http://www.knet.ne.jp/cgi-bin/users/アカウント/***.cgi

・html から指定する

<form method="***" action="/cgi-bin/users/アカウント/***.cgi">

・プログラムから他のプログラムを指定する

"./***.cgi";

4) プログラムの中で画像ファイルを指定する場合

<img src="http://www.ksky.ne.jp/~アカウント/***.gif">

 または

<img src="http://www.knet.ne.jp/~アカウント/***.gif">

5) データ(***.dat)やログ(***.log)、テキストファイル(***.txt)の指定

例:データファイル(***.dat)では、

・ダイアルアップ接続のお客様の場合

"/dialup/アカウント/cgi-bin/***.dat";

・ADSL接続のお客様
 【KnetSuperADSLの場合】

"/adsl/アカウント/cgi-bin/***.dat";

 【フレッツADSLの場合】

"/fadsl/アカウント/cgi-bin/***.dat";

・Bフレッツ接続のお客様の場合

"/bflets/アカウント/cgi-bin/***.dat";

・CATV接続のお客様の場合

"/catv/アカウント/cgi-bin/***.dat";

デバッグの手引き

1) CGI プログラムの中で変数をセットする行や print 文の行は注意が必 要です。

誤:$title = "Welcome to "Test CGI" Program";
誤:print "<img src="http://..(中略)..">\n";
誤:print "<body bgcolor="#ffffff">\n";

これら構文は代表的な誤りの例です。プログラムは、途中にある「"」 を解釈して $title = "Welcome to " までを変数と理解します。その為 残りの Program"; が理解できずにエラーを返します。また print 文でも途中の「"」までを print 文と解釈しますので、残り の部分を理解できずにエラーを返します。この様な場合は「\」を直前に付ける事で打ち消す事が出来ます。

正:$title = "Welcome to \"Test CGI\" Program";
正:print "<img src=\"http://..(中略)..\">\n";
正:print "<body bgcolor=\"#ffffff\">\n";

打ち消された部分は、文字「"」として認識されますので正しく動作する 様になります。

2) メールアドレス「@」の利用には注意が必要です。

誤:$mailto = "example@knet.ad.jp";

これは代表的な誤りの例です。プログラムは「@」を配列として認識しま す。その為、配列を理解できずにエラーを返します。
この様な場合は「\」を直前に付ける事で打ち消す事が出来ます。

正:$mailto = "example\@knet.ad.jp";
または
正:$mailto = 'example@knet.ad.jp';  …変数の展開をしない場合はシングルクォートで囲む

打ち消された部分は、文字「@」として認識されますので正しく動作する 様になります。

3) 文法のチェック

UNIXやLinuxサーバーなどのテスト環境がある場合、またはWindowsの場合でも、Perlがインストールされた環境があれば、サーバーにアップロードする前に、プログラムの文法に誤りがないかをチェックする事ができます。

Windows環境の場合、コマンドプロンプトにて、次のように操作します。

C:\………(略)……… >cd [CGIファイルのあるディレクトリ] [Enter]
              ↑↑↑ CGIファイルの場所に移動します。
 
C:\………(略)……… >perl -cw [CGIファイル名] [Enter]
              ↑↑↑ 「perl -cw 」の後にファイル名を指定します。
 
[CGIファイル名]syntax OK
        ↑↑↑ 結果が出力されます。

エラー出力がなくなり、「syntax OK」と表示されるまで、修正・チェックを繰り返し行ってください。