2009-07-01から1ヶ月間の記事一覧

Jul31(3):社内用フレームワーク(郵便番号編)

郵便番号はテキストボックス2つで1グループになるので、その設定を行う。 required_keyというのがあって、これはグループ内配列のrequiredなキーを指定するので、今回は2つともそうだから、アクションフォームの定義は、 'zip' => array( 'type' => array(VA…

Jul31(2):社内用フレームワーク(データをDBに入れる。)

mysqlにデータを入れる。この作業は別途managerを用いて行うので、新たなmanagerを作り、関数を作る。関数は一般性を持たせるので、フォーム値の値をそのまま持ってきたりしない。 SubmitManager class Elixir_SubmitManager extends Ethna_AppManager { pub…

Jul31:社内用フレームワーク(viewについて)

viewはページの表示にかかわることを設定するクラス。今までなんでもかんでもアクションクラスとテンプレートだけで終わらせてきたが、viewに仕事を割り振ってあげないとさすがにかわいそうなので、確認ページで日本語表記に変換する項目の設定をviewで行う…

Jul30(2):社内用フレームワーク(フォーム値の補完)

フォーム画面→管理画面で値を渡す時にはhiddenを使うが、すべてのフォームの値で書くのが面倒・・・こんな時は、 <{form_hidden_all}>とhiddenタグを返したいところで入力することにより、アクションフォームで定義されたフォームのnameと入力されたvalueの…

Jul30:社内用フレームワーク(複合チェック)

あぁ、Ethna難しい。本当に。 今回は複合チェックだ。今回の条件は、 「チェックボックスの「その他」にチェックがなされてる場合にセレクトボックスが必須になる。」 という条件。複合チェックの場合は、varidatorを実行するコマンド $this->af->validate()…

Jul29:社内用フレームワーク(trim編)

Ethnaでは、アクションフォームの定義の所に 'filter' => 'ltrim',とあるが、これはEthna_ActionFormの function _filter_ltrim($value) { return ltrim($value); }という関数が入ったクラスを継承しているから使えるのである。今、半角カナ、およびひらがな…

Jul28:社内用フレームワーク(フォーム→確認画面,エラーメッセージ)

画面遷移に関して var $form = array( 'lastname' => array( 'type' => VAR_TYPE_STRING, 'form_type' => FORM_TYPE_TEXT, 'name' => 'lastname', // // Validator (executes Validator by written order.) 'required' => true, 'min' => 1, 'max' => 50, 'r…

Jul27(2):社内用フレームワーク(フォーム→確認画面)

複数選択のチェックボックスなのに、値が何やっても一つしか渡されてこない。イラつく。さて、何がいけないのかというと、アクションフォームを指定する時に、複数選択の場合は'type'の宣言をarrayにしてあげなければならない。どういうことかというと、趣味…

jul27(2):社内用フレームワーク構築(2)(フォーム→確認画面)

フォームで入力した値が確認画面にちゃんと渡されているのか調べる。action/Confirm.phpで print $this->af->get("lastname");出てきた値はNULLだった。残念。何がダメだったかというと、action/Form.phpのアクションフォーム を引き継いでないかららしい。 …

Jul23:社内用フレームワーク構築(TOP→フォーム)

まず、TOP画面を表示させる。action,view,テンプレートを作って、htdocs/index.phpは index.tplのformへの遷移は、 <a href="?action_form=1"><font size="2">さっそく応募する</font></a>とする。どのアクションを呼び出すかはここで決まる。んで、app/actio…

Jul22:社内用フレームワークのエラー

バーチャルホストに社内用フレームワークのhtdocsを設定したところ。 Internal Server Error エラーログを見てみると、 /.htaccess: php_value not allowed hereとか書いてあった。PHPがこのディレクトリで使えないらしい。とりあえず.htaccessで調べてみる…

Jul21(2):Ethna(アプリケーション構築手順(3))

以下の文章はEthna公式サイトを参考にしています。 ログイン画面の変更 もっとログイン画面っぽくする。 <html> <head></head> <body> <form action="{$script}" method="post"> <input type="hidden" name="action_login_do" value="dummy"> <table border="0"> <tr> <td>メールアドレス</td> <td></td></tr></table></form></body></html>

Jul21:Ethna(アプリケーション構築手順(2)の続き)

話が完全にずれてしまった。今は公式サイトのチュートリアルで話を進めていく。(ここを参考に) アクション まずアクション定義の追加する。 var $action = array( /* * TODO: ここにaction定義を記述してください * * 記述例: * * 'index' => array(), */ +…

Jul17(3):Ethna(アプリケーション構築手順(2))

実際のアプリケーション構築は、「アクション」を追加していく作業の繰り返しとなります。「アクション」とは何ですか?というのを正確に定義するのはちょっと難しいですが、要するに 1. ユーザから何らかのリクエストを受け取って(例えばURLへのアクセスや…

Jul17(2):Ethna(アプリケーション構築手順1)

アプリケーションスケルトン(骨組み)の作成 まず、アプリケーションIDと、アプリケーション配置ディレクトリを決める。とりあえず/home/user/public_htmlに設置することに。アプリケーションIDをethna_trainingに、 $ ethna add-project ethna_training erro…

Jul17:フレームワーク(Ethna)

フレームワークとは ソフトウェアの世界では、アプリケーションソフトを開発する際に頻繁に必要とされる汎用的な機能をまとめて提供し、アプリケーションの土台として機能するソフトウェアのこと。アプリケーションの雛型。開発にフレームワークを利用すると…

Jul16(3):Smartyの使い方(3)

エスケープ処理 特殊文字にエスケープ処理を施す作業をする。 Smartyでは、 {$string|escape}と表記する。 ためしにエスケープ処理の前後で表示結果を比べてみると、確かにエスケープ処理がなされていた。

Jul16(2):Smartyの使い方(2)

確認画面 確認画面ではPOSTで渡ってきた値を表示させる必要がある。 テキストボックスの値は {$smarty.post.lastname}の様に表記する。ラジオボタンで選択した性別のvalueはmかfなので、例えば男(value=m)を選択したら、 {foreach from=$sex_array key=k ite…

Jul16:Smartyの使い方(1)

作ったフォームを入力部分、確認部分、完了部分の3つのテンプレートに分けて、それをPHPで出力する。 入力フォーム(form.tpl) テンプレートは通常拡張子は.tplとなり、PHPっぽいこととHTMLを組み合わせて作る。変化したところを主に記すと、 テキストボック…

jul15:Smartyの使い方

今、Smartyの設定ファイル、テンプレート、エンジン、の3つファイルを作る。 Smarty設定ファイル template_dir = "{$current_d}/../templates"; //設置したtemplatesへの絶対パス $smarty->compile_dir = "{$current_d}/…

Jul14(3):Smartyインストール(2)

# wget http://www.smarty.net/より、最新版をダウンロードしてくる。ダウンロード先はいつもの/usr/local/srcにした。 # tar zxvf 解凍したSmartyのディレクトリの中にlibsというのがあるので、これをsmartyに変更して、/usr/local/php5/lib/phpの下に保存…

Jul14(2):Webセキュリティー

WEBセキュリティに関する事件は実は人為的なミスが結構多かったりする。ここでは過去の様々な事例に関し、個人情報の点から自分なりに大事だと思うことを書き出す。 WEBサーバにファイルを置くことに関する注意 webサーバ上に何か保存する場合には、それがな…

Jul14:Smartyインストール

Smartyとは?? SmartyはPHPのためのテンプレートエンジン テンプレートエンジンとは?? テンプレートと呼ばれる雛形と、あるデータモデルで表現される入力データを合成し、成果ドキュメントを出力するソフトウェアまたはソフトウェアコンポーネント。 テン…

Jul13:Pagerを使っての管理画面作成1

管理画面作成を容易にしてくれるというPager。今回はこれを使って管理画面をリプレイスする。まず、Pager.phpをインストールしてくる。 pear install Pagerインストールが完了したら、とりあえず確認。usr/local/php5/lib/phpの中にあった。さて、Pagerの便…

Jul10(3):メソッドのエラー

$sql3_result = $db_connect->getone($sql3);のメソッドにエラーが生じた場合、 if(DB::isError($sql3_result)){ echo $sql3_result->getmessage(); でエラーメッセージを見ると、syntax errorとある。こんな時は、 $sql3_result = $db_connect->query($sql3…

Jul10(2):管理画面作成4

修正 ・全レコード数を得るときに手間(fetchrowしてその配列の・・・)があるので、一発でレコード数を得る。 $sql3_result = $db_connect->query($sql3); $res = $sql3_result->fetchrow(); $all_records = $res[0]; settype($all_records,"int");gueryメソ…

Jul10:管理画面作成3

更新が遅くなりすみません。さて、課題は 「最初にすべてレコードをとってくるのではなく、表示する件数だけとってくるようにする。」 「3pに分かれている管理画面表示ページを一つにする」 「getの値に変な値が入っても対応できるようにする」 の3つ。頑張ったと…

Jul9:管理画面作成2

管理画面作成の続き。ここからはページ遷移の為の設定に入る。 if(count($info_array)){ $num = count($info_array); $perpages = 5; //set how records per page $allpages = ceil($num/$perpages); // count all pages /** * set current page **/ if(isse…

Jul7(3):管理画面作成1

ページング処理とは ページングとは、利用可能なメモリ容量を増やすOSの機能の一つ。ハードディスク上に「スワップファイル」と呼ばれる専用の領域を用意して、メモリ容量が不足してきたら使われていないメモリ領域の内容を一時的にハードディスクに退避させ…

jul7(2):mysqlのエラー

「Column 'カラム名' in field list is ambiguous」というエラーが起きた。これは、テーブルを結合して出力する場合、もし2つのテーブルに同じ名前のカラムがあったとすると、どちらのテーブルのカラムか指定しないとエラーになる。こういうときは、 select …