2012-04-01から1ヶ月間の記事一覧
kohana はシンプルなだけに、アプリケーションに近い部分の機能は貧弱です。今日は高名な Zend Framework を kohana と合体させて Zend Mail を使ってみます。オートローディング機能を持つ CMS なら何でも合体して機能拡張できるみたいです。 準備作業 ・Ze…
テスト5まではフォームからのユーザーの入力を検証していませんでした。今日はkohana の Validation を使って検証する実習です。入力フォームも kohana の Form を使います。元ネタのサンプルコードは kohana ユーザーガイドのものです。このサンプルコード…
今日は kohana のデータベース操作についてちょっとまとめます。 SQLインジェクション対策 テスト4のサンプルコードで使った DB::query を使う記述法の場合、SQL文に変数を埋め込む形で kohana に渡すとエスケープしてくれません。kohana はテキストで渡され…
今夜のお題は DB 操作の第2の書き方です。テスト4では DB::query を使って SQL文を直接書く方法を使いました。テスト5では Query Builder を使う方法です。Query Builderには DB::select、DB::insert、DB::update、DB::delete などがあります。テスト5の機能…
昨日のテスト4のサンプルコードなんですが、SQLインジェクション対策がちゃんと出来たので満足していたら、何と XSS(Cross-Site Scripting)攻撃に対する脆弱性が存在しました。ユーザの入力値 $_POST に対しては test3post.php で htmlspecialchars() 関数…
kohana のユーザーガイドを読んでいると、kohana 3.x 以降ではデータベース操作に対してテスト3とは違う方法を推奨しているようです。セキュリティー対策、柔軟な操作を目的に改善されているようです。 2通りの書き方があるようですが、本日夜の部では第1の…
本日午前中のサンプルコードにて名前の欄に「名前 ' -- 」と書いて送信すると見事にエラーが発生しました。SQLインジェクション対策がなされていません。Database クラスには SQLインジェクション対策のメソッドが準備されているようですが、Model_Database …
今日は kohana のテスト2を拡張してユーザーの指示に従ってデータベースを操作するサンプルコードを作ってみました。kohana のユーザーガイドも結構舌足らずな所が多いんですけど、山勘でこんなんで動くんじゃないの?と類推しながら書いてみたら、動いちゃ…
PHP のコードを読んでいると Model_Test2::getData2() みたいにクラス名とメソッド名を (::) で連結した記述を見かけます。これって何なんだ?と調べようとすると結構大変です。PHP :: なんて書いてネットで検索しても見付からないし、PHP のマニュアルを ::…
PHPで直接データベースを操作するコードを書いても kohana は動くんだろうか?・・・と思って書いてみたら、ちゃんと動きました。当たり前か?・・・(^^;;; <手順>・application/classes/model/test2 にメソッド getData2() を追加した。
kohana のテストその2はデータベースの読み込みです。この例題では CMS(Content Management System)のコンセプトである MVC(Model View Controller)をひと通り使っています。また、ビューにビューを入れ子にしている点も見て下さい。コードを読んでいく…
前回作成した kohana 3.2 ユーザーガイドの pdf 版を印刷して読んでいます。で、気付いたんですが、18日の日記に書いたサンプルコードはちょっと古い書き方だったみたいです。 ということで、kohana 3.2 らしいはじめの一歩のサンプルコードです。 applicati…
今日は kohana の PDF 版マニュアルを作ってみました。kohana 3.2 User Guide と kohana 3.2 Available Classes Reference Manual です。ユーザーガイドの方は181ページ、クラスのリファレンスは1799ページもあります。紙に印刷して一気に読みたいとか、メモ…
kohana って小花ですかね?・・・ネーミングが気に入ってます。で、先程から立ち上げていました。今日は kohana のインストール手順と簡単な動作確認までです。 <インストール手順>・kohana のサイトから kohana-3.2.0.zip をゲットする。・解凍したファイ…
「XOOPS Cube Legacy デベロッパーズ・バイブル」の勉強をしています。今は第4章「主要なクラス群」ですが、勉強ついでに主なクラスのリファレンス・マニュアルを作ってみました。こういうマニュアルがネット上にあると勉強しやすいんですけどね。 掲載して…
今日も「XOOPS Cube Legacy デベロッパーズ・バイブル」の勉強をしています。今日のお題は第4章「主要なクラス群」の4-1-1「テーブルオブジェクト」です。簡易掲示板のプログラムをいきなり理解しようと思ってもちょっとつらいですよね。先ずはデータベース…
今日も「XOOPS Cube Legacy デベロッパーズ・バイブル」の勉強をしています。今日のお題は第6章「モジュールを作ってみよう」の簡易掲示板 lighhtboard です。簡易といってもこれは相当な機能を持っています。さすが CMS という感じではあります。 で、この…
ネットの事はネットに聞けと言いますが、CMS(Content Management System)の場合は泥沼みたいな感じがします。ろくにマニュアルは無いし、入門に適したサイトも見当たりません。この技術はまさに発展途上で、雨後の筍の如くにいろんなのが開発されているよ…
PHPのお勉強はそろそろいいかということで、XOOPS Cube Legacy(XCL)の勉強を始めています。XOOPS は古いという話もあり、いろいろと CMS について調べてみました。今から勉強するなら CodeIgniter なんかもいいかなと思ったのですが、ライセンス問題で炎上…
昨日は久しぶりに那須岳へ登山に行ってきました。春の雪山でリフレッシュ! さて今日もNetBeansにて「PHP逆引きレシピ」のサンプルコードを教材にPHPの勉強をしました。今日のお題は第1章1-13「外部プログラム」です。そういえば exec() 関数で外部プログラ…
今日もNetBeansにて「PHP逆引き大全 516の極意」のサンプルコードを教材にPHPの勉強を進めています。 今日のお題は第9章「マッシュアップの極意」です。これは唖然とするほど面白かったです。例題で使っている bit.ly と Flickr と Twitter のアカウントは持…
昨日から「PHP逆引き大全 516の極意」という本のサンプルコードをダウンロードして NetBeans で勉強しています。今日のお題は第6章6-1「PDO(PHP Data Object)の利用」です。PDOはデータベースへのアクセスの抽象化をしてくれるそうで、PHP 5.1 以降の機能…
統合開発環境 NetBeans で「PHP逆引きレシピ」のサンプルコードを教材にして PHP の勉強を進めてきました。サンプルコードはひと通り実行してみたので、Webプログラミングにおいて何が出来なきゃいけないのかが概略分かったように思います。 サンプルコード…
今日もNetBeansにて「PHP逆引きレシピ」のサンプルコードを教材にPHPの勉強を進めています。 今日のお題は第9章9.2「文字化け」です。ここのサンプルコードは頭の体操に持って来いですね。.php ファイルそのものの文字エンコードと、<meta>文の charset= で指定し</meta>…
今日もNetBeansにて「PHP逆引きレシピ」のサンプルコードを教材にPHPの勉強を進めています。 今日のお題は第6章6.6「ファイルアップロード」です。サンプルコード 02.php で複数の画像ファイルをアップロード出来ることは出来るんですけど、気に入りません。…
今日もNetBeansにて「PHP逆引きレシピ」のサンプルコードを教材にPHPの勉強を進めています。 今日のお題は第6章6.7「メール処理」に関連して、Mercury の POP3 サーバーと SMTP サーバーの設定です。SMTP サーバーをオープンにしていては迷惑メールの中継に…
今日もNetBeansにて「PHP逆引きレシピ」のサンプルコードを教材にPHPの勉強を進めています。 今日のお題は第6章6.7「メール処理」です。サンプルコード01.phpでメールの送信、02.phpでメールの受信を勉強します。この例題は事前準備が必要です。 <01.php メ…
今日もNetBeansにて「PHP逆引きレシピ」のサンプルコードを教材にPHPの勉強を進めています。 今日は第8章「セキュリティー」をじっくり読んでみました。ハッカーはあらゆる手を使って攻撃してくるので、公開サイトのプログラムを書くに際しては入力値を厳密…