Step1 : 表示(Html) [戻る]
● はじめに
CGIを開発する・・・で何をするのか?
1番重要なことである。大抵データ入力をさせ、データを編集・表示するものだろうと思う。
まず、何が必要か?・・・「CGIから内容(データ)を表示する。」だと思う。
まぁ表示しないと意味を感じないだろうしね。
目に見えないもの組むほどやる気は起こらんだろうし。
と言うことで、ここでは「CGIからHTMLを作成してブラウザに表示させる」ことを
説明していく。
● サンプルソース
#!/usr/local/bin/perl
#----------------------
# Step1 : 表示(HTML)
#----------------------
printf("Content-type: text/html\n\n");
printf("<HTML>\n");
printf("<HEAD>\n");
printf("<TITLE>Step1 : 表示(HTML)</TITLE>\n");
printf("</HEAD>\n");
printf("<BODY>\n");
printf("これはサンプルです。\n");
printf("</BODY>\n");
printf("</HTML>\n");
上記ソースをコピーするか、自分で打ってファイルを作成して下さい。
ファイル名は適当なもので良い。「step01.cgi」とかしておけば、
今後のソースをシーケンスで並べられるよ。
● ソースの実行
ブラウザのアドレスにURLを直打します。「http://アドレス/step01.cgi」
実行結果は、ブラウザに「これはサンプルです。」が表示されればOKです。
● 解説
1行目
#!/usr/local/bin/perl
となっている。これはサーバのPerlのパスを指定する。必ず1行目の先頭に記述すること!
プロバイダによってパスは変わるので確認してくれ。(大抵はこれでいいハズ)
BIGLOBEだと「#!/usr/mesh/bin/perl」とかね。
2〜4行目
コメントである。Perlでは、「#」以降はコメントと認識される。
※1行目のパスは決まりらしいので、従っている。だから従ってくれ。
5行目
ここがポイントである。
printf("Content-type: text/html\n\n");
の「Content-type: text/html\n\n」が重要!
これはヘッダー情報で、ブラウザに「これからHTML形式の情報を渡しますよ」と
知らせるのである。それ以降の文字列をHTML形式の情報としてブラウザは表示をする。
※「\n」は何か?これは改行を意味している。
HTMLタグを記述するときに、見易くする為に改行するでしょ?それと同じさ。
1つ記述すれば、1回改行される。
ここで注意!このヘッダー情報とHTML情報の間には空行を挿入しなければならない。
「\n\n」となっているのは、その為である。
6〜最終行
ここで、HTML情報を作成している。
見れば一目瞭然、「printf("・・・");」の中に
HTMLタグが記述されている。
※「printf("・・・");」とは何か?
これは、「・・・」の内容(文字列)を出力しろ!って関数(命令)である。
この場合は、ブラウザに出力しろ!ってことだね。OK?
ということにより、「printf関数」を使用して、HTMLタグを発行しているのだ。
● サンプルソース2(これは各自で実行&テスト&解析をしてくれ)
#!/usr/local/bin/perl
#----------------------
# Step1-1 : 表示(HTML)応用1
#----------------------
print "Content-type: text/html\n\n";
print "<HTML>\n";
print "<HEAD>\n";
print "<TITLE>Step1 : 表示(HTML)</TITLE>\n";
print "</HEAD>\n";
print "<BODY>\n";
print "これはサンプルです。\n";
print "</BODY>\n";
print "</HTML>\n";
もしかしなくても、「printf」より「print」の方が良く使用されているハズ。
#!/usr/local/bin/perl
#----------------------
# Step1-2 : 表示(HTML)応用2
#----------------------
print "Content-type: text/html\n\n";
print <<_HTML_;
<HTML>
<HEAD>
<TITLE>Step1 : 表示(HTML)</TITLE>
</HEAD>
<BODY>
これはサンプルです。
</BODY>
</HTML>
_HTML_
|