|
「どうして普通のHTMLで買い物かごが動かないの?」って、考えたことはありますか?
なぜ買い物かごがHTMLで動かないのか!
「HTMLは買い物かごを動かす機能を持っていないから」が答えです。
あたりまえやないけ!と突っ込まないように。だってその通りなんですから。
では、もっと具体的に・・・
■CGIとは
CGIはホームページ上での何かしらの自動処理を実現するための仕組みです。
正確には、ホームページに自動処理を施すために、Perlなどのプログラミング言語で書かれた、プログラムの一種です。
プログラムですから、
if ( $in{'data'} eq '12358') {
print "大当たりぃぃ!\n";
} else {
print "残念でした。はずれです。\n";
}
|
みたいなのが書かれています。上の例は、こんなときに使われます。
ユーザーが12358を入力したら「大当たりぃぃ!」と書かれたページを表示し、違ったら、「残念でした。はずれです。」と書かれたページを表示します。
もちろん、これだけでは動きませんが、HTMLは作られたページを表示するだけであるのに対し、CGIはユーザーのアクション(ここではテキストボックスに数字を入力し、試すボタンをクリックする)の結果によって、あらかじめ指定した複数のページ(正確には文字列)から一定のページを表示できるのです。
このほかにも、計算をさせたり、メールを送らせたりなど、さまざまな自動処理を行なうことができます。
■CGIが動く仕組み
では、どのようにしてユーザーが入力した数字をCGIに判断させるのでしょうか?
上のフォームのタグを見てみましょう。
<form method="POST" action="./kuji.cgi">
<input type="text" name="num">
<input type="submit" value="試す">
</form>
となっています。ご存知のフォームタグが使われていますね。
- フォームタグを使って、ユーザーが入力した数字をkuji.cgiへ送ります。
- データを受け取ったkuji.cgiはユーザーの入力した数字を読み取り、12358だったら「大当たりぃぃ!」と言う文字を、違ったら「残念でした。はずれです。」と言う文字を書きこみます。
このように、フォームを使うことで、ユーザーのアクションをCGIに渡すことができるのです。詳細は「フォームとCGI」で説明しています。
メール送信スクリプトや買い物かごなど、CGIスクリプト単独で動作しないものを設置するためには、フォームタグを理解する必要があることがわかったでしょう。
■データやフォルダ
掲示板を設置するとき、ほとんどの場合「data.dat」をパーミッション666に指定してアップロードします。等と指定されると思います。この「data.dat」は何に使われるのでしょうか?
「data.dat」は、掲示板の書き込みデータを保存するためのファイルです。
ふだん使っているパソコンでファイルを保存するのと同じです。
その他、空の「tmp」フォルダをパーミッションを777にしてアップロードしてください」等の指示もあるかもしれません。
これらのファイルやフォルダ(一般的にはディレクトリという)に、ユーザの書込みを記録したり、削除したりすることで掲示板として動作できるのです。
詳細は、「データ記録ファイル」で説明しています。
■必要なプログラム
CGIは単独で動作することもありますが、特定のモジュールと言われるスクリプトやプログラムを必要とすることがあります。
これらがないと、動かなかったりするんですよね。代表的なものに、
*jcode.pl
*cgi-lib.pl
*UUENCODE
*sendmail
等があります。「jcode.pl」と「cgi-lib.pl」はそのままアップロードすれば(パーミッション設定も原則不要)OKです。
UUENCODEは添付ファイルを送信する時に必要ですが、これはプロバイダ側が用意していないと使えません。telnetを使えるプロバイダの場合は、自分でプログラムをダウンロードしてインストールする事で使えるようになる場合もあります。
インストールといっても、Windowsのようにアイコンをダブルクリックして・・・というわけには行きませんので、かなりの知識が必要です。ここでは説明しません。
sendmailは、メールを送受信するためのプログラムです。一部のプロバイダでは、CGIでsendmailを使えないことがあります。
詳細は、「Sendmail」で説明しています。
これらの基本をしっかり覚えてください。そうすれば、人に頼る事なく、自由に設置することが出来る事でしょう。
|