在脈博網後台看到很漂亮的圖表,原來是使用 HighCharts這個元件。提供了幾乎所有常用的圖表類型:長條圖、圓餅圖、折線圖、散佈圖等….,每種圖表還可以額外的定義,可以輕鬆的打造出專屬的圖表。
記得使用時要搭配 jQuery。
HighCharts
網站:http://www.highcharts.com
大型網站架構..net 架構師.rabbitMQ.redis.行動開發.APP開發教學.PHP Laravel開發..net core C# 開發.架構師之路.Delphi開發.資料庫程式.進銷存.餐飲POS系統
在脈博網後台看到很漂亮的圖表,原來是使用 HighCharts這個元件。提供了幾乎所有常用的圖表類型:長條圖、圓餅圖、折線圖、散佈圖等….,每種圖表還可以額外的定義,可以輕鬆的打造出專屬的圖表。
記得使用時要搭配 jQuery。
HighCharts
網站:http://www.highcharts.com
前一陣子研究各家的餐飲、簡餐POS系統,意外的發現不少系統都是用Delphi寫的,資料庫也大多使用Interbase或是Firebird。
為了方便研究,就嘗試將資料庫轉到MySQL上去~記錄一下轉移方式。
工具:
做法:
在MySQL建立空白資料庫(utf8)
資料來源 (ODBC)新增 MySQL ODBC 3.51 Driver,注意一點要記得打開Details,將 Character Set 選成 Big5(不是utf8喔)
SQL Explorer→New Database→Database Driver Name選INTRBASE,SERVER NAME選擇您要連結的GDB檔案
打開Datapump,Source Alias選擇在SQL Explorer建立的名稱,User Name是SYSDBA(注意大小寫),password是 masterkey(注意大小寫)。接著Target Alias選擇MySQL ODBC建立的名稱。
ECShop搬家時,除了資料庫之外,要記得在/data/config.php也要記得複製。裡面是資料庫定義的檔案。
架設購物網站有幾種方式,一種是委託專案設計;另一種則是利用坊間免費(或付費)的套件安裝。
PHP常見的購物車套件有ECShop、OpenCart、Magento、osCommerce、Prestashop、Twe-commerce、Zen Cart 等等。朋友們可以搜尋比較看看,每一個套件都有它的優缺點~今天來介紹裡面最”輕量級”的購物車系統。
OpenCart雖然是國外開放原始碼的系統,不過在台灣有佛心來著的網友Dnono已經將它中文化了。可以到OpenCart中文版的頁面下載最新版來安裝(2013.7.17 版本為1.5.5.1)。
下載完成後,解壓縮並將upload目錄裡的檔案上傳到您的網頁空間,記得也要新增資料庫等等…..
就讓我們開始安裝囉!
第一步驟是授權條款,告訴您是使用GNU通用公共授權條款(GNU GPL),接著勾選「我同意並已閱讀內容」後按下一步。
第二,接著是檢查系統的條件,PHP的版本、擴充模組、檔案權限是否符合,畫面上出現檔案遺失的錯誤,是忘了將目錄下的config-dist.php改為config.php。
第三是配置mysql資料庫及帳號、密碼及後台帳號、密碼。設定好之後按下一步。
php很簡單的用json_encode就可以回傳json格式了!
不過遇到中文會有亂碼問題,解決方式很簡單在json_encode之前先做urlencode,json_encode之後做urldecode。
範例:
[php]
While ($row=mysql_fetch_array($result1)){
$stores[] = array("NAME" => urlencode($row["STORE_NAME"]),
"TEL" => urlencode($row["STORE_TEL"]))
}
echo urldecode(json_encode($stores));
[/php]
在設計表單時,如果內容有檔案時,我們都會在上面加上enctype=”multipart/form-data”。其實form的enctype有三種
預設的狀況下都是以application/x-www-form-urlencoded為主,會將資料做編碼傳送(空白以+代替,而特殊字元則傳成ASCII HEX。而multipart/form-data則是不做任何編碼,如果需要上傳文件時,就要使用它;text/plan則是僅將空白以+代替,常見於電子郵件表單。
延伸閱讀:
可以在after加上以下的代碼就可以了
[javascript]
$(function() {
$('#slideshow').cycle({
fx: 'scrollHorz',
timeout: 2000,
prev: '#prev',
next: '#next',
pager: '#nav',
after: onAfter
});
});function onAfter(curr,next,opts) {
var caption = 'Image ' + (opts.currSlide + 1) + ' of ' + opts.slideCount;
$('#counter').html(caption);
}
[/javascript]
Yii
http://www.yiiframework.com/
CodeIgniter
http://ellislab.com/codeigniter
http://www.codeigniter.org.tw/
資料庫(adodb)
http://adodb.sourceforge.net/
模板引擎(SMARTY)
http://www.smarty.net/
電子郵件(PHPMailer)
http://phpmailer.worxware.com/
MobileDetect
http://mobiledetect.net/
Captcha Genie
http://www.captchagenie.com/
網站為了擔心Cross-site Request Forgery(CSRF/XSRF)攻擊,所以在增加csrf-token的session,在執行時判斷網頁的csrf-token值跟session是不是一樣。
不過發現即使設定gc_maxlifetime,仍會有可能出現應該過期的session還在的問題,這才發現原來php沒有一個daemon定時掃描過期的session,而是透過session.gc_probability/session.gc_divisor的設定來決定是否啟動Garbage Collector機制的機率。
解決的方式有幾種:
1.提高session.gc_probability/session.gc_divisor的機率,不過會造成系統的性能降低。
2.如果有更動gc_maxlifetime的話,也要跟著更動session.save_path,或者使用session_save_path()
自己使用了另一個方式,增加了csrf-time,自己檢查過期的話就unset Session。