まさはる's Weblog

まさはる's Weblog
Macintoshとオーディオの話題

2007年9月23日

PHPを使ってみました(その2)

Category : Web 2 / Posted at 2007年9月23日 15:29

 海の向こうではThe Sims 2の新しい拡張パックのBon Voyageが発売され、追加された和風のアイテムや建材を使った住宅がModTheSims2にアップされ始めて羨ましい限りですが、毎度のことながらMac版は現在のところ音沙汰なしw。まぁ、バグが取れた頃に発売されるので良い面もあるんですけど...。

 話が逸れましたが、肥大化した「The Sims 2 Download」のページを、PHPSQLiteを使って改良しようという話題の続きで、今回はWebで表示するスクリプトの作成の話です。

1)表示スクリプトの作成
 SQLiteからデータを取得してリスト表示や個別表示をするPHPスクリプトは簡単なのですが、オープンにすることからユーザーの入力を受け付ける箇所は注意が必要です。うちの表示スクリプトは、まずリスト表示をして、その中のどれかを押すと詳細を記した個別表示に切り替わるという一般的なもので、ユーザーから入力を受け付ける箇所は一見無さそうなのですが...。

落とし穴
ユーザーから入力可能な箇所がこんなところに...

 上の図の75という値は、オートグローバル変数の $_GET['id'] に入っていますが、アドレスバーで他の文字を入力すればそれがそのまま入るため、query()に渡す前に変なデータは棄却する必要があります。このスクリプトの場合は、intval()とstrval()を使って整数の文字列にしてから元の値と比較し、良ければ値のデータの有無を確認してから処理するようにしています。


...
if ($_GET['id'] == strval(intval($_GET['id']))) {
	// ここは true の処理
} else {
	// ここは false の処理
}
...

 とりあえずできた。まだ使い勝手が悪いので改良が必要ですが晒しておきます。

2)PHPを使ってみて
 PHPはhtml内にそのまま書ける、オートグローバル変数が便利、関数が豊富など、かなり使い勝手の良いプログラム言語だと思います。よって、最近のWebサイトの多くがPHPで作られているのも頷けます。あえて不満を述べるなら、Perlに比べると自由度が少ないというか、遊びがなく作っていて面白みがないっていうか...。まぁ、パズルを解くというよりは作業をするという感じで、仕事で使うには向いていると思います。
 あと、PHPに限った話ではありませんが、スクリプトのソースはhtml、PHP、SQLの言語が混ざっており、それぞれ書き方が違うためソースは非常に見にくくなってしまいます。これにJava Scriptでも加えようものならもう大変w。もうちょっとどうにかならないものですかね。

このページのトップに戻る