冬は冬眠に限る。出歩くのは寒いので,引きこもっていた。大学のLinuxの授業の期末試験はCGIをLocalServerにセッティングできる力をためすというものだった。試験後CGIの勉強を兼ねて,WebサイトからCGIのオープンソースをダウンロードして,自分のパソコンでためしてみるが動かない。その原因がわからない。それでも,粘り強く1日1問ずつ問題を解決していった。初心者向けの説明に必要なことはこうなんだと言うことをまとめてみた。 |
|
1. |
require 'cgi-lib.pl'; &ReadParse(%ANS); $p = $ANS{genre};
|
で始まるCGIが動かないとき | これはフォームから送られてきたデータを連想配列ANSで受け取るパターンの書き出しコードであるが,これが有効になるには,【cgi-binディレクトリーの中にcgi-lib.plといういファイルが必用である。】Webサイトから探して,ファイルの中身を全部選択してコピーし,テキストファイルに貼り付けて,このディレクトリーにおいてやると動くのである。1年前にやったことを忘れているのだった。こんなもんです。 |
2. |
use CGI; $form = CGI->new(); $p=$form->param("genre"); |
で始まるCGIが動かないとき | これも上の3行と同じ機能を持つコードであるが,これが有効になるには,【Perlのヴァージョンを最新のものにしないといけない。】Webサイトから探して,インストールすると動くのである。そんなこと誰も言ってくれない。先生も教えてくれない。こういう配慮が専門家には欠けているのである。 |
|
3. |
|
のcgi-binフォルダーにおいてある画像を認識しないとき | 画像ファイルのパス名が正しいのに,Localhostのパスでは認識しなかった。【file://D: Apache2.2htdocscgi-bin画像ファイル名】では表示してくれるのにどうしてだろうと。これも長い時間がかかった。Linuxでは問題なく表示してくれる。public_htmlの中のcgi-binディレクトリーの中にある画像が【print "< img src='cgi-bin/画像ファイル名' >";の形で表示してくれるのにWindows では表示しない。これもLinuxのvar/www/cgi-binの中では表示しないことを確かめて,【画像をcgi-binの外に放り出すと表示するのである。】こうして,Windowsの場合もcgi-binの外に放り出して表示させることができたのある。以上専門家には何でもないことだろうが,初学者にはこれが金科玉条の知識なのである。 |