新しいブログに移動しました。「9ensanのLifeHack」こちらの記事も必要に応じて新しいブログに移動させる予定です。今後ともよろしくお願い致します。20:19PHPPHP前回、作成したコンタクトフォームに入力チェックを追加しましょう。前回のままでは、名前、メールアドレス、内容どれも空のままでも送信できてしまいます。各項目に以下のようなチェック内容を付加するようにします。上記内容を前回のプログラムに機能追加します。「confirm.php」を以下のように修正しました。"名前を入力してください。"名前は20文字以内で入力して下さい。"メールを入力してください。"メールを正しい形式で入力して下さい。"内容を入力して下さい。?></body></html>これで、入力チェックを行うことができます。不正な入力値を除いて、正しく入力されている場合のみ最後の送信まで行えます。未入力で入力ボタンを押下するとこのように、入力エラーとなり先に進むことができなくなります。変更した後のデモは「こちら」から確認できます。今回で入力チェックを行うことができました。プログラムの考察ここまでで、コンタクトフォームとしての機能は満たしました。何か無駄な点とプログラムとしてわかりづらい点があります。input.phpとconfirm.phpの中に同じHTMLの記述があるconfirm.phpの中に入力チェックである業務ロジックと画面表示部分であるHTMLのロジックが混在していてプログラムがメンテナンスしづらいend.phpの中にメール送信部分と、送信完了画面のHTMLのロジックが混在していてプログラムのメンテナンスしづらい簡単にプログラムのまずい部分をあげただけでも3つもでてきました。これくらいの小さなプログラムだったらこれでもいいかもしれませんが、もっと大規模プログラムだったらどうでしょうか?メンテナンス出来ないとんでもないプログラムが出来上がると思います。業務ロジック部分は最低限分ける必要があると思います。その業務ロジックと画面表示部分を分離させる設計方法はどのようにしたら便利になり、ソースコードのメンテナンス性が向上するでしょうか?ここでソフトウェアの設計手法の一つでMVCモデルというものを紹介したいと思います。どのようなものかというと処理の中核を担う「Model」、表示・出力を司る「View」、入力を受け取ってその内容に応じてViewとModelを制御する「Controller」の3要素の組み合わせでシステムを実装する方式です。入力はまず、全ての処理を制御するContorollerに処理を委譲します。Controllerが入力の内容から、適したModelを呼び出し、その結果に応じて必要なViewを表示するように実装します。今回ならControllerが入力チェックを行うModelを呼び出しその結果に応じて、確認画面を表示するViewを呼び出すかまたは、入力画面のViewを呼び出すように実装されます。処理を記述するのはばからしいのでフレームワークというものが先人の知恵で作られています。フレームワークとは、開発する際に頻繁に必要とされる汎用的な機能をまとめてあるアプリケーションのことです。次回は、PHPでのMVCフレームワークで私がよく使用しているCodeIgniterというフレームワークについて勉強していきたいと思います。cURLを利用したスパイダーツールを作ってみよう。16:30メールフォームを使わせてもらいました。ありがとうございます。サーバ、さくらを使っています。メールボックスの受診箱に入っている文面が文字化けしています。おきるのか?回避方法など思い当たる節がありましたら、ご教授いただけましたら助かります。17:57サクラのレンタルサーバではPHPが使用する文字コードがEUCになっています。プログラムの文字コードをEUCで作成しないと日本語が文字化けしてしまいます。プログラムファイルの文字コードをEUCにするとなおると思います。返信コメントを書くコメント投稿フォームコメントを入力して下さい。返信をキャンセルする。2011/05/06読書用に花粉症対策CodeIgniterでのCLIPHPでの正規表現のチェックが出来るサイトiPhoneシミュレータのアプリの保存先httpd.confのOptionsの備忘録zencodingって便利だ!wp-super-cacheが悪さしていた・・・。