kazpgmの日記

『プログラム自動作成@自動生成』作成の日記

TOOL更新_viewをsmartyで。を、調査する。とりあえず手始めに、簡単な例としてerrA.html

TOOL更新_viewをsmartyで。を、調査する。 <=全体的に自分用備忘録
★とりあえず手始めに、簡単な例としてHttp://xxxxx/samples/kaz/admin/xxxとたたいたとき”エラー!。そのページは存在しません。”と出す画面をsmatryにする。問題なくうまく動いた。

■common.php $smartyをZend_Registryでしまっておく。<=adminIndex.phpで$front->dispatch();するより前に$smartyを作っている。(初期設定をここでやりたいので。)、さらにクロスサイトスクリプティング対策のため「default_modifiers = 'escape:"html"';」を使って、デフォルトでサニタイズしておくことにした。
 注意:ver0.1お助けTOOLでもメールにsmartyを使用している。さらに、smatryのdelimiterは二重括弧に変えている。 $smarty->left_delimiter = '{{'; $smarty->right_delimiter = '}}'; 括弧ひとつじゃ心配だから。というアイデア。といっても、教えてもらったもの。
 追加:ver0.1お助けTOOLで使っているsmartyはヴァージョンが古いので「default_modifiers = 'escape:"html"'」がうまく動かない。今日Smarty-2.6.26を落としてきた。うまく動いた。 <=6/5 http://d.hatena.ne.jp/kazpgm/20090729/1248820043 (TOOL更新_kaz PHP自動作成◎自動生成 デモ(作成例)をYouTubeに載せた)にある2.smartyWindows用@unlinkワーニング対応修正を今日入れた

 補足:ver0.1お助けTOOLではfunctions.phpのesc(),stz()でhtmlspecialchars() を使ってサニタイズしている。(ver0.1では、この関数を使い忘れることによるサニタイズ漏れ。の人的ミス。という不安が少し残る。smarty使えばデフォルトでサニタイズするので、心配なくなる。項目ごとのデフォルト解除も簡単にできる。これはいい。)

<<追加>>
$smarty->default_modifiers = 'escape:"html"';
Zend_Registry::set('smarty',$smarty);

■class ErrorController extends ControllerBase 

<<修正前>>
        // エラー 画面
        require_once(DIR_VIEW . ADMIN_ERR_HTML);
        errA($this->_o, $this->_err);
<<修正後>>
        // エラー 画面
        $smarty  = Zend_Registry::get('smarty');
        $smarty->assign('o', $this->_o);
        $smarty->assign('err', $this->_err );
        $smarty->display('view/admin/err/errA.html');

■errA.html修正内容。 <=「.kazphp\view\admin\err」フォルダにある。これをsamrtyのtemplates置き場(「.kazphp\templates\view\admin\err」フォルダ)に移動してから修正した。

<<修正前>>
<?php
//  ============================================================================
//  Copyright (c) 2009 kaz PHP自動作成お助けTOOL. All rights reserved.
//  ============================================================================
// 管理者側error 画面
function errA($o, $err) {
?>
・・・
<?php require_once(DIR_VIEW . 'admin/header.lbi'); ?>
・・・
<?= $err['exception_msg']?>
・・・
<?php require_once(DIR_VIEW . 'admin/footer.lbi'); ?>
・・・
<?php require_once(DIR_VIEW . 'admin/analytics.lbi'); ?>
・・・
<?
}
?>

<<修正後>>

{{*
//  ========================================================================================
//  Copyright (c) 2010 kaz PHPプログラム自動作成◎自動生成お助けTOOL. All rights reserved.
//  ========================================================================================
// 管理者側error 画面
*}}
・・・
{{include file='view/admin/header.lbi'}}
・・・
{{$err.exception_msg}}
・・・
{{include file='view/admin/footer.lbi'}}
・・・
{{include file='view/admin/analytics.lbi'}}
・・・
削除した。

5/08 5:00-13:30 自分以外の人が見ても、何がなんだかさっぱり。だと。思います。来週から「logininfoListView.html」などを置き換えてみて、・・・、どんな感じか調査。今日は手始め。
6/5 2:00-2:30 http://d.hatena.ne.jp/kazpgm/20090729/1248820043 (TOOL更新_kaz PHP自動作成◎自動生成 デモ(作成例)をYouTubeに載せた)にある2.smartyWindows用@unlinkワーニング対応修正を今日入れた。