| 序章 |
基本知識の確認 |
|
| CGI 動作権限とパーミッション |
| Perl のパス |
| FTP 転送モード |
| コラム 粋な Perl 作法 (1) |
|
| 第壱章 |
すべての基本はフォームにあり |
|
| 壱ノ壱 |
フォームについて |
|
概要 |
|
URL エンコードとデコードについて |
| 壱ノ弐 |
サーバでデータを受け取るポイント |
|
概要 |
|
送信メソッドを区別する |
|
GET で送信されたデータを受け取るには? |
|
POST で送信されたデータを受け取るには? |
| 壱ノ参 |
CGI モジュールでデータを安全に受け取る |
|
概要 |
|
CGI モジュールを利用するための準備 |
|
フォームデータを変数に格納する |
|
複数選択フォームデータを配列に格納する |
| コラム |
粋な Perl 作法 (2) |
|
| 第弐章 |
文字列操作をとことん極める |
|
| 弐ノ壱 |
文字コードを理解する |
|
はじめに |
|
Jcode.pm をサーバに設置する |
|
Jcode.pm で文字コード変換 |
| コラム |
粋な Perl 作法 (3) |
| 弐ノ弐 |
不正文字列を賢くチェックする |
|
概要 |
|
半角数字だけを許可する |
|
半角アルファベットだけを許可する |
|
ASCII 文字だけを許可する |
|
全角英数字だけを許可する |
|
ひらがなだけを許可する |
|
全角カタカナだけを許可する |
|
郵便番号形式チェック |
|
電話番号形式チェック |
|
メールアドレスチェック |
| 弐の参 |
さまざまな文字コードを変換するワザ |
|
全角カナから半角カナへ |
|
半角カナから全角カナへ |
|
英数字の全角/半角変換 |
|
大文字・小文字の変換 |
|
数字にカンマを挿入する |
| 弐ノ四 |
1 文字ずつに分割する |
|
日本語文字を 1 文字ずつ分割する |
|
CSV 形式から要素を取り出す |
|
| 第参章 |
CGIメールの礼儀作法 |
|
| 参ノ壱 |
メール送信の基本を極める |
|
メールヘッダー概要 |
|
メールを送信する |
|
エラーメールを受信する |
| 参ノ弐 |
正しい作法で日本語メールを送る |
|
概要 |
|
日本語のメール本文を送る |
|
Base64 エンコード |
|
日本語サブジェクトを使う |
|
日本語の差出人を使う |
| 参ノ参 |
添付ファイルの送り方 |
|
概要 |
|
マルチパートを理解する |
|
メディアタイプを理解する |
|
添付ファイルを送信する |
| コラム |
Perl が計算間違い? 〜 小数の計算は要注意 (1) 〜 |
|
| 第四章 |
ネットワークプログラミング |
|
| 四ノ壱 |
HTTP |
|
はじめに |
|
HTTP 概要 |
|
LWP モジュールを使う |
|
LWP で HTML を取得する |
|
LWP でレスポンスヘッダーを取得する |
|
ベーシック認証が設定されているページを取得する |
|
LWP モジュールが使えないサーバでの HTTP 通信 |
|
レスポンスヘッダーを取得する |
|
活用事例 〜 URL の存在チェック 〜 |
| 四ノ弐 |
POP3 |
|
はじめに |
|
Mail::POP3Client モジュールを設置しよう |
|
POP3Client モジュールの使い方 |
|
ヘッダーの分解 |
|
| 第五章 |
XML の扱い方 |
|
| 五ノ壱 |
XML の概要 |
|
XML とは |
|
Perl で XML を扱う |
| 五ノ弐 |
Amazon Web サービス |
|
Amazon Web サービスの概要 |
|
Amazon Web サービスの準備 |
|
商品を検索してみよう |
|
活用事例 〜 自分のサイトに新刊情報をリアルタイム表示 〜 |
|
| 第六章 |
ホスティングサーバ・ハック |
|
| 六ノ壱 |
サーバ情報をハックする |
|
カレントディレクトリのフルパスを調べる |
|
サーバのマシン情報、OS、バージョンを調べる |
|
CGI の実行権限を調べる |
|
コマンドパスを調べる |
| 六ノ弐 |
Perl 情報を取得する |
|
Perl のバージョンを調べる |
|
利用可能な Perl モジュールを調べる |
|
利用可能な Perl モジュールのバージョンを調べる |
| コラム |
Perl が計算間違い? 〜 小数の計算は要注意 (2) 〜 |
|
| 第七章 |
環境非依存、最強 CGI の作り方 |
|
| 七ノ壱 |
サーバ環境に依存する問題解決テクニック |
|
文字化けを回避する |
|
モジュールのロードエラーをトラップする |
|
間違っているとえらい目に遭う、Perl モジュールのサーチパス |
|
OS 間での改行コードの相違を見落としていないか? |
| 七ノ弐 |
オーバーロードを回避する 〜 メモリー節約テクニック 〜 |
|
あなどるなかれ、サーバ環境でのメモリー |
|
漫然とファイルを読み込んでいないか? |
|
使わなくなった変数は処置する 〜 undef で破棄 〜 |
|
リファレンスを活用してメモリー節約 |
| 七ノ参 |
パフォーマンス向上テクニック 〜 保守性と処理時間のバランスを考慮 〜 |
|
配列内にキーが存在するかを素早く調べる |
|
効率的なループ処理のテクニック |
|
文字列フィールドの取り出しテクニック |
|
はたしてパフォーマンスは上がったか? 〜 ベンチマークの方法 〜 |
| コラム |
データの区切り文字にはなにがよい? |
|
| 第八章 |
ホスティングサーバで行うアクセス解析 |
|
| 八ノ壱 |
どこまでわかるか?訪問者プロファイルの解析 |
|
はじめに |
|
環境変数 |
|
REMOTE_HOST が使えないサーバでホスト名を取得する |
|
OS を解析する |
|
Web ブラウザを特定する |
|
Web ブラウザの指定言語を取得する |
|
リンク元 URL を取得する |
| 八ノ弐 |
アクセス解析プログラムの活用 〜 ログから覗くビジターの素顔 〜 |
|
概要 |
|
Apache ログフォーマット |
|
ログ生成 CGI の作成 |
|
ログをビジュアルに表示するには? 〜 ツールの活用 〜 |
|
| 第九章 |
その他の重要な技法 |
|
| 九ノ壱 |
変数の局所化 |
|
概要 〜 my と local を上手に使い分ける 〜 |
|
my |
|
local |
| 九ノ弐 |
タイムアウト処理 |
|
概要 |
|
実装方法 |
| 九ノ参 |
日付・時間の処理 |
|
月末日を算出する |
|
存在する日付かどうかをチェックする |
|
休日かどうかをチェックする |
|
誕生日から現在の年齢を算出する |
| コラム |
ファイルテスト演算子の活用 (1) |
|
| 第拾章 |
堅牢なセキュリティを確保する |
|
| 拾ノ壱 |
入力値のチェックを厳密に |
|
はじめに |
|
JavaScript に頼らない |
|
OS コマンドの実行に注意 |
|
open 関数に御用心 |
|
タグを無効にする(サニタイジング) |
| 拾ノ弐 |
ホスティングサーバでのセキュリティ対策 |
|
アクセス制限は大丈夫? |
|
.htaccess によるアクセス制限 |
| 拾ノ参 |
パスワードの保護 |
|
概要 |
|
crypt 関数による暗号化と照合を使いこなす |
|
| 付録 |
| 付録ノ壱 |
Windows XP に Active Perl をインストール |
| 付録ノ弐 |
Windows XP に Apache を導入・設定 |
| 付録ノ参 |
Red Hat Linux 系での CGI 動作環境 |
|