ビューã«ç›´æŽ¥ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’æ—¥æœ¬èªžã§æ›¸ã‘ã°è¡¨ç¤ºã§ãã‚‹ã®ã§ã™ãŒã€
å‹•çš„ã«ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’変ãˆãŸã„よã†ãªå ´åˆã«ã€
$params = array( array('message'=>'エラーã§ã™') );
$this->cakeError('foo', $params);
ã¨ã— cakeError ã«æ—¥æœ¬èªžã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’パラメータã¨ã—ã¦æ¸¡ã—ã¦ã‚‚表示ã§ãã¾ã›ã‚“。
åŽŸå› ã¯ /cake/libs/error.php ã®ã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ã§
$clean = new Sanitize();
$messages = $clean->paranoid($messages, $allow);
ã¨ãªã£ã¦ã„ã¦ã€ãƒ‘ラメータをサニタイズã—ã¦ã„ã¦åŠè§’英数å—以外ã¯å‰Šé™¤ã•れã¦ã—ã¾ã„ã¾ã™ã€‚
ã¡ãªã¿ã« Sanitize::paranoid メソッドã¯
/cake/libs/sanitize.php
function paranoid($string, $allowed = array()) {
$allow = null;
if (!empty($allowed)) {
foreach($allowed as $value) {
$allow .= "\\$value";
}
}
if (is_array($string)) {
foreach($string as $key => $clean) {
$cleaned[$key] = preg_replace("/[^{$allow}a-zA-Z0-9]/", "", $clean); }
} else {
$cleaned = preg_replace("/[^{$allow}a-zA-Z0-9]/", "", $string);
}
return $cleaned;
}
ã®ã‚ˆã†ã«ãªã£ã¦ã„ã¾ã™ã€‚åŠè§’英数å—㨠$allow ã§è¨±å¯ã—ãŸæ–‡å—以外ã¯å‰Šé™¤ã•れã¾ã™ã€‚
å‰å›žã®æŠ•稿「cakeError ã§ã‚¨ãƒ©ãƒ¼å‡¦ç†ã€ã®ã‚ˆã†ã«è‡ªåˆ†ã§ cakeError 処ç†ã‚’書ã„ãŸå ´åˆã«ã¯ /app/error.php ã§ã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ã‚’上書ãã—ã¦å•題ã®éƒ¨åˆ†ã‚’コメントアウトã™ã‚‹ã“ã¨ã«ã‚ˆã‚Šã€æ—¥æœ¬èªžã‚’表示ã™ã‚‹ã“ã¨ãŒã§ãるよã†ã«ãªã‚Šã¾ã™ã€‚
/cake/libs/error.php ã® __construct メソッドを丸ã”㨠/app/error.php ã«ã‚³ãƒ”ペã—ã¦
parent::__construct();ã¨
$messages = $clean->paranoid($messages, $allow);ã®2行をコメントアウト
ã“ã†ã™ã‚‹ã“ã¨ã«ã‚ˆã‚Šæ—¥æœ¬èªžã‚’表示ã™ã‚‹ã“ã¨ãŒã§ãるよã†ã«ãªã‚Šã¾ã—ãŸã€‚
※サニタイズ処ç†ã‚’コメントアウトã—ã¦ã„ã¾ã™ã®ã§ã€ãã®ç‚¹ã¯ååˆ†ã«æ³¨æ„ãŒå¿…è¦ã§ã™ã€‚
Recent Comments