|
CGIでは投稿フォームや投稿記事の表示、エラー画面の表示など色々な画面をブラウザに出力しますので<body>タグまでをサブルーチン化しておくと良いでしょう。
|
|
sub header {
print "Content-type: text/html\n";
if ($set_cookie eq 'on') { &set_cookie; }
print "\n";
print <<"EOD";
<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-type" content="text/html; charset=Shift_JIS" />
<title>ヘッダ出力</title>
<style type="text/css">
<!--
a:link {text-decoration:none; color:#3030c0}
a:visited {text-decoration:none; color:#3030c0}
a:active {text-decoration:underline; color:#f00000}
a:hover {text-decoration:underline; color:#f00000}
-->
</style>
</head>
<body bgcolor="#ffffff" text="#000000">
EOD
}
|
|
HTMLデータを出力するのですからMIMEタイプをtext/htmlとします。
クッキーを保存する場合は変数$set_cookieに「on」を格納して「set_cookieサブルーチン」を呼び出しクッキー保存(クッキーヘッダ出力)の処理をします。
最後に\nの出力で空行を打ちMIMEヘッダの終わりをPerl処理系に伝えます。
クッキーヘッダ出力をする際はこのようにMIMEヘッダ出力と空行出力との間で行うのが正規の書式です。
次にHTMLの<body>タグまでをヒアドキュメントを使って出力します。
当サイトが配布するCGIはシフトJISコードで保存していますので<meta>タグでシフトJISコードを宣言します。
これは<title>タグより前に宣言するようにしましょう。
charsetには他に「EUC-JP」や「ISO-2022-JP」等が指定出来ます。
スタイルシートも設定しています。
a:hoverはリンクを貼った文字にマウスポインタが重なった時に適用されるスタイルです。
|
|
□更新履歴
2007.04.22 全体的に内容を見直し
|
|
|