如果引用或轉貼,麻煩註明出處與本網誌連結,否則視為侵權。

2020年4月15日

CodeIgniter架站如何與Windows AD Server認證帳號密碼?

作者: Fred F.M. Wang (FW知識瑣記) 日期:2020/4/15

企業內用CodeIgniter架站,通常需要整合公司內部的帳號系統,特別是很多企業常用的Windows AD Server。如何做到呢?

到github下載一個Auth_AD程式庫 - 這是一個基於CodeIgniter架構簡易的AD認證程式庫

其中包含三個檔案放在CodeIgniter 專案 'application' 的資料夾:
 config/auth_ad.php
 controllers/Auth.php
 libraries/Auth_AD.php


說明如下 :
一 設定檔 - config/auth_ad.php
   設定AD的認證網址與登入帳密。

二 Controller - controllers/Auth.php
    登入處理與登出處理
   也可以客製加上記住帳密的程式(有空再分享)

三 libraries/Auth_AD.php  
    AD認證程式庫
    也可以客製加上測試帳號密碼的認證(可以是自訂於AD之外的帳密資料表) ,測試環境與正式環境也可以有不同的處理(有空再分享)


上面的程式也可以自己修改,客製符合您的需求。

在您網站,輸入帳號密碼的登入網頁中,Form action呼叫上面controller "auth.php"中的login函式,
如 echo form_open("auth/login”);


2020年4月10日

[繁簡中文並存問題]PHP Web應用系統繁簡中文並存問題研究

作者: Fred F.M. Wang (FW知識瑣記) 日期:2020/4/10

PHP Web應用系統無法繁簡中文並存的問題,陸續花了一些時間研究,下面是幾個結果!
一 檔案
我上網研究了一下,在PHP Web應用系統上傳簡體檔名的附件檔名會變成亂碼的,答案是無解。
PHP 將Big5檔名(繁體)的檔案存入到Windows檔案系統(繁體中文版)沒有問題,而對包含簡體字的Unicode(UTF-16)檔名的檔案,要存入到Windows檔案系統(繁體中文版)
,則無法處理。
註:php 7.1 才支援Unicode(UTF-16)
如果要解決這個問題,其實可以繞過編碼問題,透過設計的手法解決,請參考我的另一篇PO文: 
[繁簡中文並存問題]網頁應用上傳檔案檔名變成亂碼的解決方法 
 
二 SQL Server資料庫
一篇微軟官網的文章"說明SQL Server 中儲存 UTF-8 資料", 
提到"某些應用程式 (特別是 Web 應用程式) 必須處理以 UTF-8 編碼方法所編碼的 Unicode 資料會有
問題,因為SQL Server使用Unicode 編碼方式 (UCS-2),無法將 UTF-8 識別為有效的字元資料。
PHP Web應用系統 讀入鼎新ERP中的簡體中文資料無法轉換UTF-8編碼,顯示在PHP Web應用系統
上。
註:SQL Server 2019才支援UTF-8

三 mySQL資料庫
改用mySQL資料庫,繁簡中文都可以輸入與存取

所以如果使用PHP 7.1以前的版本,資料庫用SQL Server 2019以前的版本,PHP Web應用系統要完
全繁簡並存,是做不到的

[繁簡中文並存問題]網頁應用上傳檔案檔名變成亂碼的解決方法

作者: Fred F.M. Wang (FW知識瑣記) 日期:2020/4/10


透過網頁上傳檔案有很麻煩的問題,就是上傳檔名可能有特殊字元,或各種編碼,如簡體字等,上
傳到後台後,因為平台,作業系統或資料庫的限制,檔案名字常常變成亂碼。

要處理這些亂碼的問題相當棘手,筆者研究了許多方法,都無法完美解決。

因此,有一個新的構想,也就是跳過轉碼,直接將上傳的檔案變成英數字的檔名,在系統中記錄原始
檔名與轉換過的檔名之間的關聯。下面是處理的步驟: 

想法 : 
1 上傳的檔案 一律轉存成數字編碼的檔案

2 資料庫中附件記錄 上傳的原始檔案名稱與轉換過的檔案名稱

3 程式中的連結 連結到轉換過的檔案名稱,顯示原始檔案名稱,如下 :
<a href='實體檔案路徑\轉換過的檔案名稱'>原始檔案名稱</a>

如此,不管檔案名稱有簡體字或任何無法處理的字元,都可以上傳與讀取

筆者已經依上面的構想,完成實作成功。

2020年4月9日

Javascript/jQuery流程圖程式庫整理

作者: Fred F.M. Wang (FW知識瑣記) 日期: 2019/2/17

MxGraph是一個互動式JavaScript HTML 5圖表程式庫。 mxGraph是使用SVG和HTML呈現模型的客戶端程式庫。 Draw.io就是使用此程式庫。 此程式庫自2005年開始開發,不使用任何第三方軟件,不需要任何插件,並可以整合到任何的框架中。

MxGraph的開發版本
 MxGraph drawing library example
JointJS可用於建立靜態圖或完全互動式的繪圖工具和應用程序構建器。
功能 :
. 基本圖形元(矩形,圓形,橢圓形,文本,圖像,路徑)
. 常見的圖形元件(ERD,組織圖,FSA,UML,PN,DEVS等)的即用型
圖形元件
. 基於SVG或以編程方式呈現的自定義形狀
. 互動式元素和鏈接
. 用鏈接連接圖元素
. 可自定義的鏈接,其箭頭和標籤
. 磁鐵(鏈接連接點)基本上可以放置在任何地方
. 階層圖
. JSON格式序列化/反序列化
. 放大/縮小
. 支援
觸控
 

GoJS
 GoJS example
jsUML2 library
 JsUML2 online UML editor
Mindfusion Diagram Library

Diagram.js
bpmn-js example
Draw2D
JsPlumb
 JSPlumb example

Flowchart.js
http://flowchart.js.org/


 jquery Flowchart.js, 允許你繪製流程圖的JQuery插件