單元測試類別(unit test)

    public function test()
    {
        $this->load->library('unit_test');
        $test = 1 + 2;
        $expected_result = $this->test_fun(1,2);
        $test_name = '測試判斷';
        $this->unit->run($test, $expected_result, $test_name);
        echo $this->unit->report();
    }

    private function test_fun($a,$b)
    {
        return $a+$b;
    }

 

 

內容出處: 單元測試類別 : CodeIgniter 使用手冊

php – 如何使用codeigniter中的事務進行基於數據更改的提交和回滾

// sql rollback
$this->db->trans_start();

	// sql
	$this->db->query();


$this->db->trans_complete();

if ($this->db->trans_status() === FALSE) { 
     $this->db->trans_rollback(); 
} else {
     $this->db->trans_commit(); 
}

來源: php – 如何使用codeigniter中的事务进行基于数据更改的提交和回滚?

「CodeIgniter」-怎麼做到「如果其中一個SQL命令執行失敗,則回滾已操作的命令」?-Transaction – 陳董 Don Chen

來源: 「CodeIgniter」-怎麼做到「如果其中一個SQL命令執行失敗,則回滾已操作的命令」?-Transaction – 陳董 Don Chen

CodeIgniter Transaction的使用:

$this->db->trans_start();
$this ->db -> insert(‘user’,$i_data);
$this -> db ->insert(‘score’,$i_data2);
$this->db->trans_complete();

如果insert score的時候發生了問題,則已經執行的inser user會回滾。

PHP Html Purifier 編輯器過濾 xss

剛好我用的是CI..
https://github.com/refringe/codeigniter-htmlpurifier
只是這個範例要安裝composer 然後修改autoload位置..確實過濾的蠻強大的…

另外提醒..光靠前端的js抵禦 是沒意義的喔..

把其中的

require_once APPPATH.'third_party/htmlpurifier-4.8.0-standalone/HTMLPurifier.standalone.php';

修正為

require dirname(dirname(__DIR__)) . '/vendor/autoload.php';

測試方法

$dirty_html = <<<TEST
攻擊字串...etc
TEST;
$this->load->helper('htmlpurifier');
$clean_html = html_purify($dirty_html);
var_dump($clean_html);

來源: refringe/codeigniter-htmlpurifier: A Codeigniter helper to purify html input using the HTMLPurifier standalone class.

php ci framework to nginx

php CodeIgniter framework 在 nginx上要開啟 必須注意 php-cgi設定

    location ~ \.php$ {
      fastcgi_pass unix:/dev/shm/php-cgi.sock;
      fastcgi_index index.php;
      fastcgi_split_path_info ^(.+\.php)(.*)$;
      include fastcgi.conf;
    }

關鍵設定在這句 如未設定 會導致urls異常 造成拒絕訪問 or 404 error

fastcgi_split_path_info ^(.+\.php)(.*)$;