2008/02/07: PHP、MySQLでシステムを組むときのチェックリスト
以下、メモです。
今後、項目数は増減するかもしれません。
・場合によっては入力文字数の制限をかけた方が良い
テスト方法:
500文字ぐらいのテキストを入力してみる
・SQLインジェクション
$str = str_replace( "'", "''", $str );
とするなど、'をエスケープする。
テスト方法:
' OR 't' = 't
と入力してみる。
・MySQLで、LIKE '%HOGE%'のとき検索語に、%や_が含まれる場合
$str = str_replace( "%", "\%", $str );
$str = str_replace( "_", "\_", $str );
とするなど、エスケープする。
テスト方法:
%
と入力してみる。
・"を入力
・"'"'"'"'"などと入力
・\\\\\\\\\\などを入力
・______________などを入力
・半角スペースの連打
・全角スペースの連打
今後、項目数は増減するかもしれません。
・場合によっては入力文字数の制限をかけた方が良い
テスト方法:
500文字ぐらいのテキストを入力してみる
・SQLインジェクション
$str = str_replace( "'", "''", $str );
とするなど、'をエスケープする。
テスト方法:
' OR 't' = 't
と入力してみる。
・MySQLで、LIKE '%HOGE%'のとき検索語に、%や_が含まれる場合
$str = str_replace( "%", "\%", $str );
$str = str_replace( "_", "\_", $str );
とするなど、エスケープする。
テスト方法:
%
と入力してみる。
・"を入力
・"'"'"'"'"などと入力
・\\\\\\\\\\などを入力
・______________などを入力
・半角スペースの連打
・全角スペースの連打
2008/02/06: プログラミングのポイント
最近、プログラミングについて人に説明することが多いので、
自分なりの、メモ。
間違ったことも書いてるかもしれませんが。
■プログラムとは
プログラムとは言語である。
英語を覚えるよりも実は簡単。
語彙も少ないし、文法もシンプルだから。
if( name == "mio")
{
say("こんにちわ");
}
訳
もしも、名前が mio だったら、
「こんにちわ」 と言います。
みたいな感じ。
・どの言語も割りと似ている
どの言語も基本的な構文は、似ているから、
ひとつの言語をマスターすると、
他の言語の習得も早くなる。
・プログラムが良いところ
繰り返しの処理が、簡単にできる。例え1万回でも。
一瞬で処理できる。
書かれたとおり正確に動く。
ユーザの入力に対して、コンピュータを反応させられる。
色んな情報をつなげたり、加工したりして表示できる。
単に表層的なことではなく、仕組みや構造自体を作ることができる。
■どうやって学ぶか
・プログラムは頭ではなく、体で覚える
・とにかく書く
・何でもいいから書いてみる
・最初は小さい目標を達成してみる
最初は、やってみたいことをやってみるのも良い。
面倒なことは後で、調べれば良い。
最初は楽しむことが大事。
とりあえず、何か動かしてみたいとか、
ブログが作ってみたいとか、
マッシュアップしてみたいとか。
自分が楽しめる目標を設定する。
あとは、最初は面倒でもコピペをせずに、
手打ちで時間かけてでも打っていったほうがいい。
体で覚えましょう。
で、徐々にでもいいので、
if、for、switch、が普通に書けるにする。
■良いプログラムとは
・短い
・見た目が綺麗
・他人が見ても分かりやすい
・システムやコンテンツの修正や更新に柔軟に対応できる
・適切なコメント(プログラムの説明文)が書いてある
■シンプルなプログラムとは
・似たようなブロックを、使いまわせるように、モジュール化している。
・変数の名前にルールがある
・意味や、機能ごとに、コードがまとまっている
参考サイト
プログラミングのヒント
■オブジェクト指向
これは、覚えると便利だし。
面白いし、分かりやすいので、一度勉強したほうが良い。
モジュールのパワーアップ版みたいな感じですな。
自分なりの、メモ。
間違ったことも書いてるかもしれませんが。
■プログラムとは
プログラムとは言語である。
英語を覚えるよりも実は簡単。
語彙も少ないし、文法もシンプルだから。
if( name == "mio")
{
say("こんにちわ");
}
訳
もしも、名前が mio だったら、
「こんにちわ」 と言います。
みたいな感じ。
・どの言語も割りと似ている
どの言語も基本的な構文は、似ているから、
ひとつの言語をマスターすると、
他の言語の習得も早くなる。
・プログラムが良いところ
繰り返しの処理が、簡単にできる。例え1万回でも。
一瞬で処理できる。
書かれたとおり正確に動く。
ユーザの入力に対して、コンピュータを反応させられる。
色んな情報をつなげたり、加工したりして表示できる。
単に表層的なことではなく、仕組みや構造自体を作ることができる。
■どうやって学ぶか
・プログラムは頭ではなく、体で覚える
・とにかく書く
・何でもいいから書いてみる
・最初は小さい目標を達成してみる
最初は、やってみたいことをやってみるのも良い。
面倒なことは後で、調べれば良い。
最初は楽しむことが大事。
とりあえず、何か動かしてみたいとか、
ブログが作ってみたいとか、
マッシュアップしてみたいとか。
自分が楽しめる目標を設定する。
あとは、最初は面倒でもコピペをせずに、
手打ちで時間かけてでも打っていったほうがいい。
体で覚えましょう。
で、徐々にでもいいので、
if、for、switch、が普通に書けるにする。
■良いプログラムとは
・短い
・見た目が綺麗
・他人が見ても分かりやすい
・システムやコンテンツの修正や更新に柔軟に対応できる
・適切なコメント(プログラムの説明文)が書いてある
■シンプルなプログラムとは
・似たようなブロックを、使いまわせるように、モジュール化している。
・変数の名前にルールがある
・意味や、機能ごとに、コードがまとまっている
参考サイト
プログラミングのヒント
■オブジェクト指向
これは、覚えると便利だし。
面白いし、分かりやすいので、一度勉強したほうが良い。
モジュールのパワーアップ版みたいな感じですな。
2008/02/06: Flashのフレームワーク
Flashサイトを効率的に作るためにフレームワークというやつを試してみようと思い立ちました。
いろいろ見て回って、なんとなくよさそうなのがこれ。
CASA Framework
trick7のteraさんとか、いろんなひとがお勧めしているのでリソースも結構あるし、入門にはもってこいかなと。
trick7のteraさんは、XPath4AS2を使うよりも、CASAの中のXmlLoad クラスと、XmlUtil クラスを使った方がいいとおっしゃっていますし、他にもマウスホイール系とか、カスタムイベントとか楽にできそうです。XPath4AS2は、重さを感じたことはなかったけど(そんなにデータ量ないのしかつかってなかったので)、確かにちょっと面倒くさかったしいいかもです。
その他にも、Flash用のフレームワークはいっぱいあって、例えばAdobeのサイトではこんなのが取り上げられてました。
Progression
チュートリアル
AS3なんですが。フレームワーク使って気軽にAS3に触れれば、使えるようになって来るんでしょうか。
とにかく、フレームワーク便利そうです。先人の知恵を使うに越したことはありません。
ついでに他にも、
ARP
Pixlib
Cairngorm
これらは、karate systemさんのとこに紹介されていました。
いろいろあって迷うけど、CASAはAS3にも対応予定らしいのでこれ使います。
あとは、FuseKitも使いこなせれば、だいぶ開発効率が上がる予感。あとは予感を実感にしたい。
それではまた。
いろいろ見て回って、なんとなくよさそうなのがこれ。
CASA Framework
trick7のteraさんとか、いろんなひとがお勧めしているのでリソースも結構あるし、入門にはもってこいかなと。
trick7のteraさんは、XPath4AS2を使うよりも、CASAの中のXmlLoad クラスと、XmlUtil クラスを使った方がいいとおっしゃっていますし、他にもマウスホイール系とか、カスタムイベントとか楽にできそうです。XPath4AS2は、重さを感じたことはなかったけど(そんなにデータ量ないのしかつかってなかったので)、確かにちょっと面倒くさかったしいいかもです。
その他にも、Flash用のフレームワークはいっぱいあって、例えばAdobeのサイトではこんなのが取り上げられてました。
Progression
チュートリアル
AS3なんですが。フレームワーク使って気軽にAS3に触れれば、使えるようになって来るんでしょうか。
とにかく、フレームワーク便利そうです。先人の知恵を使うに越したことはありません。
ついでに他にも、
ARP
Pixlib
Cairngorm
これらは、karate systemさんのとこに紹介されていました。
いろいろあって迷うけど、CASAはAS3にも対応予定らしいのでこれ使います。
あとは、FuseKitも使いこなせれば、だいぶ開発効率が上がる予感。あとは予感を実感にしたい。
それではまた。