ビューは「app」「views」 コントロールは「app」「controllers」
フォーム
class HelloController extends AppController{
public $name='Hello';
public $uses = null;
public $layout = "hello";
function index(){}
function sendForm(){
$str = $this->params['url']['text1'];
$result = "";
if($str != ""){
$result = "you type:".$str;
}else{
$result = "empty.";
}
$this->set("result",$result);
}
} ?> [/cc]
$str = $this->params['url']['text1'];では各種情報を管理するparamsを使っています。
- controller:コントローラー名
- action:アクション名
- named:パラメータ
- form:POST時のフォームの内容
- url:GET時のフォームの内容
- date:ヘルパーに生成された要素
今回は「url」を使ってGETで送信されたフォームの内容を取得しています。
$this->set("result",$result);では先ほど取得した変数をビューに渡しています。
セキュリティ
[cc lang="php"] App::import('Sanitize');
..........................
$this->set("result",Sanitize::stripAll($result));
[/cc]
CAKEphpのライブラリである。Sanitizeクラスを使います。 今回はstripAllを使いましたが、の他stripScriptやstripImageなどがあります。
Formヘルパーを使う
ここまではビューテンプレートに直接フォームを記述していましたが、Cakephpにはタグを自動生成する「Fromヘルパー」という機能があります。
[cc lang="php"]
<?php echo $form->create(null,array('type'=>'post','action'=>'.')); ?> <?php echo $form->text("HelloForm.text1"); ?> <?php echo $form->submit("送信"); ?> <?php echo $form->end(); ?>
[/cc] 最初にcreate()、最後にend()をつける。実際の記述は$formで行います。