PHP+SQLite実践サンプルブック

  • 19人登録
  • 3.00評価
    • (0)
    • (2)
    • (6)
    • (0)
    • (1)
  • 3レビュー
著者 : 豊崎直也
  • ソシム (2005年7月発売)
  • Amazon.co.jp ・本 (239ページ)
  • / ISBN・EAN: 9784883374298

PHP+SQLite実践サンプルブックの感想・レビュー・書評

  • 題材をSQLiteに絞って書いていることは評価できますが,PHPのコーディングとしては数年前のものです.
    一番の問題は脆弱性があるサンプルが存在することです.それも含めこの書籍は下記の問題があるため,別の書籍での勉強を強くお勧めします.

    ■E_NOTICEの警告が出るコードが平然と書かれている

    例えば下記のようなコード

    $foo = $_POST[ "foo"]

    これは前のページから「foo」をポストされなければE_NOTICEが発生する.
    サンプルの正常系の処理では出てこないのかもしれないが,「鵜呑みにする」ことに注意し,そういうコードを例題にすることは控えるべき.

    ■ショートタグを使っている

    <? foo() ?>

    まだそういう本出てきますか.ハァ.

    ■SQLインジェクションがある

    $foo = $_POST[ "foo"];
    $sql = "SELECT * FROM foo where foo='".$foo."'";

    のようなコードがある.$fooのサニタイズをしていません.

    ■コードの最適化が甘い

    仮に5つの変数の文字コードを変更するとします.
    これがこの書籍だと

    $foo1 = mb_convert_encoding( $foo1, "EUC-JP", "SJIS");
    $foo2 = mb_convert_encoding( $foo2, "EUC-JP", "SJIS");
    $foo3 = mb_convert_encoding( $foo3, "EUC-JP", "SJIS");
    $foo4 = mb_convert_encoding( $foo4, "EUC-JP", "SJIS");
    $foo5 = mb_convert_encoding( $foo5, "EUC-JP", "SJIS");

    といった記述になっています.しかしこれは下記のようにするべきだと思います.

    $in_charset = "SJIS"; // SJISもShift_JISなどにするべきかと
    $out_charset = "EUC-JP";
    $foo1 = mb_convert_encoding( $foo1, $in_charset, $out_charset));
    $foo2 = mb_convert_encoding( $foo2, $in_charset, $out_charset));
    $foo3 = mb_convert_encoding( $foo3, $in_charset, $out_charset));
    $foo4 = mb_convert_encoding( $foo4, $in_charset, $out_charset));
    $foo5 = mb_convert_encoding( $foo5, $in_charset, $out_charset));

    ここはポリシーの違いかもしれませんが,紙面のような記述だとtypoなどを日常から発生させやすいコードになります.

    #foreachなどでまわして〜ってのもあるけど若干読みづらくもなるので判断が難しいです

    ■RFC違反

    HTTPヘッダーでLocationを使うときはURLはフルパスで書かなければなりませんが,この書籍では相対パスで記述されています.
    ほとんどのブラウザーで動作すると思いますが,初心者は鵜呑みにするからこそこの程度の手抜きはしてはいけないと思います.

    まだあった気がしますけど,総合的なサンプルコードレベル的にはこれは数年前の実装内容です.
    今時このコードを仮に業務上実装したら「知らなかった」では済まないいでしょう.

    #まぁ過去のものを引きずってて修正しきれないってのは仮に1,000歩譲るとしてですが

    まだ後一つダメコードがあった気がするのですが忘れてしまいました.
    価格は2,100円と若干安め(ムック系よりは高いけど)ので入手し安い(かつ勧めやすい価格帯)のですが,非常に残念です.

  • iPhoneでつけている家計簿のデータをPCで扱ってみたくてデータのフォーマットを調べたらSQLiteとのことで、図書館でSQLiteとタイトルについている本を借りてみた。
    PHPを使ってWebからSQLiteを使った簡単なアプリをちょっとずつプログラミングしていく構成でWebサービスとかの構築とかやりたければ非常に参考になる本だと思う。
    が、私の場合、SQLiteのデータが扱いたかっただけなので、ちょっと違ったかな。
    返却する前にもう一度再読して、実際にいじってみよう。

全3件中 1 - 3件を表示

PHP+SQLite実践サンプルブックの作品紹介

「これからPHP」なあなたに最適!SQLiteは、PHPの5から標準で組み込まれた「速くて」「簡単な」データベースシステムです。MySQLよりも習得しやすく「LAMP」に代わる技術を先取りで身につけていきましょう。

PHP+SQLite実践サンプルブックはこんな本です

ツイートする