2018年3月19日 星期一

PHP -E5,處理小數點後五位的計算

PHP 計算,最近發生一個事,以為加減乘除的數學不會有什麼問題,
結果在 double 浮點數計算時,第一發生的是計算錯誤,那ㄟ安ㄋ?
原來要用 bcadd、bcsub、bcmul、bcdiv…bc系列處理函數才會正確,
但是又碰到怪問題,資料庫取出 0.00009800,結果變成 9.8E-5,
用 bc..計算,都是 0 喔,真是很大的一個坑~~

後來想到用 number_format 來格式化小數點看看,我是用8位,
格式化後就會是正常顯示的 0.00009800,不會在世 9.8E-5, 吼~~可以計算了啦!

觀察中~不確定是不是正確作法!!

2016年10月30日 星期日

解決 BootstrapValidator 在使用 Bootstrap Tabs 時失效

BootstrapValidator 是一個超棒的驗證器,
但是奇怪的是當使用 Tabs 時,就只會驗證當前的頁面,
其他的 Tabs 有需要驗證的地方就會無視!

原來要解決的個問題只要再 js 啟動 BootstrapValidator 時,
簡單加個東西就好:

  excluded: [':disabled'],

例如:
$(document).ready(function() {
    $('#accountForm').formValidation({
        excluded: [':disabled'],
        ...
})


這樣就解決這個怪問題了!


2016年10月22日 星期六

CodeIgniter 跳脫 單引號 ’ 雙引號 ” 不是加反斜線 \

我都是使用 $this->input->post() 取表單資料,
現在碰到的問題是: 在表單上,若是使用者輸入 單引號 或是 雙引號,
在存入資料庫時可以自動跳脫(使用反斜線),不會產生問題,
但是輸出到網頁時,就完了,不管是 單引號 或是 雙引號 ,
都會對網頁造成傷害,就是 html 排版錯亂,或是顯示資料不完全。
查一下用手冊,可以使用 html_escape 去轉換 html 跳脫字元,
但是麻煩來了, code 這麼多,都個都要 html_escape($this->input->post()),
修改起來真的大工程,我會瘋掉,有什麼可以解決的方案嗎?

我想到一個方法,就是直接改 core,
所以就到 core/Input.php 複製一份到 application/core/Input.php
然後修改 application/core/Input.php 的 198 行,加入 html_escape

$value = html_escape($array[$index]);

這樣就解決問題了!

解決 Codeigniter 3.x 必須設定 $config['base_url'] 問題

CI 3.X 改成一定要設定 $config['base_url'] 後,
第一個碰到的問題就是:
在本機測試時要改一次 $config['base_url'] = 'http://localhost',
要丟到伺服器時又要在改一次 $config['base_url'] = 'http://www.000.com',
常常一不注意就忘記改了,整個網站就出現找不到網頁的冏(窘)境,

然後我查看一下 core 裡的 config.php, 覺得他寫的很奇怪,為什麼要去取 $_SERVER['SERVER_ADDR']? 在怎麼判斷 SERVER 的 IP,
客戶端也連不到正確的 base_url, 例如: 客戶端網址打 220.123.123.123,
但是經他查證後 base_url 是 192.16...

  $config['base_url'] = (is_https() ? 'https' : 'http').'://'. $_SERVER['HTTP_HOST'] .
                      substr($_SERVER['SCRIPT_NAME'], 0, strpos($_SERVER['SCRIPT_NAME'],                         basename($_SERVER['SCRIPT_FILENAME']))); 


我用 $_SERVER['HTTP_HOST'] 來做,這樣就沒問題了!

2013年11月4日 星期一

AD101 來電顯示 VB.NET 2010 範例程式

原廠沒提供 .NET 的 VB 範例,只好自己來,有需要的網友請服用,
內容只有範例程式,至於怎麼用、該怎麼用,請不要問我,
技術支援請找原廠商喔!