CGIエラー対策、陥りやすい罠
CGIを使う上で、間違えやすいこと、エラー対策を紹介します。
文字が化ける
CGIでHTMLを出力する際に、一部の漢字が文字化けする場合があります。
その場合、文字化けする漢字の後ろに「\」を入れます。
よく化ける文字
「ソ」、「表」、「能」、「予」など
サンプル
元「表計算などのビジネスソフト」
↓
修正後「表\計算などのビジネスソ\フト」
変数名の注意
Perlでは数字から始まる変数名は使えない。
「$111」、「$6mozi」、「$3_sco」
これらはすべてエラー。
ヘッダーエラー出る
CGIでお決まりの一行目に書く、
#!/usr/bin/perl
しかし、これだけでエラーが出る場合がある。
改行コードの問題で、UNIXマシンでCGIを動かした際、Windowsで書いたソースにエラーが出るときがあるのだ。
Windowsの改行コードは「\r\n」
Unixの改行コードは「\n」
なので、「\r」が余計なヘッダだと間違われ、エラーになる場合がある。
もし、エラーが出た場合、一行目を以下のように修正する
#!/usr/bin/perl --
マイナスをスペースを空けて2個入れる
ヒアドキュメントのエラー
ヒアドキュメントというのは、print文を何行も書くのがめんどくさいときに便利な機能です。
例えば、
print <<"END_OF_HEADER";
<html>
<head>
<title>タイトル</title>
END_OF_HEADER
というのと
print "<html>\n";
print "<head>\n";
print "<title>タイトル</title>\n";
は、同じになります。
便利な機能なのですが、終端文字列の前後に空白文字などを入れるとエラーになります。
エラーの例
print <<"END_OF_HEADER";
<html>
<head>
<title>タイトル</title>
END_OF_HEADER