CAKEPHP入門2

ビューは「app」「views」 コントロールは「app」「controllers」

フォーム

[cc lang="php"] <?php

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で行います。

のようです。

$formの()の中は(名前、属性指定)