Subversion Repositories php-qbpwcf

Rev

Blame | Last modification | View Log | RSS feed

<?php

#指派命名空間
namespace qbpwcf;

#匯入外部套件
include("../allInOne.php");

#提示正在測試的項目
echo "<hr>form::button - testCase 1<br>";

/*

#函式說明:
#放置按鈕
#回傳結果:
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
#$result["function"],當前執行的函數.
#$result["error"],錯誤訊息陣列.
#$result["content"],按鈕語法. 
#必要的參數:
$conf["buttonDisplayValue"]="有form與button的ID的按鈕";#爲按鈕上顯示的文字。
#可省略的參數:
#$conf["buttonStyleName"]="";#可省略,爲按鈕所要使用的css樣式類別名稱,預設的css樣式爲 __simpleButtonLinkDefaultButtonCssStyle 。
        #其屬性爲   "width","height","font-size","text-align"
        #其屬性值爲 "100%" ,  "50"  ,    "30"   ,   "center"
#$conf["buttonActionScriptFunction"]="";#可省略,爲按下按鈕時所要執行的javaScript函式,預設不設定。
        #"document.forms.formName.submit()"爲傳送名爲testForm的表單內容
        #"window.print()"爲使用瀏覽器內建工具列印當前網頁
#$conf["buttonBorder"]="";#可省略,爲IE9內會自動產生外框,此爲外框的厚度,屬性值爲正整數,預設爲0。
#$conf["disabled"]="true";#可省略,為按鈕的功能是否要取消,若為"true"則代表要取消,若為"false"則代表功能正常,預設為"false".
#$conf["tablStart"]="true";#爲是否要表格開始。"false"代表否,"true"代表是。預設爲"false"。
#$conf["tableClass"]="";#表格要套用的css樣式,若省略的話,則預設爲 __defaultTbaleCsssStyle 其屬性爲 table-layout:fixed word-break:break-all width:100% ,須搭配 $conf["tablStart"] 與 $conf["tableEnd"] 使用。
#$conf["trStart"]="true";#爲是否要以<tr>開頭,"true"表示"是"。也可以看作新的一列開始,預設為"false".
#$conf["trClass"]="__withoutBorder";#<tr>要套用的css樣式,預設為"__withoutBorder",亦即沒有框線的樣式;"__withBorder"則爲有框線的樣式
#$conf["tdStart"]="true";#爲是否要以<td>開頭,"true"表示"是"。也可以看成列裏面的元素開始,預設為"false".
#$conf["tdClass"]="__withoutBorder";#<td>要套用的css樣式,"__withoutBorder"爲沒有框線的樣式;__withBorder爲有框線的樣式
#$conf["tdEnd"]="true";#爲是否要以</td>結尾,"true"表示"是"。也可以看成列裏面的元素結束,預設為"false".
#$conf["trEnd"]="true";#爲是否要以</tr>結尾,"true"表示"是"。也可以看作該列結束,預設為"false".
#$conf["tableEnd"]="true";#爲是否要表格結束。"false"代表否,"true"代表是,預設爲"false"。
$conf["formStart"]="true";#爲是否要表單開始,如果爲"true"則代表要表單開始,預設為"false".
$conf["action"]="formT.php";#爲表單要傳送到哪個頁面,須搭配$conf["formStart"]與$conf["formEnd"]參數使用
#$conf["target"]="";#為目標表單顯示的方式,若沒設定則預設爲"_self",其他可用的參數爲 "_blank"、"_parent"、"_top",也可以是iframe的名稱。須搭配$conf["formStart"]與$conf["formEnd"]參數使用
$conf["formEnd"]="true";#爲是否要表單結束,如果爲"true"則代表要表單結束,預設為"false".
#$conf["formId"],字串,表單的id.
$conf["formId"]="formId";
#$conf["buttonId"],字串,按鈕的id.
$conf["buttonId"]="buttonId";
#參考資料來源:
#http://stackoverflow.com/questions/3014649/how-to-disable-html-button-using-javascript
var_dump(form::button($conf));
unset($conf);

*/

#提示正在測試的項目
echo "<hr>form::button - testCase 2<br>";

/*

#函式說明:
#放置按鈕
#回傳結果:
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
#$result["function"],當前執行的函數.
#$result["error"],錯誤訊息陣列.
#$result["content"],按鈕語法. 
#必要的參數:
$conf["buttonDisplayValue"]="有表格的按鈕";#爲按鈕上顯示的文字。
#可省略的參數:
#$conf["buttonStyleName"]="";#可省略,爲按鈕所要使用的css樣式類別名稱,預設的css樣式爲 __simpleButtonLinkDefaultButtonCssStyle 。
        #其屬性爲   "width","height","font-size","text-align"
        #其屬性值爲 "100%" ,  "50"  ,    "30"   ,   "center"
#$conf["buttonActionScriptFunction"]="";#可省略,爲按下按鈕時所要執行的javaScript函式,預設不設定。
        #"document.forms.formName.submit()"爲傳送名爲testForm的表單內容
        #"window.print()"爲使用瀏覽器內建工具列印當前網頁
#$conf["buttonBorder"]="";#可省略,爲IE9內會自動產生外框,此爲外框的厚度,屬性值爲正整數,預設爲0。
#$conf["disabled"]="true";#可省略,為按鈕的功能是否要取消,若為"true"則代表要取消,若為"false"則代表功能正常,預設為"false".
$conf["tableStart"]="true";#爲是否要表格開始。"false"代表否,"true"代表是。預設爲"false"。
#$conf["tableClass"]="";#表格要套用的css樣式,若省略的話,則預設爲 __defaultTbaleCsssStyle 其屬性爲 table-layout:fixed word-break:break-all width:100% ,須搭配 $conf["tablStart"] 與 $conf["tableEnd"] 使用。
$conf["trStart"]="true";#爲是否要以<tr>開頭,"true"表示"是"。也可以看作新的一列開始,預設為"false".
#$conf["trClass"]="__withoutBorder";#<tr>要套用的css樣式,預設為"__withoutBorder",亦即沒有框線的樣式;"__withBorder"則爲有框線的樣式
$conf["tdStart"]="true";#爲是否要以<td>開頭,"true"表示"是"。也可以看成列裏面的元素開始,預設為"false".
#$conf["tdClass"]="__withoutBorder";#<td>要套用的css樣式,"__withoutBorder"爲沒有框線的樣式;__withBorder爲有框線的樣式
$conf["tdEnd"]="true";#爲是否要以</td>結尾,"true"表示"是"。也可以看成列裏面的元素結束,預設為"false".
$conf["trEnd"]="true";#爲是否要以</tr>結尾,"true"表示"是"。也可以看作該列結束,預設為"false".
$conf["tableEnd"]="true";#爲是否要表格結束。"false"代表否,"true"代表是,預設爲"false"。
#$conf["formStart"]="true";#爲是否要表單開始,如果爲"true"則代表要表單開始,預設為"false".
#$conf["action"]="";#爲表單要傳送到哪個頁面,須搭配$conf["formStart"]與$conf["formEnd"]參數使用
#$conf["target"]="";#為目標表單顯示的方式,若沒設定則預設爲"_self",其他可用的參數爲 "_blank"、"_parent"、"_top",也可以是iframe的名稱。須搭配$conf["formStart"]與$conf["formEnd"]參數使用
#$conf["formEnd"]="true";#爲是否要表單結束,如果爲"true"則代表要表單結束,預設為"false".
#參考資料來源:
#http://stackoverflow.com/questions/3014649/how-to-disable-html-button-using-javascript
var_dump(form::button($conf));
unset($conf);

*/

#提示正在測試的項目
echo "<hr>form::button - testCase 3<br>";

/*

#函式說明:
#放置按鈕
#回傳結果:
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
#$result["function"],當前執行的函數.
#$result["error"],錯誤訊息陣列.
#$result["content"],按鈕語法. 
#必要的參數:
$conf["buttonDisplayValue"]="開新分頁的按鈕";#爲按鈕上顯示的文字。
#可省略的參數:
#$conf["buttonStyleName"]="";#可省略,爲按鈕所要使用的css樣式類別名稱,預設的css樣式爲 __simpleButtonLinkDefaultButtonCssStyle 。
        #其屬性爲   "width","height","font-size","text-align"
        #其屬性值爲 "100%" ,  "50"  ,    "30"   ,   "center"
#$conf["buttonActionScriptFunction"]="";#可省略,爲按下按鈕時所要執行的javaScript函式,預設不設定。
        #"document.forms.formName.submit()"爲傳送名爲testForm的表單內容
        #"window.print()"爲使用瀏覽器內建工具列印當前網頁
#$conf["buttonBorder"]="";#可省略,爲IE9內會自動產生外框,此爲外框的厚度,屬性值爲正整數,預設爲0。
#$conf["disabled"]="true";#可省略,為按鈕的功能是否要取消,若為"true"則代表要取消,若為"false"則代表功能正常,預設為"false".
#$conf["tableStart"]="true";#爲是否要表格開始。"false"代表否,"true"代表是。預設爲"false"。
#$conf["tableClass"]="";#表格要套用的css樣式,若省略的話,則預設爲 __defaultTbaleCsssStyle 其屬性爲 table-layout:fixed word-break:break-all width:100% ,須搭配 $conf["tablStart"] 與 $conf["tableEnd"] 使用。
#$conf["trStart"]="true";#爲是否要以<tr>開頭,"true"表示"是"。也可以看作新的一列開始,預設為"false".
#$conf["trClass"]="__withoutBorder";#<tr>要套用的css樣式,預設為"__withoutBorder",亦即沒有框線的樣式;"__withBorder"則爲有框線的樣式
#$conf["tdStart"]="true";#爲是否要以<td>開頭,"true"表示"是"。也可以看成列裏面的元素開始,預設為"false".
#$conf["tdClass"]="__withoutBorder";#<td>要套用的css樣式,"__withoutBorder"爲沒有框線的樣式;__withBorder爲有框線的樣式
#$conf["tdEnd"]="true";#爲是否要以</td>結尾,"true"表示"是"。也可以看成列裏面的元素結束,預設為"false".
#$conf["trEnd"]="true";#爲是否要以</tr>結尾,"true"表示"是"。也可以看作該列結束,預設為"false".
#$conf["tableEnd"]="true";#爲是否要表格結束。"false"代表否,"true"代表是,預設爲"false"。
$conf["formStart"]="true";#爲是否要表單開始,如果爲"true"則代表要表單開始,預設為"false".
$conf["action"]="formT.php";#爲表單要傳送到哪個頁面,須搭配$conf["formStart"]與$conf["formEnd"]參數使用
$conf["target"]="_blank";#為目標表單顯示的方式,若沒設定則預設爲"_self",其他可用的參數爲 "_blank"、"_parent"、"_top",也可以是iframe的名稱。須搭配$conf["formStart"]與$conf["formEnd"]參數使用
$conf["formEnd"]="true";#爲是否要表單結束,如果爲"true"則代表要表單結束,預設為"false".
#參考資料來源:
#http://stackoverflow.com/questions/3014649/how-to-disable-html-button-using-javascript
var_dump(form::button($conf));
unset($conf);

*/

#提示正在測試的項目
echo "<hr>form::start & form::inputHidden & form::button form::end & form::responseInputData & form::responseInputDataSecurityEnhance & form::receiveCustomMultiData & form::responseMultiInputDataSecurityEnhance & form::receiveCustomMultiData";

/*

#涵式說明:
#表單開始
#回傳的結果:
#$result,表單開始的語法
#必填的參數:
$conf["action"]="formT.php";#爲要交給那個檔案處理該表單傳送的內容
#可省略的參數:
#$conf["name"]="";#爲該表單的名稱
#$conf["method"]="";#爲傳輸的方法,若沒設定則預設爲post,其他可用的參數爲get。
#$conf["target"]="";#為顯示的方式,若沒設定則預設爲"_self",其他可用的參數爲 "_blank"、"_parent"、"_top",也可以是iframe的名稱。
#$conf["tableStart"]="true";#爲該表單是否要以<table>開始。"true"爲是;
#$conf["tableClass"]="";#表格要套用的css樣式,若省略的話,則預設爲 __defaultTbaleCsssStyle 其屬性爲 table-layout:fixed word-break:break-all width:100%
var_dump(form::start($conf));
unset($conf);   

#涵式說明:
#隱藏的表單傳送資訊
#回傳的結果:
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
#$result["error"],錯誤訊息
#$result["content"],語法
#$result["function"],當前執行的函數名稱
#必填的參數:
$conf["name"]="responseInputData";#隱藏的表單名稱
$conf["value"]="responseInputData";#等於要傳送的數值            
#可省略的參數:
var_dump(form::inputHidden($conf));
unset($conf);

#涵式說明:
#隱藏的表單傳送資訊
#回傳的結果:
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
#$result["error"],錯誤訊息
#$result["content"],語法
#$result["function"],當前執行的函數名稱
#必填的參數:
$conf["name"]="responseInputDataSecurityEnhance";#隱藏的表單名稱
$conf["value"]="<iframe=responseInputDataSecurityEnhance></iframe>";#等於要傳送的數值           
#可省略的參數:
var_dump(form::inputHidden($conf));
unset($conf);

#涵式說明:
#隱藏的表單傳送資訊
#回傳的結果:
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
#$result["error"],錯誤訊息
#$result["content"],語法
#$result["function"],當前執行的函數名稱
#必填的參數:
$conf["name"]="responseMultiInputData1";#隱藏的表單名稱
$conf["value"]="responseMultiInputData1";#等於要傳送的數值              
#可省略的參數:
var_dump(form::inputHidden($conf));
unset($conf);

#涵式說明:
#隱藏的表單傳送資訊
#回傳的結果:
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
#$result["error"],錯誤訊息
#$result["content"],語法
#$result["function"],當前執行的函數名稱
#必填的參數:
$conf["name"]="responseMultiInputData2";#隱藏的表單名稱
$conf["value"]="responseMultiInputData2";#等於要傳送的數值              
#可省略的參數:
var_dump(form::inputHidden($conf));
unset($conf);

#涵式說明:
#隱藏的表單傳送資訊
#回傳的結果:
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
#$result["error"],錯誤訊息3
#$result["content"],語法
#$result["function"],當前執行的函數名稱
#必填的參數:
$conf["name"]="responseMultiInputData3";#隱藏的表單名稱
$conf["value"]="responseMultiInputData3";#等於要傳送的數值              
#可省略的參數:
var_dump(form::inputHidden($conf));
unset($conf);

#涵式說明:
#隱藏的表單傳送資訊
#回傳的結果:
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
#$result["error"],錯誤訊息
#$result["content"],語法
#$result["function"],當前執行的函數名稱
#必填的參數:
$conf["name"]="responseMultiInputDataSecurityEnhance1";#隱藏的表單名稱
$conf["value"]="responseMultiInputDataSecurityEnhance1";#等於要傳送的數值               
#可省略的參數:
var_dump(form::inputHidden($conf));
unset($conf);

#涵式說明:
#隱藏的表單傳送資訊
#回傳的結果:
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
#$result["error"],錯誤訊息
#$result["content"],語法
#$result["function"],當前執行的函數名稱
#必填的參數:
$conf["name"]="responseMultiInputDataSecurityEnhance2";#隱藏的表單名稱
$conf["value"]="responseMultiInputDataSecurityEnhance2";#等於要傳送的數值               
#可省略的參數:
var_dump(form::inputHidden($conf));
unset($conf);

#涵式說明:
#隱藏的表單傳送資訊
#回傳的結果:
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
#$result["error"],錯誤訊息
#$result["content"],語法
#$result["function"],當前執行的函數名稱
#必填的參數:
$conf["name"]="responseMultiInputDataSecurityEnhance3";#隱藏的表單名稱
$conf["value"]="<hr><a href=http://www.google.com.tw></a><iframe=responseMultiInputDataSecurityEnhance3.php></iframe><br>";#等於要傳送的數值            
#可省略的參數:
var_dump(form::inputHidden($conf));
unset($conf);

#函數說明:
#建立多個session變數
#回傳結果:
#$result["status"],執行狀態,"true"代表執行成功;"false"代表執行失敗.
#$reuslt["function"],當前執行的函數.
#$result["error"],錯誤訊息陣列.
#必填參數:
#$conf["sessionArrayName"],字串陣列,要建立的session陣列變數名稱,建議可採用name1.name2.name3的格式。
$conf["sessionArrayName"]=array("responseMultiInputDataSecurityEnhance4","responseMultiInputDataSecurityEnhance5");
#$conf["sessionArrayValue"],字串陣列,session變數的內容要存放什麼呢?
$conf["sessionArrayValue"]=array("responseMultiInputDataSecurityEnhance4","<hr><a href=http://www.google.com.tw></a><iframe=responseMultiInputDataSecurityEnhance5.php></iframe>");
#可省略參數:
#無
var_dump(session::createMulti($conf));
unset($conf);
                        
#涵式說明:
#隱藏的表單傳送資訊
#回傳的結果:
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
#$result["error"],錯誤訊息
#$result["content"],語法
#$result["function"],當前執行的函數名稱
#必填的參數:
$conf["name"]="receiveCustomMultiData1";#隱藏的表單名稱
$conf["value"]="receiveCustomMultiData1";#等於要傳送的數值              
#可省略的參數:
var_dump(form::inputHidden($conf));
unset($conf);

#涵式說明:
#隱藏的表單傳送資訊
#回傳的結果:
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
#$result["error"],錯誤訊息
#$result["content"],語法
#$result["function"],當前執行的函數名稱
#必填的參數:
$conf["name"]="receiveCustomMultiData2";#隱藏的表單名稱
$conf["value"]="<hr><a href = receiveCustomMultiData2></a><p>";#等於要傳送的數值                
#可省略的參數:
var_dump(form::inputHidden($conf));
unset($conf);
                
#函式說明:
#放置按鈕
#回傳結果:
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
#$result["function"],當前執行的函數.
#$result["error"],錯誤訊息陣列.
#$result["content"],按鈕語法. 
#必要的參數:
$conf["buttonDisplayValue"]="test";#爲按鈕上顯示的文字。
#可省略的參數:
#$conf["buttonStyleName"]="";#可省略,爲按鈕所要使用的css樣式類別名稱,預設的css樣式爲 __simpleButtonLinkDefaultButtonCssStyle 。
        #其屬性爲   "width","height","font-size","text-align"
        #其屬性值爲 "100%" ,  "50"  ,    "30"   ,   "center"
#$conf["buttonActionScriptFunction"]="";#可省略,爲按下按鈕時所要執行的javaScript函式,預設不設定。
        #"document.forms.formName.submit()"爲傳送名爲testForm的表單內容
        #"window.print()"爲使用瀏覽器內建工具列印當前網頁
#$conf["buttonBorder"]="20";#可省略,爲IE9內會自動產生外框,此爲外框的厚度,屬性值爲正整數,預設爲0。
#$conf["disabled"]="true";#可省略,為按鈕的功能是否要取消,若為"true"則代表要取消,若為"false"則代表功能正常,預設為"false".
#$conf["tableStart"]="true";#爲是否要表格開始。"false"代表否,"true"代表是。預設爲"false"。
#$conf["tableClass"]="";#表格要套用的css樣式,若省略的話,則預設爲 __defaultTbaleCsssStyle 其屬性爲 table-layout:fixed word-break:break-all width:100% ,須搭配 $conf["tablStart"] 與 $conf["tableEnd"] 使用。
#$conf["trStart"]="true";#爲是否要以<tr>開頭,"true"表示"是"。也可以看作新的一列開始,預設為"false".
#$conf["trClass"]="__withoutBorder";#<tr>要套用的css樣式,"__withoutBorder"爲沒有框線的樣式;__withBorder爲有框線的樣式
#$conf["tdStart"]="true";#爲是否要以<td>開頭,"true"表示"是"。也可以看成列裏面的元素開始,預設為"false".
#$conf["tdClass"]="__withoutBorder";#<td>要套用的css樣式,"__withoutBorder"爲沒有框線的樣式;__withBorder爲有框線的樣式
#$conf["tdEnd"]="true";#爲是否要以</td>結尾,"true"表示"是"。也可以看成列裏面的元素結束,預設為"false".
#$conf["trEnd"]="true";#爲是否要以</tr>結尾,"true"表示"是"。也可以看作該列結束,預設為"false".
#$conf["tableEnd"]="true";#爲是否要表格結束。"false"代表否,"true"代表是,預設爲"false"。
#$conf["formStart"]="true";#爲是否要表單開始,如果爲"true"則代表要表單開始,預設為"false".
#$conf["action"]="";#爲表單要傳送到哪個頁面,須搭配$conf["formStart"]與$conf["formEnd"]參數使用
#$conf["target"]="_blank";#為目標表單顯示的方式,若沒設定則預設爲"_self",其他可用的參數爲 "_blank"、"_parent"、"_top",也可以是iframe的名稱。須搭配$conf["formStart"]與$conf["formEnd"]參數使用
#$conf["formEnd"]="true";#爲是否要表單結束,如果爲"true"則代表要表單結束,預設為"false".
#參考資料來源:
#http://stackoverflow.com/questions/3014649/how-to-disable-html-button-using-javascript
var_dump(form::button($conf));
unset($conf);

#涵式說明:
#若有表單透過POST或GET的方式傳送的資料,則將內容回傳,若是用GET的方式傳送則轉址到 $headerLocation
#回傳的結果:
#$result["status"],執行正常與否,"true"代表正常,"false"代表不正常.
#$result["error"],錯誤訊息陣列.
#$resutl["function"],當前執行的涵式名稱.
#$result["content"],表單結束的語法.              
#必填的參數:
$conf["inputName"]="responseInputData";#讀取表單的資料時用來辨別的名稱。
#可省略的參數
#$conf["refuseGetMethod"]="true";#是否要擋 get 傳值,如果有設置,則不檔GET傳值。
#$conf["transferLocation"]="";#如果是用GET傳值,則轉址到那個網址,預設爲資安素養網"https://isafe.moe.edu.tw/"
#$conf["correctCharacter"]="false";#如果爲"false",則不處理可能導致網頁出問題的字串,預設為"true".
#參考資料:
#伺服器端的變數 -> http://php.net/manual/en/reserved.variables.server.php
var_dump(form::responseInputData($conf));
unset($conf);

#涵式說明:
#若有表單透過POST或GET的方式傳送的資料,則將內容回傳,若是用GET的方式傳送則轉址到 $headerLocation
#回傳的結果:
#$result["status"],是否執行成功,"true"代表執行成功;"false"代表執行失敗。
#$result["function"],當前執行的函數名稱.
#$result["error"],錯誤訊息。
#$result["reveivedVarName"],接收到的變數名稱
#$result["receivedVarValue"],接收到的變數內容
#$result["HTTP_REFERER"],前一頁的網址,null為不存在的意思.
#必填的參數:
$conf["inputName"]="responseInputDataSecurityEnhance";#讀取表單的資料時用來辨別的名稱,
#可省略的參數
#$conf["receiveType"]="POST";#要接收 post/POST 或 get/GET 的變數,預設爲 POST
#$conf["allowGet"]="true";#是否要允許 get 傳值,"true",代表允許;"false" ,代表不允許,預設爲不允許。
#$conf["limitPrePage"]=array();#限定前一頁的網址須爲改陣列裏面的其中一個位置,才能接收內容,不符合則轉址。
#$conf["transferLocation"]="";#如果是用GET傳值,則轉址到那個網址,預設爲資安素養網"https://isafe.moe.edu.tw/"
#$conf["correctCharacter"]="false";#如果爲"false",則不處理可能導致網頁出問題的字串,預設為"true".
#參考資料:
#伺服器端的變數 -> http://php.net/manual/en/reserved.variables.server.php
var_dump(form::responseInputDataSecurityEnhance($conf));
unset($conf);

#涵式說明:
#可以處理多個透過GET、POST而來的資訊,儲存成變數。
#回傳的結果:
#$result["status"],執行正常與否,"true"代表正常,"false"代表不正常.
#$result["error"],錯誤訊息陣列.
#$resutl["function"],當前執行的涵式名稱.
#$result["inputDataContent"],所接收的參數陣列。
#$result["inputDataCount"],總共接收到幾個元素。
#$result["inputDataKey"],所接收到的參數陣列元素key值。
#必填的參數:
$conf["method"]="post";#傳送過來的資料是用"post/POST"還是"get/GET"?
#可省略的參數:
#$conf["stopGetMethod"]="true";#若設爲"true",則遇到以get方式傳送過來的數值時,則進行轉址,若為"false"則不轉址,預設為"true".
#$conf["transferLocation"]="";#遇到get傳值的時候要轉址到的頁面,預設爲資安素養網"https:#isafe.moe.edu.tw/"
$conf["ignore"]=array("responseInputData","responseInputDataSecurityEnhance");#如果要接收的變數名稱與該陣列其一元素一樣,則不放進要回傳的變數裏面。
#$conf["correctCharacter"]="false";#如果爲"false",則不處理可能導致網頁出問題的字串,預設爲要進行處理。
#參考資料來源:
#foreach 的用法 -> http:#php.net/manual/en/control-structures.foreach.php
#改善建議:
#建議改用 responseInputData 實作
var_dump(form::responseMultiInputData($conf));
unset($conf);

#涵式說明:
#可以處理多個透過GET、POST而來的資訊,儲存成變數,同時限定傳送的方法、來源,來增加安全性,檢查有沒有皆收到必須要接收到的變數,沒有接收到的變數可以指定從session變數中取得.
#回傳的結果:
#$result["status"],執行正常與否,"true"代表正常,"false"代表不正常.
#$result["error"],錯誤訊息陣列.
#$resutl["function"],當前執行的涵式名稱.
#$result["warning"],警告訊息陣列.
#$result["passed"],是否有皆收到全部該接收到的變數,若有設定$conf["checkedVarName"]的話,執行正常後會回傳該結果。
#$result["lostVarName"],沒有皆收到的變數名稱陣列
#$result["inputDataContent"],所接收的參數陣列.
#$result["inputDataContent"]["變數名稱"],所接收變數的內容.
#$result["inputDataCount"],從表單總共接收到幾個元素.
#$result["HTTP_REFERER"],前一頁的網址,null代表不存在.
#必填的參數:
#$conf["method"],字串,傳送過來的資料是用"post/POST"還是"get/GET"?
$conf["method"]="post";
#可省略的參數:
#$conf["allowGet"],字串,是否要允許 get 傳值,"true",代表允許;"false" ,代表不允許,預設爲不允許.
#$conf["allowGet"]="true";
#$conf["limitPrePage"],字串陣列,是否要限定前一頁的網址為哪些,才能接收內容,不符合則轉址.
$conf["limitPrePage"]=array("formT.php","index.php","testCase");
#$conf["transferLocation"],字串,遇到get傳值,或前一個頁面不符合要求時要轉址到的頁面,預設爲資安素養網"https://isafe.moe.edu.tw/"
#$conf["transferLocation"]="";
#$conf["ignore"]=字串陣列,如果要接收的變數名稱與該陣列其一元素一樣,則不放進要回傳的變數裏面.
$conf["ignore"]=array("responseInputData","responseInputDataSecurityEnhance");
#$conf["correctCharacter"]=,字串,如果爲"false",則不處理可能導致網頁出問題的字串,預設爲要進行處理.
#$conf["correctCharacter"]="false";
#$conf["checkedVarName"],字串陣列,為檢查是否有接收到哪些變數.
$conf["checkedVarName"]=array("responseMultiInputDataSecurityEnhance1","responseMultiInputDataSecurityEnhance2","responseMultiInputDataSecurityEnhance3","responseMultiInputDataSecurityEnhance4","responseMultiInputDataSecurityEnhance5"); 
#$conf["canBeEmptyString"],字串,用$conf["checkedVarName"]指定接收的變數名稱陣列,若接收到的內容為空字串是否算有接收到內容,預設為"false","true"代表接收到的內容可以為空字串,"false"代表接收到的內容不可以為空字串.      
#$conf["canBeEmptyString"]="false";
#$conf["sessionNameArray"],陣列,若存在則代表若沒有從表單取得變數,則從session變數中取得內容,每個元素代表每個表單變數對應的session名稱,若不是要改用session方式取得變數內容的變數,請輸入null,數量請跟$conf["checkedVarName"]參數一致.
$conf["sessionNameArray"]=array(null,null,null,"responseMultiInputDataSecurityEnhance4","responseMultiInputDataSecurityEnhance5");
#$conf["unsetSessionArray"],陣列,與$conf["sessionNameArray"]對應的元素,是否要接收到變數後就卸除,"true"代表要卸除,"false"代表不要卸除.
$conf["unsetSessionArray"]=array("false","false","false","true","true");
#參考資料來源:
#foreach 的用法 -> http://php.net/manual/en/control-structures.foreach.php
#伺服器端的變數 -> http://php.net/manual/en/reserved.variables.server.php
#備註:
#表單變數的名稱若含有「.」,則會變成「-」。
var_dump(form::responseMultiInputDataSecurityEnhance($conf));
unset($conf);

#函數說明:
#能夠接收數個指定的變數名稱
#回傳的結果:
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
#$result["function"],當前執行的函數
#$result["error"],涵式錯誤訊息,若爲""則表示沒有錯誤 
#$result["getedValue"][$elementKey],取得的變數內容,請將「$elementKey」替換成要取得的表單傳送名稱,例如:$result["getedValue"]["account"],如果該變數不存在則其值會等於null.
#必填的參數:
$conf["receivedVarArray"]=array("receiveCustomMultiData1","receiveCustomMultiData2","receiveCustomMultiData3");#要接收的參數陣列
#可省略的參數:
#$conf["method"]=;#傳送過來的資料是用"post/POST"還是"get/GET"?預設爲post。
var_dump(form::receiveCustomMultiData($conf));

*/

#提示正在測試的項目
echo "<hr>form::sendHugeDataButton & form::responseMultiInputData<br>"; 

/*

#涵式說明:
#一個簡單的按鈕,按了可以到指定的頁面。同時也可以傳送多個隱藏的變數
#必填的參數:
$conf["actionPage"]=$_SERVER["PHP_SELF"];#按鈕按了之後要到哪個地方?若爲 $_SERVER["PHP_SELF"],則爲回到目前頁面。
$conf["buttonDisplayValue"]="test";#按鈕上要顯示的文字
#可以省略的參數:
#$conf["buttonStyleName"]="";#按鈕的css樣式應該爲何,若省略的話預設會採用 __simpleButtonLinkDefaultButtonCssStyle 的樣式
        #其屬性爲   "width","height","font-size","text-align"
        #其屬性值爲 "300"  ,  "50"  ,    "30"   ,   "center"
#備註:
# __simpleButtonLinkDefaultButtonCssStyle,爲預設的按鈕css樣式,請勿使用相同類別名稱的css樣式,以免衝突。
# __simpleButtonLinkDefaultTableCssStyle,爲預設的表格css樣式,請勿使用相同類別名稱的css樣式,以免衝突。
$conf["hiddenVarName"]=array("id","account","password");#要傳送的隱藏變數名稱,與 $conf["hiddenVarContent"] 相對應。
$conf["hiddenVarContent"]=array("777","guestAccount","guestPassword");#要傳誦的隱藏變數內容,與 $conf["hiddenVarName"] 相對應。
#$conf["disabled"],字串,為按鈕的功能是否要取消,若為"true"則代表要取消,若為"false"則代表功能正常,預設為"false".
#$conf["disabled"]="true";
#$conf["formStart"],字串,爲是否要表單開始,如果爲"true"則代表要表單開始,預設爲"false".
$conf["formStart"]="true";
#$conf["method"],字串,爲傳輸的方法,若沒設定則預設爲post,其他可用的參數爲get。
#$conf["method"]="post";
#$conf["formName"],字串,該表單的名稱
$conf["formName"]="sendHugeDataButtonFormName";
#$conf["buttonId"],字串,按鈕的id
$conf["buttonId"]="sendHugeDataButtonId";
#$conf["actionPage"],字串,按鈕按了之後要到哪個地方?若爲 $_SERVER["PHP_SELF"],則爲回到目前頁面。
#$conf["actionPage"]="";
#$conf["buttonActionScriptFunction"],字串,爲按下按鈕時所要執行的javaScript函式,預設不設定,可以是"document.forms.formName.submit()"(傳送名爲testForm的表單內容).
#$conf["buttonActionScriptFunction"]="";
#$conf["formEnd"],字串,爲是否要表單結束,如果爲"true"則代表要表單結束,預設爲"false"
$conf["formEnd"]="true";
#$conf["tableStart"],字串,爲是否要表格開始,"true"表示"是",預設為"false".
#$conf["tableStart"]="true";
#$conf["tableClass"],字串,爲表格要採用的css樣式名稱,"__withoutBorder"代表沒有框線的預設樣式;"__withBorder"代表有框線的預設樣式,預設為"__withoutBorder".
#$conf["tableClass"]="__withoutBorder";
#$conf["trStart"],字串,爲是否要以<tr>開頭,"true"表示"是"。也可以看作新的一列開始,預設為"false".
#$conf["trStart"]="true"
#$conf["trClass"],字串,列開始的css樣式,"__withoutBorder"代表沒有框線的預設樣式;"__withBorder"代表有框線的預設樣式,預設為"__withoutBorder"
#$conf["trClass"]="__withoutBorder";
#$conf["tdStart"],字串,爲是否要以<td>開頭,"true"表示"是"。也可以看成列裏面的元素開始,預設為"false"
#$conf["tdStart"]="true";
#$conf["tdClass"],字串,行開始的css樣式,"__withoutBorder"代表沒有框線的預設樣式;"__withBorder"代表有框線的預設樣式,預設為"__withoutBorder"
#$conf["tdClass"]="__withoutBorder";
#$conf["tdEnd"],字串,爲是否要以</td>結尾,"true"表示"是"。也可以看成列裏面的元素結束,預設為"false".
#$conf["tdEnd"]="true";
#$conf["trEnd"],字串,爲是否要以</tr>結尾,"true"表示"是"。也可以看作該列結束,預設為"false".
#$conf["trEnd"]="true";
#$conf["displayTarget"],字串,頁面的呈現方法,可以是開新視窗(_blank)、在目前頁面、頁框裏面(_self)、在父頁面(_parent)、最上層頁面(_top),預設為"_top"。
#$conf["displayTarget"]="";
#$conf["tableEnd"],字串,爲是否要表格結束,"true"表示"是",預設為"false".
#$conf["tableEnd"]="true";
var_dump(form::sendHugeDataButton($conf));
unset($conf);

#涵式說明:
#可以處理多個透過GET、POST而來的資訊,儲存成變數。
#回傳的結果:
#$result["inputDataContent"],所接收的參數陣列。
#$result["inputDataCount"],總共接收到幾個元素。
#$result["inputDataKey"],所接收到的參數陣列元素key值。
        #必填的參數:
$conf["method"]="post";#傳送過來的資料是用"post/POST"還是"get/GET"?
#可省略的參數:
#$conf["stopGetMethod"]="true";#若設爲"true",則遇到以get方式傳送過來的數值時,則進行轉址。
#$conf["transferLocation"]="";#遇到get傳值的時候要轉址到的頁面,預設爲資安素養網"https:#isafe.moe.edu.tw/"
#$conf["ignore"]=array();#如果要接收的變數名稱與該陣列其一元素一樣,則不放進要回傳的變數裏面。
#$conf["correctCharacter"]="false";#如果爲"false",則不處理可能導致網頁出問題的字串,預設爲要進行處理。
#參考資料來源:
#foreach 的用法
#http:#php.net/manual/en/control-structures.foreach.php
var_dump(form::responseMultiInputData($conf));
unset($conf);

#函數說明:
#能夠接收數個指定的變數名稱
#回傳的結果($result爲回傳結果的範例變數名稱,請依實際情況進行修改。):
#$result["getedValue"][$elementKey],取得的變數內容,請將「$elementKey」替換成要取得的表單傳送名稱。
        #例如:$result["getedValue"]["account"]
#必填的參數:
$conf["receivedVarArray"]=array("account","password");#要接收的參數陣列
#可省略的參數:
#$conf["method"]=;#傳送過來的資料是用"post/POST"還是"get/GET"?預設爲post。
#$conf["stopGetMethod"]="true";#若設爲"true",則遇到以get方式傳送過來的數值時,則進行轉址。預設爲false
#$conf["transferLocation"]="";#遇到get傳值的時候要轉址到的頁面,預設爲資安素養網"https:#isafe.moe.edu.tw/"
var_dump(form::receiveCustomMultiData($conf));
unset($conf);

*/

#說明正在測試的部分
echo"<hr>form::buttonImg - testCase 1<br>";

/*

#以圖片代替的表單送出扭
#回傳結果:
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
#$result["function"],當前執行的函數.
#$result["error"],錯誤訊息陣列.
#$result["content"],按鈕語法. 
#必填的參數:
$conf["img"]="fedoraBear.png";#爲要作爲按鈕的圖片位置。
#可省略的參數:
$conf["formStart"]="true";#爲是否要表單開始,如果爲"true"則代表要表單開始,預設為"false".
$conf["formAction"]="formT.php";#字串,表單要傳送到哪邊
#$conf["legend"]="圖片按鈕";#字串,表單的名稱.
#$conf["formMethod"]="";#字串,表單傳送的方式,預設為"post",也可以使用"get".
$conf["formTarget"]="_blank";#字串,表單的回應要呈現在哪邊,預設為"_self"(當前頁面、頁框),"_top"為整個頁面,"_parent"為父頁面,"_blank"為開新頁面,也可以為iframe的名稱.
$conf["formEnd"]="true";#爲是否要表單結束,如果爲"true"則代表要表單結束,預設為"false".
#$conf["width"]="";#爲按鈕圖片的寬度,若省略,則按照原始圖片的寬度。
#$conf["height"]="";#爲按鈕圖片的高度,若省略,則按照原始圖片的高度。
#$conf["class"]="";#爲按鈕圖片要套用的css樣式名稱,若省略,則不套用任何css樣式。
#$conf["trStart"]="true";#爲是否要以<tr>開頭,"true"表示"是"。也可以看作新的一列開始。
#$conf["tdStart"]="true";#爲是否要以<td>開頭,"true"表示"是"。也可以看成列裏面的元素開始
#$conf["tdEnd"]="true";#爲是否要以</td>結尾,"true"表示"是"。也可以看成列裏面的元素結束
#$conf["trEnd"]="true";#爲是否要以</tr>結尾,"true"表示"是"。也可以看作該列結束。
#$conf["formId"],字串,表單的id.
$conf["formId"]="formId";
#$conf["buttonId"],字串,按鈕的id.
$conf["buttonId"]="buttonId";
#備註:
#使用圖片作為傳送按時,會傳送點擊圖片的x軸與y軸數數值.
var_dump(form::buttonImg($conf));
unset($conf);

*/

#說明正在測試的部分
echo"<hr>form::buttonReset - testCase 1";

/*

#涵式說明:
#表單開始
#回傳的結果:
#$result,表單開始的語法
#必填的參數:
$conf["action"]="formT.php";#爲要交給那個檔案處理該表單傳送的內容
#可省略的參數:
#$conf["name"]="";#爲該表單的名稱
#$conf["method"]="";#爲傳輸的方法,若沒設定則預設爲post,其他可用的參數爲get。
#$conf["target"]="";#為顯示的方式,若沒設定則預設爲"_self",其他可用的參數爲 "_blank"、"_parent"、"_top",也可以是iframe的名稱。
#$conf["tableStart"]="true";#爲該表單是否要以<table>開始。"true"爲是;
#$conf["tableClass"]="";#表格要套用的css樣式,若省略的話,則預設爲 __defaultTbaleCsssStyle 其屬性爲 table-layout:fixed word-break:break-all width:100%
var_dump(form::start($conf));
unset($conf);   

#涵式說明:
#可以輸入文字的表單
#回傳的結果:
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
#$result["function"],當前執行的函數.
#$result["error"],錯誤訊息陣列.
#$result["content"],按鈕語法. 
#必填的參數
$conf["name"]="oneLine";#爲該文字輸入框的名稱,用於讓接收頁面讀取的名稱。
$conf["readOnly"]="false";#爲該文字框是否可以填寫資料,若要只能觀看不能填寫,那麼就必須將其值設爲"true",反之要設爲"false"
#可省略的參數:
#$conf["width"]="";#爲文字框的外觀長度,預設為"100%".
$conf["maxInputLength"]="10";#爲可輸入的最大位元長度,預設不限制。
$conf["autoFocus"]="true";#是否為將填寫的指標移到該表單,"true"代表要,預設為"false".
$conf["value"]="清空後會顯示文字";#爲該文字框預設要顯示的文字,預設爲""。     
#$conf["class"]="";#爲要套用的css樣式,若省略,則會套用預設的 "__inputTextCssStyle" 樣式,其屬性爲 "width:100%","font-size:30px"
#$conf["jsActivitor"]="";#爲觸發js的條件,可以是"onChange"(已改變內容時)、"onClick"(按下按鈕時)、"onkeyup"(當鍵盤按下放開後)、"onmouseover"(當滑鼠移過去的時候)...,須搭配$conf["jsSubmitActionTarget"]參數。
#$conf["jsAction"]="";#爲該js是要做什麼,可以是"document.testForm.submit()"(傳送名爲testForm的表單內容)...,須搭配$conf["jsActivitor"]參數。         
#$conf["trStart"]="true";#爲是否要以<tr>開頭,"true"表示"是"。也可以看作新的一列開始,預設為"false".
#$conf["tdStart"]="true";#爲是否要以<td>開頭,"true"表示"是"。也可以看成列裏面的元素開始,預設為"false".
#$conf["formStart"]="true";#爲是否要以<form>開頭,"true"表示"是",也可以看成表單的開始,預設為"false".
#$conf["formAction"]="";#表單遞交的目的地,若$conf["formStart"]為"true",則該參數不能省略.
#$conf["formName"]="";#爲該表單的名稱
#$conf["formMethod"]="";#爲傳輸的方法,若沒設定則預設爲post,其他可用的參數爲get。
#$conf["formTarget"]="";#為顯示的方式,若沒設定則預設爲"_self",其他可用的參數爲 "_blank"、"_parent"、"_top",也可以是iframe的名稱。
#$conf["tableStart"]="true";#爲該表單是否要以<table>開始。"true"爲是,預設為"false".
#$conf["tableClass"]="";#表格要套用的css樣式,若爲"__withoutBorder"的話則套用無框線的預設樣式;若爲"__withBorder"的話,則爲有框線的預設樣式,預設為"__withoutBorder".
#$conf["formEnd"]="true";#爲是否要以<form>結尾,"true"表示"是",也可以看成表單的結束,預設為"false".
#$conf["tdEnd"]="true";#爲是否要以</td>結尾,"true"表示"是"。也可以看成列裏面的元素結束,預設為"false".
#$conf["trEnd"]="true";#爲是否要以</tr>結尾,"true"表示"是"。也可以看作該列結束,預設為"false".
#$conf["tableEnd"]="true";#爲該表單是否要以</table>結尾,"true"爲是,預設為"false".
#$conf["autocomplete"],字串,是否依據使用者過往輸入的記錄來提示可能要的輸入內容,"on"為啟用,"off"為停用,預設為"on".
$conf["autocomplete"]="off";
#$conf["required"],字串,該欄位是否必填,"true"為必填,"false"為可留空,預設為"false".
$conf["required"]="true";
#$conf["comment"],字串,輸入方框上面要放哪些註解文字,亦即用label來呈現,同時指定"for"屬性的數值為當前"input"標籤的id,意即參數"name"的內容.
$conf["comment"]="我是Label喲~";
#$conf["placeholder"],字串,當沒有內容時要顯示的內容.
$conf["placeholder"]="請隨意輸入";
#$conf["br"],字串,"true"代表最後要換行,預設為"false".
#$conf["br"]="true";
#$conf["p"],字串,"true"代表最後要空一行,預設為"false".
#$conf["p"]="true";
#參考資料來源:
#input=>http://www.w3schools.com/tags/tag_input.asp
var_dump(form::inputText($conf));
unset($conf);

#說明:
#表單清空的按鈕
#必填的參數:
$conf["value"]="預設值";#爲清空表單內容的按鈕顯示名稱
#可省略的參數:
#$conf["class"]="";#爲要套用的css樣式名稱。
#$conf["trStart"]="true";#爲是否要以<tr>開頭,"true"表示"是"。也可以看作新的一列開始。
#$conf["tdStart"]="true";#爲是否要以<td>開頭,"true"表示"是"。也可以看成列裏面的元素開始
        #$conf["tdEnd"]="true";#爲是否要以</td>結尾,"true"表示"是"。也可以看成列裏面的元素結束
#$conf["trEnd"]="true";#爲是否要以</tr>結尾,"true"表示"是"。也可以看作該列結束。
#$conf["buttonId"],字串,按鈕的id.
$conf["buttonId"]="resetButtonId";
var_dump(form::buttonReset($conf));
unset($conf);

#涵式說明:
#表單結束
#回傳的結果:
#$result,表單結束的語法
#必填寫的參數:
$conf["tableEnd"]="false";#爲該表單是否要以</table>結尾。"true"爲是;"false"爲否。
var_dump(form::end($conf));
unset($conf);

*/

#說明正在測試的部分
echo"<hr>form::start & form::inputTextArea & form::inputPassword & form::inputSelect & form::inputRadio & form::inputCheckBox & form::end";

/*

#涵式說明:
#表單開始
#回傳的結果:
#$result,表單開始的語法
#必填的參數:
$conf["action"]="formT.php";#爲要交給那個檔案處理該表單傳送的內容
#可省略的參數:
#$conf["name"]="";#爲該表單的名稱
#$conf["method"]="";#爲傳輸的方法,若沒設定則預設爲post,其他可用的參數爲get。
#$conf["target"]="";#為顯示的方式,若沒設定則預設爲"_self",其他可用的參數爲 "_blank"、"_parent"、"_top",也可以是iframe的名稱。
#$conf["tableStart"]="true";#爲該表單是否要以<table>開始。"true"爲是;
#$conf["tableClass"]="";#表格要套用的css樣式,若省略的話,則預設爲 __defaultTbaleCsssStyle 其屬性爲 table-layout:fixed word-break:break-all width:100%
echo form::start($conf)["content"];
unset($conf);   

#涵式說明:
#可以輸入文字的區塊
#回傳結果:
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
#$result["function"],當前執行的函數.
#$result["error"],錯誤訊息陣列.
#$result["content"],按鈕語法.               
#必填的參數:
$conf["name"]="textArea";#爲文字輸入框的名稱,供接收端辨識用。
$conf["readOnly"]="false";#爲是否要爲唯讀,如果爲"true",則爲唯讀。反之則爲"false"。
#可省略的參數:
$conf["width"]="100%";#為輸入框的寬度,預設不指定.
#$conf["cols"]="";#爲文字輸入框的欄位數(寬),預設爲按照瀏覽器設定值。
#$conf["rows"]="";#爲文字輸入框的列數(高),預設爲按照瀏覽器設定值。
#$conf["maxInputLength"]="";#爲文字輸入的長度限制,預設無限制。
$conf["defaultText"]="請任意輸入";#爲文字輸入框裏面的預設文字內容,預設是空的。
#$conf["class"]=;#爲要套用的css樣式。如果沒有指定 ,則採用預設的css樣式,"__inputTextAreaCssStyle",其屬性爲 "width:100%","height:120px","font-size:30px"
#$conf["jsActivitor"]="";#爲觸發js的條件,可以是"onChange"(已改變內容時)...,須搭配$conf["jsSubmitActionTarget"]參數。
#$conf["jsAction"]="";#爲該js是要做什麼,可以是"document.testForm.submit()"(傳送名爲testForm的表單內容)...,須搭配$conf["jsActivitor"]參數。
#$conf["formStart"]="true";#爲是否要以<form>開頭,"true"表示"是",也可以看成表單的開始,預設為"false".
#$conf["formAction"]="";#表單遞交的目的地,若$conf["formStart"]為"true",則該參數不能省略.
#$conf["formName"]="";#爲該表單的名稱
#$conf["formMethod"]="";#爲傳輸的方法,若沒設定則預設爲post,其他可用的參數爲get。
#$conf["formTarget"]="";#為顯示的方式,若沒設定則預設爲"_self",其他可用的參數爲 "_blank"、"_parent"、"_top",也可以是iframe的名稱。
#$conf["formEnd"]="true";#爲是否要以<form>結尾,"true"表示"是",也可以看成表單的結束,預設為"false".
#$conf["comment"],字串,輸入方框上面要放哪些註解文字.
$conf["comment"]="我是Label~";
#$conf["required"],字串,該欄位是否必填,"true"為必填,"false"為可留空,預設為"false".
#$conf["required"]="true";
#$conf["placeholder"],字串,當沒有內容時要顯示的內容.
$conf["placeholder"]="請任意輸入";
#$conf["trStart"]="true";#爲是否要以<tr>開頭,"true"表示"是",也可以看作新的一列開始,預設為"false".
#$conf["tdStart"]="true";#爲是否要以<td>開頭,"true"表示"是",也可以看成列裏面的元素開始,預設為"false".
#$conf["tdEnd"]="true";#爲是否要以</td>結尾,"true"表示"是",也可以看成列裏面的元素結束,預設為"false".
#$conf["trEnd"]="true";#爲是否要以</tr>結尾,"true"表示"是",也可以看作該列結束,預設為"false".
#參考資料來源:
#input=>http://www.w3schools.com/tags/tag_input.asp
echo form::inputTextArea($conf)["content"];
unset($conf);

#涵式說明:                
#可以輸入密碼的表單
#回傳的結果:
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
#$result["function"],當前執行的函數.
#$result["error"],錯誤訊息陣列.
#$result["content"],按鈕語法. 
#必填的參數:
$conf["name"]="password";#爲密碼輸入框的名稱,供接收端進行處理時的獨立名稱。
#可省略的參數:
$conf["width"]="100%";#爲密碼輸入框的長度,預設無限制。
$conf["maxInputLength"]="10";#爲密碼輸入的長度限制,預設無限制。
#$conf["defaultValue"]="";#預設的密碼
#$conf["class"]="";#爲要套用的css樣式,若省略,則會套用預設的 __inputPasswordCssStyle 樣式,其屬性爲 "width:100%","font-size:30px"
#$conf["jsActivitor"]="";#爲觸發js的條件,可以是"onChange"(已改變內容時)...,須搭配$conf["jsSubmitActionTarget"]參數。
#$conf["jsAction"]="";#爲該js是要做什麼,可以是"document.testForm.submit()"(傳送名爲testForm的表單內容)...,須搭配$conf["jsActivitor"]參數。
#$conf["comment"],字串,輸入方框上面要放哪些註解文字.
$conf["comment"]="襪系label!";
#$conf["placeholder"],字串,當沒有內容時要顯示的內容.
$conf["placeholder"]="請輸入密碼";
#$conf["trStart"]="true";#爲是否要以<tr>開頭,"true"表示"是",也可以看作新的一列開始,預設為"false".
#$conf["tdStart"]="true";#爲是否要以<td>開頭,"true"表示"是",也可以看成列裏面的元素開始,預設為"false".
#$conf["tdEnd"]="true";#爲是否要以</td>結尾,"true"表示"是",也可以看成列裏面的元素結束,預設為"false".
#$conf["trEnd"]="true";#爲是否要以</tr>結尾,"true"表示"是",也可以看作該列結束,預設為"false".
echo form::inputPassword($conf)["content"];
#var_dump(form::inputPassword($conf));
unset($conf);

#涵式說明:
#建立下拉式表單
#回傳的結果:
#$result,語法
#必填的參數: 
$conf["name"]="inputSelectT";#爲該下拉式表單的名稱
$conf["sendValue"]=array("Asia","American","Eroup","Korean","Japen","China");#爲陣列值,爲每個選項的實際傳送的數值,e.g. $sendValue = array("a","b","c","d","e");
#可省略的參數:
#$conf["comment"],字串,輸入方框上面要放哪些註解文字,亦即用label來呈現,同時指定"for"屬性的數值為當前"input"標籤的id,意即參數"name"的內容.
$conf["comment"]="Label~!";
#$conf["outputValue"]=array();#爲陣列值,爲每個選項的實際顯示的數值, e.g. $outputValue = array("p","o","i","t","e");,如果沒有設定,則其值同$conf["sendValue"]。
#$conf["viewCount"]="";#為一次要顯示幾個選項,預設爲顯示一個。
#$conf["defaultValue"]="";#為預設選取那個選項,須爲$conf["sendValue"]其中的一個值。
#$conf["class"]="";#爲要套用的class樣式,若省略的話預設採用 __simpleButtonLinkDefaultButtonCssStyle  的css樣式名稱
        #其屬性爲   "width","height","font-size","text-align"
        #其屬性值爲 "100%"  ,  "50"  ,    "30"   ,   "center"
#$conf["readOnly"],"字串",內容是否唯獨,預設為"false",不唯獨,"true"為唯獨.
$conf["readOnly"]="true";
#$conf["jsActivitor"]="";#爲觸發js的條件,可以是"onChange"(已改變內容時)...,須搭配$conf["jsSubmitActionTarget"]參數。
#$conf["jsAction"]="";#爲該js是要做什麼,可以是"document.testForm.submit()"(傳送名爲testForm的表單內容)...,須搭配$conf["jsActivitor"]參數。
#$conf["trStart"]="true";#爲是否要以<tr>開頭,"true"表示"是"。也可以看作新的一列開始。
#$conf["tdStart"]="true";#爲是否要以<td>開頭,"true"表示"是"。也可以看成列裏面的元素開始
#$conf["tdEnd"]="true";#爲是否要以</td>結尾,"true"表示"是"。也可以看成列裏面的元素結束
#$conf["trEnd"]="true";#爲是否要以</tr>結尾,"true"表示"是"。也可以看作該列結束。
echo form::inputSelect($conf)["content"]."<br>";
unset($conf);

#涵式說明:黑點式選單(單選)
#必填參數:
$conf["name"]="inputRadioT";#爲黑點式選單的名稱
$conf["sendValue"]=array("large","normal","small");#爲陣列值,爲每個選項的實際傳送的數值,e.g. $sendValue = array("a","b","c","d","e");
#可省略的參數:
#$conf["class"]="";#爲要套用的class樣式
#$conf["outputValue"]=array();#爲陣列值,爲每個選項的實際顯示的數值, e.g. $outputValue = array("p","o","i","t","e"); 預設爲跟$conf["sendValue"]一樣。
$conf["defaultValue"]="normal";#爲預設的選項,爲實際傳送的數值之一。
#$conf["disableHr"]="true";#如果設爲"true",則結尾不用<hr>來結束單選的範圍。
#$conf["jsActivitor"]="";#爲觸發js的條件,可以是"onChange"(已改變內容時)...,須搭配$conf["jsSubmitActionTarget"]參數。
#$conf["jsAction"]="";#爲該js是要做什麼,可以是"document.testForm.submit()"(傳送名爲testForm的表單內容)...,須搭配$conf["jsActivitor"]參數。
#$conf["trStart"]="true";#爲是否要以<tr>開頭,"true"表示"是"。也可以看作新的一列開始。
#$conf["tdStart"]="true";#爲是否要以<td>開頭,"true"表示"是"。也可以看成列裏面的元素開始
#$conf["tdEnd"]="true";#爲是否要以</td>結尾,"true"表示"是"。也可以看成列裏面的元素結束
#$conf["trEnd"]="true";#爲是否要以</tr>結尾,"true"表示"是"。也可以看作該列結束。
#$conf["doNotPrint"]="true";#如果設爲"true",則其結果就不會因印出來,而是用回傳的方式。
echo form::inputRadio($conf)["content"]."<br>";
unset($conf);

#勾選式選單(複選)
#必填的參數:     
$conf["name"]=array("inputCheckBox1","inputCheckBox2","inputCheckBox3");#爲勾選式選單上各選項的名稱,e.g. $conf["name"]=array("q-1","q-2","q-3","q-4","q-5");
$conf["sendValue"]=array("inputCheckBox1Value","inputCheckBox2Value","inputCheckBox3Value");#爲陣列值,爲每個選項的實際傳送的數值,e.g. $conf["sendValue"] = array("a","b","c","d","e");
#可省略的參數:
#$conf["class"]=;#爲要套用的class樣式
$conf["outputValue"]=array("option1","option2","option3");#爲陣列值,爲每個選項的實際顯示的數值, e.g. $conf["outputValue"] = array("p","o","i","t","e"); 預設爲跟$conf["sendValue"]一樣。
$conf["checkedOption"]=array("2");#爲那些選項是否要勾選,須爲陣列值。例如array("1","3","4"),就代表第1、3、4個選項是勾選的狀態。
#$conf["jsActivitor"]="";#爲觸發js的條件,可以是"onChange"(已改變內容時)...,須搭配$conf["jsSubmitActionTarget"]參數。
#$conf["jsAction"]="";#爲該js是要做什麼,可以是"document.testForm.submit()"(傳送名爲testForm的表單內容)...,須搭配$conf["jsActivitor"]參數。 
#$conf["trStart"]="true";#爲是否要以<tr>開頭,"true"表示"是"。也可以看作新的一列開始。
#$conf["tdStart"]="true";#爲是否要以<td>開頭,"true"表示"是"。也可以看成列裏面的元素開始
#$conf["tdEnd"]="true";#爲是否要以</td>結尾,"true"表示"是"。也可以看成列裏面的元素結束
#$conf["trEnd"]="true";#爲是否要以</tr>結尾,"true"表示"是"。也可以看作該列結束。
echo form::inputCheckBox($conf)["content"]."<br>";
unset($conf);

#涵式說明:
#表單結束
#回傳的結果:
#$result,表單結束的語法
#必填寫的參數:
$conf["tableEnd"]="false";#爲該表單是否要以</table>結尾。"true"爲是;"false"爲否。
echo form::end($conf)["content"]."<br>";
unset($conf);

*/

#說明正在測試的部分
echo"<hr>form::simpleContolPanel - testCase 1<br>";

/*

#涵式說明:
#簡單的控制面板
#回傳的結果:
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
#$result["error"],錯誤訊息
#$result["content"],控制面板的語法
#$result["function"],當前執行的函數名稱
#可以點選"新增"、"回上頁"的簡易面板
#必填的參數:
$conf["addActionPage"]="formT.php";#不可省略,爲新增表單要交給那個頁面處理,屬性內容爲網頁位置。
$conf["goBackActionPage"]="formT.php";#不可省略,爲回上頁的目的地,屬性內容爲網頁位置。
#可省略的參數:
#$conf["addActionPresentPage"]="";#可省略,爲新增表單的處理頁面要在那邊出現,可以用的數值有 _self (面板所處的頁面) _parent (父頁面) _blank (新視窗) 頁框名稱,預設爲_self
#$conf["addButtonName"]="";#可省略,預設爲"新增",爲新增表單的按鈕顯示名稱,屬性內容爲字串。
#$conf["addButtonStyleName"]="";#可省略,爲新增表單的按鈕css樣式,屬性內容爲 css 的類別名稱。
#$conf["goBackActionPresentPage"]="";#可省略,爲回上頁的目的地的頁面要在那邊出現,可以用的數值有 _self (面板所處的頁面) _parent (父頁面) _blank (新視窗) 頁框名稱,預設爲_self
#$conf["goBackButtonName"]="";#可省略,預設爲"回上頁",爲回上頁的按鈕顯示名稱,屬性內容爲字串。
#$conf["goBackButtonStyleName"]="";#可省略,爲回上頁按鈕的css樣式,屬性內容爲 css 的類別名稱。
var_dump(form::simpleControlPanel($conf));
unset($conf);

*/

echo"<hr>form::removeConfirm - testCase 1 <br>";

/*

#涵式說明:
#移除東西的確認視窗
#回傳的結果:
#$result["status"],執行是否正常,"true"代表正常;"false"代表有問題
#$reuslt["error"],錯誤訊息陣列
#$$result["function"],當前執行的函數名稱
#$result["content"],語法
#必填的參數:
$conf["itemName"]="機密文件";#爲要刪除的物件提示名稱,格式爲字串。
$conf["cancleActionPage"]="formT.php";#爲按下取消按鈕後,要交給那個頁面處理。
$conf["removeActionPage"]="formT.php";#爲移除按鈕傳送的內容要交給哪一個頁面處理。
#可省略的參數:
$conf["itemNameFontColor"]="#990000";#可省略預設爲 "#000000"(黑色),爲要刪除物件提示名稱文字的字型顏色,格式範圍爲 #000000~#FFFFFF。
$conf["dbAddress"]=$dbAddress;#資料庫的位置.
$conf["dbName"]=$dbName;#連線到資料庫的名稱.
$conf["dtName"]="userGroup";#目標資料所屬資料表名稱.
$conf["dbAccount"]=$dbAccount;#連線到資料庫的帳號名稱.
$conf["dbPassword"]=$dbPassword;#連線到資料庫的帳號密碼.
$conf["indexColumnName"]="id";#用於識別要移除資料的索引鍵欄位名稱,預設為"id".
$conf["indexColumnValue"]="1";#用於識別要移除資料的索引鍵欄位數值內容。
$conf["columnForComment"]=array("id","groupName");#陣列字串,為要從資料庫取出作為要除物件的提示文字的資料表欄位名稱陣列。
#$conf["commentsName"]=array();#陣列字串,為要從資料庫取出作為要除物件的提示文字的資料表欄位名的顯示名稱,預設跟 $conf["columnForComment"] 一樣.
#$conf["cancleActionDisplayMethod"]="";#可省略,預設爲"_top",爲按下取消按鈕後,
        #交給的處理的頁面要怎麼顯現,類型爲字串,可能值有 "_top" "_self" "_blank" "_blank"
#$conf["cancleButtonStyle"]="";#可省略,爲取消鈕的css樣式類別名稱。
#$conf["cancleButtonDisplayName"]="";#可省略,預設爲"取消",爲取消鈕的顯示名稱。
#$conf["cancleSendingVarName"]=array("");#爲按下取消按鈕後要傳送的數值名稱
#$conf["cancleSendingVarValue"]=array("");#爲按下取消按鈕後要傳送的數值內容
#$conf["removeActionDisplayMethod"]="";#可省略預設爲"_top",爲處理移除內容的頁面要如何顯現,
        #類型爲字串,可能值有 "_top" "_self" "_blank" "_blank"
#$conf["removeButtonStyle"]="";#可省略,爲移除按鈕的css樣式類別名稱。
#$conf["removeButtonDisplayName"]="";#可省略,預設爲"確認移除",爲移除按鈕的顯示文字內容
#$conf["removeSendingVarName"]=array("");#爲按下移除按鈕後要傳送的數值名稱
#$conf["removeSendingVarValue"]=array("");#爲按下移除按鈕後要傳送的數值內容
#備註:
#建議參數 $conf["indexColumnName"] 與 $conf["indexColumnValue"] 的形態為字串陣列,以便擁有更多限制條件取得需要的資料.
var_dump(form::removeConfirm($conf));
unset($conf);

*/

#提示目前執行的部分
echo"<hr>form::start & form::inputFile & form::button & form::processUploadedFile<br>";

/*

#涵式說明:
#表單開始
#回傳的結果:
#$result,表單開始的語法
#必填的參數:
$conf["action"]="formT.php";#爲要交給那個檔案處理該表單傳送的內容
#可省略的參數:
#$conf["name"]="";#爲該表單的名稱
#$conf["method"]="";#爲傳輸的方法,若沒設定則預設爲post,其他可用的參數爲get。
#$conf["target"]="";#為顯示的方式,若沒設定則預設爲"_self",其他可用的參數爲 "_blank"、"_parent"、"_top",也可以是iframe的名稱。
#$conf["tableStart"]="true";#爲該表單是否要以<table>開始。"true"爲是;
#$conf["tableClass"]="";#表格要套用的css樣式,若爲"__withoutBorder"的話則套用無框線的預設樣式;若爲"__withBorder"的話,則爲有框線的預設樣式。
echo form::start($conf);
unset($conf);

#涵式說明:
#上傳檔案的表單
#回傳的結果:
#$result,語法
#必填寫的參數:
$conf["formFileName"]="testInputFile";#該檔案上傳時的表單名稱。
#可省略的參數:
#$conf["class"]="";#該上傳表單所要套用的css樣式,若省略則採用預設的css樣式,其屬性爲 width:100% font-size:30px
#$conf["id"]="";#爲該上傳表單的id
echo form::inputFile($conf);
unset($conf);

#放置按鈕
#必要的參數:
$conf["buttonDisplayValue"]="上傳";#爲按鈕上顯示的文字。
#可省略的參數:
#$conf["buttonStyleName"]="";#可省略,爲按鈕所要使用的css樣式類別名稱,預設的css樣式爲 __simpleButtonLinkDefaultButtonCssStyle 。
        #其屬性爲   "width","height","font-size","text-align"
        #其屬性值爲 "100%" ,  "50"  ,    "30"   ,   "center"
#$conf["buttonActionScriptFunction"]="";#可省略,爲按下按鈕時所要執行的javaScript函式,預設不設定。
#$conf["buttonBorder"]="";#可省略,爲IE9內會自動產生外框,此爲外框的厚度,屬性值爲正整數,預設爲0。
#$conf["tablStart"]="true";#爲是否要表格開始。"false"代表否,"true"代表是。預設爲"true"。
#$conf["tableClass"]="";#表格要套用的css樣式,若省略的話,則預設爲 __defaultTbaleCsssStyle 其屬性爲 table-layout:fixed word-break:break-all width:100% ,須搭配 $conf["tablStart"] 與 $conf["tableEnd"] 使用。
#$conf["trStart"]="true";#爲是否要以<tr>開頭,"true"表示"是"。也可以看作新的一列開始。
#$conf["trClass"]="__withoutBorder";#<tr>要套用的css樣式,"__withoutBorder"爲沒有框線的樣式;__withBorder爲有框線的樣式
#$conf["tdStart"]="true";#爲是否要以<td>開頭,"true"表示"是"。也可以看成列裏面的元素開始
#$conf["tdClass"]="__withoutBorder";#<td>要套用的css樣式,"__withoutBorder"爲沒有框線的樣式;__withBorder爲有框線的樣式
#$conf["tdEnd"]="true";#爲是否要以</td>結尾,"true"表示"是"。也可以看成列裏面的元素結束
#$conf["trEnd"]="true";#爲是否要以</tr>結尾,"true"表示"是"。也可以看作該列結束。
#$conf["tableEnd"]="true";#爲是否要表格結束。"false"代表否,"true"代表是。預設爲"true"。
#$conf["formStart"]="true";#爲是否要表單開始,如果爲"true"則代表要表單開始。
#$conf["action"]="";#爲表單要傳送到哪個頁面,須搭配$conf["formStart"]與$conf["formEnd"]參數使用
#$conf["target"]="";#為目標表單顯示的方式,若沒設定則預設爲"_self",其他可用的參數爲 "_blank"、"_parent"、"_top",也可以是iframe的名稱。須搭配$conf["formStart"]與$conf["formEnd"]參數使用
$conf["formEnd"]="true";#爲是否要表單結束,如果爲"true"則代表要表單結束。
echo form::button($conf);
unset($conf);

#涵式說明:
#處理上傳到暫存目錄的檔案,可以移動到指定的位置,並指定檔案的名稱。並且可以指定刪除舊有的檔案,然後將新檔案的相對位置寫入到資料庫裏面。
#回傳的變數:
#$result["ServerFileName"]#檔案名稱
#$result["ServerFileType"]#檔案類型
#$result["ServerFileSize"]#檔案大小
#$result["status"]#整體上傳有無成功。"true"代表完整成功 "false"代表有過程有錯誤
#$result["error"]["uploadErrorCode"]#上傳的錯誤訊息
#$result["error"]["chmodDirStatus"]#資料夾權限更改成功與否
#$result["error"]["chmodFileStatus"]#資料夾權限更改成功與否
#$result["fileRelativePosition"]#檔案的相對位置,包含檔案名稱與附檔名。
#必填的參數:
$conf["formFileName"]="testInputFile";#為上傳檔案時表單傳送時的名稱
#可省略的參數:
$conf["uploadDirUserDefine"]=".form";#為存放上傳檔案的目錄,如果沒設定則會自行建立依照系統時間的年月日十分秒來替資料夾命名,並將上傳的檔案存在裏面。
#$conf["ServerFilenameUserDefine"]="";#為存放在伺服器上的檔案名稱,如果沒設定則依照台灣時間的年月日時分秒命名
#$conf["NoFileExtension"]="true";#若為 "true" 則表 指定了檔案名稱後,不用再加上檔案型的副檔名。
#$conf["taskName"]="";#爲該上傳作業的名稱,若沒設定,則預設爲"上傳作業"。
#$conf["eraseOldFile"]="";#如果存在的話會移除舊的檔案,其值爲檔案的相對位置。
#$conf["dbProcess"]="true";#如果爲"true",則會進行資料表資料更新的動作。亦即要設定 $conf["updatingMysqlServerAddress"] $conf["updatingMysqlAccount"] $conf["updatingDataBaseName"] $conf["updatingDataTableName"] $conf["updatingConditionDataTableColumnName"] $conf["updatingConditionDataTableColumnValue"] $conf["updatingTargetDataTableColumnName"] $conf["updatingTargetDataTableColumnValue"] 的內容。
#$conf["updatingMysqlServerAddress"]=$dbAddress;#資料庫位於網路上的哪個位置
#$conf["updatingMysqlAccount"]=$dbAccount;#連線時要使用的帳號,省略時代表不用密碼進行連線。
#$conf["updatingMysqlPassword"]=$dbPassword;#連線時要使用的密碼
#$conf["updatingDataBaseName"]=$dbName;#要更新的目標資料所屬資料庫名稱
#$conf["updatingDataTableName"]="";#要更新的目標資料位於哪個資料表
#$conf["updatingConditionDataTableColumnName"]=array("id");#要用哪個欄位來識別要更新哪一筆資料。
#$conf["updatingConditionDataTableColumnValue"]=array("");#該條件欄位內容的數值要爲多少,才是我們要修改的那筆資料。
#$conf["updatingTargetDataTableColumnName"]=array("");#要更新的資料欄位有?
#$conf["updatingTargetDataTableColumnValue"]=array("");#目標資料欄位要改成什麼樣的數值,如果其元素含有"filePosition",則會替換成新檔案的相對位置
#$conf["displayQueryError"]="true";#爲是否呈現Query的錯誤訊息,預設不呈現,若要呈現則請將此值設爲"true"
#$conf["displayQueryString"]="true";#爲是否呈現Query的命令,預設不呈現,若要呈現則請將此值設爲"true"
#參考資料:
#file_exist()的用法
#http:#php.net/manual/en/function.file-exists.php
#bug:
#目前發現上傳的檔案如果有中文字將會上傳失敗,但中文字如果是包在()裏面則不會出錯。
var_dump(form::processUploadedFile($conf));
unset($conf);

*/

#提示目前執行的部分
echo"<hr>form::start & form::uploadOneFile & form::processUploadedFile & form::button<br>";

/*

#涵式說明:
#表單開始
#回傳的結果:
#$result,表單開始的語法
#必填的參數:
$conf["action"]="formT.php";#爲要交給那個檔案處理該表單傳送的內容
#可省略的參數:
#$conf["name"]="";#爲該表單的名稱
#$conf["method"]="";#爲傳輸的方法,若沒設定則預設爲post,其他可用的參數爲get。
#$conf["target"]="";#為顯示的方式,若沒設定則預設爲"_self",其他可用的參數爲 "_blank"、"_parent"、"_top",也可以是iframe的名稱。
#$conf["tableStart"]="true";#爲該表單是否要以<table>開始。"true"爲是;
#$conf["tableClass"]="";#表格要套用的css樣式,若爲"__withoutBorder"的話則套用無框線的預設樣式;若爲"__withBorder"的話,則爲有框線的預設樣式。
echo form::start($conf);
unset($conf);

#涵式說明:
#可以瀏覽要上傳的檔案
#回傳的結果:
#$result,語法
#必填的參數:
$conf["formFileName"]="testuploadOneFile";#該上傳檔案的表單名稱       
#可省略的參數:
#$conf["maxFileSize"]="";#檔案的最大限制,單位是位元組(byte)。1kb = 1024 byte ; 1mb = 1024 kb 約等與 1024000 byte,預設是10240000(10MB)
#$conf["browseButtonClass"]="";#瀏覽要上傳檔案的表單css樣式 
#$conf["trStart"]="true";#爲是否要以<tr>開頭,"true"表示"是"。也可以看作新的一列開始。
#$conf["tdStart"]="true";#爲是否要以<td>開頭,"true"表示"是"。也可以看成列裏面的元素開始
#$conf["tdEnd"]="true";#爲是否要以</td>結尾,"true"表示"是"。也可以看成列裏面的元素結束
#$conf["trEnd"]="true";#爲是否要以</tr>結尾,"true"表示"是"。也可以看作該列結束。   
echo form::uploadOneFile($conf);
unset($conf);   

#放置按鈕
#必要的參數:
$conf["buttonDisplayValue"]="上傳";#爲按鈕上顯示的文字。
#可省略的參數:
#$conf["buttonStyleName"]="";#可省略,爲按鈕所要使用的css樣式類別名稱,預設的css樣式爲 __simpleButtonLinkDefaultButtonCssStyle 。
        #其屬性爲   "width","height","font-size","text-align"
        #其屬性值爲 "100%" ,  "50"  ,    "30"   ,   "center"
#$conf["buttonActionScriptFunction"]="";#可省略,爲按下按鈕時所要執行的javaScript函式,預設不設定。
#$conf["buttonBorder"]="";#可省略,爲IE9內會自動產生外框,此爲外框的厚度,屬性值爲正整數,預設爲0。
#$conf["tablStart"]="true";#爲是否要表格開始。"false"代表否,"true"代表是。預設爲"true"。
#$conf["tableClass"]="";#表格要套用的css樣式,若省略的話,則預設爲 __defaultTbaleCsssStyle 其屬性爲 table-layout:fixed word-break:break-all width:100% ,須搭配 $conf["tablStart"] 與 $conf["tableEnd"] 使用。
#$conf["trStart"]="true";#爲是否要以<tr>開頭,"true"表示"是"。也可以看作新的一列開始。
#$conf["trClass"]="__withoutBorder";#<tr>要套用的css樣式,"__withoutBorder"爲沒有框線的樣式;__withBorder爲有框線的樣式
#$conf["tdStart"]="true";#爲是否要以<td>開頭,"true"表示"是"。也可以看成列裏面的元素開始
#$conf["tdClass"]="__withoutBorder";#<td>要套用的css樣式,"__withoutBorder"爲沒有框線的樣式;__withBorder爲有框線的樣式
#$conf["tdEnd"]="true";#爲是否要以</td>結尾,"true"表示"是"。也可以看成列裏面的元素結束
#$conf["trEnd"]="true";#爲是否要以</tr>結尾,"true"表示"是"。也可以看作該列結束。
#$conf["tableEnd"]="true";#爲是否要表格結束。"false"代表否,"true"代表是。預設爲"true"。
#$conf["formStart"]="true";#爲是否要表單開始,如果爲"true"則代表要表單開始。
#$conf["action"]="";#爲表單要傳送到哪個頁面,須搭配$conf["formStart"]與$conf["formEnd"]參數使用
#$conf["target"]="";#為目標表單顯示的方式,若沒設定則預設爲"_self",其他可用的參數爲 "_blank"、"_parent"、"_top",也可以是iframe的名稱。須搭配$conf["formStart"]與$conf["formEnd"]參數使用
$conf["formEnd"]="true";#爲是否要表單結束,如果爲"true"則代表要表單結束。
echo form::button($conf);
unset($conf);

#涵式說明:
#處理上傳到暫存目錄的檔案,可以移動到指定的位置,並指定檔案的名稱。並且可以指定刪除舊有的檔案,然後將新檔案的相對位置寫入到資料庫裏面。
#回傳的變數:
#$result["ServerFileName"]#檔案名稱
#$result["ServerFileType"]#檔案類型
#$result["ServerFileSize"]#檔案大小
#$result["status"]#整體上傳有無成功。"true"代表完整成功 "false"代表有過程有錯誤
#$result["error"]["uploadErrorCode"]#上傳的錯誤訊息
#$result["error"]["chmodDirStatus"]#資料夾權限更改成功與否
#$result["error"]["chmodFileStatus"]#資料夾權限更改成功與否
#$result["fileRelativePosition"]#檔案的相對位置,包含檔案名稱與附檔名。
#必填的參數:
$conf["formFileName"]="testuploadOneFile";#為上傳檔案時表單傳送時的名稱
#可省略的參數:
$conf["uploadDirUserDefine"]=".form";#為存放上傳檔案的目錄,如果沒設定則會自行建立依照系統時間的年月日十分秒來替資料夾命名,並將上傳的檔案存在裏面。
#$conf["ServerFilenameUserDefine"]="";#為存放在伺服器上的檔案名稱,如果沒設定則依照台灣時間的年月日時分秒命名
#$conf["NoFileExtension"]="true";#若為 "true" 則表 指定了檔案名稱後,不用再加上檔案型的副檔名。
#$conf["taskName"]="";#爲該上傳作業的名稱,若沒設定,則預設爲"上傳作業"。
#$conf["eraseOldFile"]="";#如果存在的話會移除舊的檔案,其值爲檔案的相對位置。
#$conf["dbProcess"]="true";#如果爲"true",則會進行資料表資料更新的動作。亦即要設定 $conf["updatingMysqlServerAddress"] $conf["updatingMysqlAccount"] $conf["updatingDataBaseName"] $conf["updatingDataTableName"] $conf["updatingConditionDataTableColumnName"] $conf["updatingConditionDataTableColumnValue"] $conf["updatingTargetDataTableColumnName"] $conf["updatingTargetDataTableColumnValue"] 的內容。
#$conf["updatingMysqlServerAddress"]=$dbAddress;#資料庫位於網路上的哪個位置
#$conf["updatingMysqlAccount"]=$dbAccount;#連線時要使用的帳號,省略時代表不用密碼進行連線。
#$conf["updatingMysqlPassword"]=$dbPassword;#連線時要使用的密碼
#$conf["updatingDataBaseName"]=$dbName;#要更新的目標資料所屬資料庫名稱
#$conf["updatingDataTableName"]="";#要更新的目標資料位於哪個資料表
#$conf["updatingConditionDataTableColumnName"]=array("id");#要用哪個欄位來識別要更新哪一筆資料。
#$conf["updatingConditionDataTableColumnValue"]=array("");#該條件欄位內容的數值要爲多少,才是我們要修改的那筆資料。
#$conf["updatingTargetDataTableColumnName"]=array("");#要更新的資料欄位有?
#$conf["updatingTargetDataTableColumnValue"]=array("");#目標資料欄位要改成什麼樣的數值,如果其元素含有"filePosition",則會替換成新檔案的相對位置
#$conf["displayQueryError"]="true";#爲是否呈現Query的錯誤訊息,預設不呈現,若要呈現則請將此值設爲"true"
#$conf["displayQueryString"]="true";#爲是否呈現Query的命令,預設不呈現,若要呈現則請將此值設爲"true"
#參考資料:
#file_exist()的用法
#http:#php.net/manual/en/function.file-exists.php
#bug:
#目前發現上傳的檔案如果有中文字將會上傳失敗,但中文字如果是包在()裏面則不會出錯。
var_dump(form::processUploadedFile($conf));
unset($conf);

*/

#提示目前測試的部份
echo "<hr>form::uploadOneFileCom - testCase 1<br>";

/*

#涵式說明:
#上傳一個檔案,包含送出鈕與回上頁的按鈕
#回傳的結果:
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
#$result["function"],當前執行的函數.
#$result["error"],錯誤訊息陣列.
#$result["content"],語法.
#必填的參數:
#$conf["formFileName"],字串,該上傳檔案的表單名稱.
$conf["formFileName"]="form::uploadOneFileCom - testCase 1";
#$conf["actionPage"],字串,處理表單資訊的頁面.
$conf["actionPage"]="formT.php";
#可省略的參數:
#$conf["browseButtonClass"],字串,瀏覽要上傳檔案的css樣式,預設為"__inputFileCssStyle".
#$conf["browseButtonClass"]="__inputFileCssStyle";
#$conf["submitButtonClass"],字串,上傳按鈕的css樣式,預設為"__simpleButtonLinkDefaultButtonCssStyle".
#$conf["submitButtonClass"]="__simpleButtonLinkDefaultButtonCssStyle";
#$conf["backPage"],字串,返回的按鈕點了之後要到哪個頁面,預設是不使用.
$conf["backPage"]="formT.php";
#$conf["backButtonClass"],字串,回上頁按鈕的css樣式,預設為"__simpleButtonLinkDefaultButtonCssStyle".
#$conf["backButtonClass"]="__simpleButtonLinkDefaultButtonCssStyle";
#$conf["maxFileSize"],字串,檔案的最大限制,單位是位元組(byte),1kb = 1024 byte ; 1mb = 1024 kb 約等與 1024000 byte,預設爲"102400000"(100MB)
#$conf["maxFileSize"]="102400000";
#$conf["submitButtonName"],字串,送出鈕要顯示的名稱,預設爲"上傳"
#$conf["submitButtonName"]="上傳";
#$conf["formName"],字串,表單的名稱
$conf["formName"]="image";
#$conf["formTarget"],字串,表單要呈現回應的位置,預設為"_self".
#$conf["formTarget"]="_self";
#$conf["acceptType"],字串,限定檔案的類型為"video/*","audio/*","image/*",預設不限定.
$conf["acceptType"]="image/*";
#$conf["required"],字串,該欄位是否必填,"true"為必填,"false"為可留空,預設為"false".
$conf["required"]="true";
#$conf["comment"],字串,該上傳檔案的註解,預設不顯示.
$conf["comment"]="請上傳照片檔案";
#$conf["backButtonName"],字串,退回上一頁的按鈕要顯示的名稱,預設爲"回上頁"
#$conf["backButtonName"]="回上頁";
echo form::uploadOneFileCom($conf)["content"];
unset($conf);
        
*/

echo "<hr>form::simpleFileAuthentication - testCase 1<br>";

/*

#涵式說明:
#上傳一個檔案,包含送出鈕與回上頁的按鈕
#回傳的結果:
#$result,語法
#必填的參數:
$conf["formFileName"]="testuploadOneFileCom";#該上傳檔案的表單名稱    
$conf["actionPage"]="formT.php";#處理表單資訊的頁面
#可省略的參數:
#$conf["browseButtonClass"]="";#瀏覽要上傳檔案的css樣式
#$conf["submitButtonClass"]="";#上傳按鈕的css樣式;
$conf["backPage"]="formT.php";#返回的按鈕點了之後要到哪個頁面?,預設是不使用
#$conf["backButtonClass"]="";#回上頁按鈕的css樣式;
#$conf["align"]="";#上傳的表格要置中還是置右抑或是置左,
        #可用的選項有「left」、「center」、「right」,預設是不指定。
#$conf["maxFileSize"]="";#檔案的最大限制,單位是位元組(byte)。
        #1kb = 1024 byte ; 1mb = 1024 kb 約等與 1024000 byte
        #預設爲"10240000"(10MB)
$conf["submitButtonName"]="上傳 validate 檔案";#送出鈕要顯示的名稱,預設爲"上傳"
#$conf["backButtonName"]="";#退回上一頁的按鈕要顯示的名稱,預設爲"回上頁"
echo form::uploadOneFileCom($conf)["content"];
unset($conf);

#涵式說明:
#檢測接收的檔案是否符合條件
#回傳的內容:
#$result["fileName"],若爲"true"則代表檔案名稱正確。
#$result["fileSizePass"],若爲"true"則代表檔案大小正確。
#$result["fileTypePass"],若爲"true"則代表檔案類型正確。
#必填的參數:
$conf["formFileName"]="testuploadOneFileCom";#爲該檔案上傳時候的表單名稱
#可省略的參數:
$conf["uploadedFileName"]="validate.file";#爲檔案上傳時的檔案名稱,省略則跳過此部分驗證
$conf["uploadedFileSize"]="14";#爲檔案上傳時的檔案大小,省略則跳過此部分驗證
$conf["uploadedFileType"]=array("application/octet-stream");#爲檔案上傳時的檔案型別,需爲陣列型別,省略則跳過此部分驗證
var_dump(form::simpleFileAuthentication($conf));
unset($conf);

*/

#提示目前測試的函式
echo "<hr>responseOneFileForAuthentication - testCase 1<br>";

/*

#涵式說明:
#上傳一個檔案,包含送出鈕與回上頁的按鈕
#回傳的結果:
#$result,語法
#必填的參數:
$conf["formFileName"]="testresponseOneFileForAuthentication";#該上傳檔案的表單名稱    
$conf["actionPage"]="formT-validate.php";#處理表單資訊的頁面
#可省略的參數:
#$conf["browseButtonClass"]="";#瀏覽要上傳檔案的css樣式
#$conf["submitButtonClass"]="";#上傳按鈕的css樣式;
$conf["backPage"]="formT.php";#返回的按鈕點了之後要到哪個頁面?,預設是不使用
#$conf["backButtonClass"]="";#回上頁按鈕的css樣式;
#$conf["align"]="";#上傳的表格要置中還是置右抑或是置左,
        #可用的選項有「left」、「center」、「right」,預設是不指定。
#$conf["maxFileSize"]="";#檔案的最大限制,單位是位元組(byte)。
        #1kb = 1024 byte ; 1mb = 1024 kb 約等與 1024000 byte
        #預設爲"10240000"(10MB)
$conf["submitButtonName"]="請上傳 validate 檔案";#送出鈕要顯示的名稱,預設爲"上傳"
#$conf["backButtonName"]="";#退回上一頁的按鈕要顯示的名稱,預設爲"回上頁"
#echo form::uploadOneFileCom($conf);
unset($conf);

*/

/*
#涵式說明:
#處理一個已上傳的檔案,用作驗證
#回傳的結果:
#$result["status"],"true"爲驗證成功,"false"為驗證失敗.
#$result["erorr"],錯誤訊息陣列.
#必填的參數:
$conf["formFileName"]="testresponseOneFileForAuthentication";#該上傳檔案的表單名稱
$conf["uploadFileName"]="validate.file";#如果上傳的檔案名稱等於 $conf["uploadFileName"] 則通過第一階段驗證
$conf["uploadFileSize"]="14";#如果上傳的檔案大小等於 $conf["uploadFileSize"] 則通過第二階段驗證
$conf["uploadedFileType"]="application/octet-stream";#如果上傳的檔案類型等於 $conf["uploadedFileType"] 則通過第三階段驗證
$conf["password"]="you are passed!";#供驗證用的內容。
#用戶段會取得的變數內容:
#$_SESSION["password"],用來做檢查,是否通過認證的session變數,若php設定檔沒有自動啓用session的話,此行前面必須要有 session_start();        
#可省略的參數:
$conf["passAction"]="formT-pass.php";#如果檔案驗證成功,轉址到?沒設定則不轉址
$conf["failedAction"]="formT-passFailed.php";#如果檔案驗正不通過則,轉址到?沒設定則不轉址
var_dump(form::responseOneFileForAuthentication($conf));
unset($conf);
*/

#提示目前測試的函式
echo "<hr>form::uploadOneFileCom & form::processUploadedFile<br>";

/*

#涵式說明:
#上傳一個檔案,包含送出鈕與回上頁的按鈕
#回傳的結果:
#$result,語法
#必填的參數:
$conf["formFileName"]="testprocessUploadedFile";#該上傳檔案的表單名稱 
$conf["actionPage"]="formT.php";#處理表單資訊的頁面
#可省略的參數:
#$conf["browseButtonClass"]="";#瀏覽要上傳檔案的css樣式
#$conf["submitButtonClass"]="";#上傳按鈕的css樣式;
#$conf["backPage"]="";#返回的按鈕點了之後要到哪個頁面?,預設是不使用
#$conf["backButtonClass"]="";#回上頁按鈕的css樣式;
#$conf["align"]="";#上傳的表格要置中還是置右抑或是置左,
        #可用的選項有「left」、「center」、「right」,預設是不指定。
#$conf["maxFileSize"]="";#檔案的最大限制,單位是位元組(byte)。
        #1kb = 1024 byte ; 1mb = 1024 kb 約等與 1024000 byte
        #預設爲"10240000"(10MB)
#$conf["submitButtonName"]="";#送出鈕要顯示的名稱,預設爲"上傳"
#$conf["backButtonName"]="";#退回上一頁的按鈕要顯示的名稱,預設爲"回上頁"
echo form::uploadOneFileCom($conf);
unset($conf);

#涵式說明:
#處理上傳到暫存目錄的檔案,可以移動到指定的位置,並指定檔案的名稱。並且可以指定刪除舊有的檔案,然後將新檔案的相對位置寫入到資料庫裏面。
#$result["ServerFileName"]#檔案名稱
#$result["ServerFileType"]#檔案類型
#$result["ServerFileSize"]#檔案大小
#$result["status"]#整體上傳有無成功。"true"代表完整成功 "false"代表有過程有錯誤
#$result["error"],錯誤訊息陣列
#$result["fileRelativePosition"]#檔案的相對位置,包含檔案名稱與附檔名。
#必填的參數:
$conf["formFileName"]="testprocessUploadedFile";#為上傳檔案時表單傳送時的名稱
#可省略的參數:
$conf["uploadDirUserDefine"]=".form";#為存放上傳檔案的目錄,如果沒設定則會自行建立依照系統時間的年月日十分秒來替資料夾命名,並將上傳的檔案存在裏面。
$conf["ServerFilenameUserDefine"]="testFile";#為存放在伺服器上的檔案名稱,如果沒設定則依照台灣時間的年月日時分秒命名
#$conf["NoFileExtension"]="true";#若為 "true" 則表 指定了檔案名稱後,不用再加上檔案型的副檔名。
#$conf["taskName"]="";#爲該上傳作業的名稱,若沒設定,則預設爲"上傳作業"。
#$conf["eraseOldFile"]="";#如果存在的話會移除舊的檔案,其值爲檔案的相對位置。
#$conf["dbProcess"]="true";#如果爲"true",則會進行資料表資料更新的動作。亦即要設定 $conf["updatingMysqlServerAddress"] $conf["updatingMysqlAccount"] $conf["updatingDataBaseName"] $conf["updatingDataTableName"] $conf["updatingConditionDataTableColumnName"] $conf["updatingConditionDataTableColumnValue"] $conf["updatingTargetDataTableColumnName"] $conf["updatingTargetDataTableColumnValue"] 的內容。
#$conf["updatingMysqlServerAddress"]=$dbAddress;#資料庫位於網路上的哪個位置
#$conf["updatingMysqlAccount"]=$dbAccount;#連線時要使用的帳號,省略時代表不用密碼進行連線。
#$conf["updatingMysqlPassword"]=$dbPassword;#連線時要使用的密碼
#$conf["updatingDataBaseName"]=$dbName;#要更新的目標資料所屬資料庫名稱
#$conf["updatingDataTableName"]="";#要更新的目標資料位於哪個資料表
#$conf["updatingConditionDataTableColumnName"]=array("id");#要用哪個欄位來識別要更新哪一筆資料。
#$conf["updatingConditionDataTableColumnValue"]=array("");#該條件欄位內容的數值要爲多少,才是我們要修改的那筆資料。
#$conf["updatingTargetDataTableColumnName"]=array("");#要更新的資料欄位有?
#$conf["updatingTargetDataTableColumnValue"]=array("");#目標資料欄位要改成什麼樣的數值,如果其元素含有"filePosition",則會替換成新檔案的相對位置
#$conf["displayQueryError"]="true";#爲是否呈現Query的錯誤訊息,預設不呈現,若要呈現則請將此值設爲"true"
#$conf["displayQueryString"]="true";#爲是否呈現Query的命令,預設不呈現,若要呈現則請將此值設爲"true"
#參考資料:
#file_exist()的用法
#http:#php.net/manual/en/function.file-exists.php
#bug:
#目前發現上傳的檔案如果有中文字將會上傳失敗,但中文字如果是包在()裏面則不會出錯。
var_dump(form::processUploadedFile($conf));
unset($conf);

*/

#提示目前測試的函式
echo "<hr>form::customConfirm - testCase 1 <br>";

/*

#涵式說明:
#確認執行的視窗
#回傳的結果:
#$result,確認執行的視窗語法
#必填的參數:
$conf["actionName"]="到";#要執行的動作
$conf["itemName"]="Google搜尋首頁";#爲要執行的物件提示名稱,格式爲字串。
$conf["cancleActionPage"]="formT.php";#爲按下取消按鈕後,要交給那個頁面處理。                                                                                                                                                                                                                                                                                                                        
$conf["confirmActionPage"]="https://www.google.com.tw/";#爲移除按鈕傳送的內容要交給哪一個頁面處理。
#可省略的參數:
#$conf["actionFontCss"]="";#可省略,爲動作提示的字型css樣式。
#$conf["itemNameFontCss"]="";#可省略預,爲物件提示的字型css樣式。
#$conf["cancleActionDisplayMethod"]="";#可省略,預設爲"_self",爲按下取消按鈕後,
        #交給的處理的頁面要怎麼顯現,類型爲字串,可能值有 "_top" "_self" "_blank" "_blank"
#$conf["cancleButtonStyle"]="";#可省略,爲取消鈕的css樣式類別名稱。
#$conf["cancleRequestMethod"],字串,取消要求的表單要用什麼方式傳送,預設為"post",也可以為"get". 
#$conf["cancleRequestMethod"]="get";
#$conf["cancleButtonDisplayName"]="";#可省略,預設爲"取消",爲取消鈕的顯示名稱。
#$conf["cancleSendingVarName"]=array("");#爲按下取消按鈕後要傳送的數值名稱
#$conf["cancleSendingVarValue"]=array("");#爲按下取消按鈕後要傳送的數值內容
#$conf["confirmActionDisplayMethod"]="";#可省略預設爲"_self",爲處理移除內容的頁面要如何顯現,
        #類型爲字串,可能值有 "_top" "_self" "_blank" "_blank"
#$conf["confirmButtonStyle"]="";#可省略,爲移除按鈕的css樣式類別名稱。
#$conf["confirmRequestMethod"],字串,確認要求的表單要用什麼方式傳送,預設為"post",也可以為"get". 
$conf["confirmRequestMethod"]="get";
#$conf["confirmButtonDisplayName"]="";#可省略,預設爲"確認移除",爲移除按鈕的顯示文字內容
#$conf["confirmSendingVarName"]=array("");#爲按下移除按鈕後要傳送的數值名稱
#$conf["confirmSendingVarValue"]=array("");#爲按下移除按鈕後要傳送的數值內容
#程式建議:
#要執行動作的物件提示名稱,如果可以擺方多個資訊將會更方便。
var_dump(form::customConfirm($conf));
unset($conf);

*/

#提示要測試的案例
echo "<hr>form::responseMultiInputDataSecurityEnhance - testCase 1<br>";

/*

#放置control bar iframe
#涵式說明:
#建立一個 iframe 框架
#回傳的結果:
#$result["status"],執行成功或失敗,成功為"true";"false"為失敗。
#$result["error"],錯誤訊息提示
#$result["content"],iframe的語法
#必填的參數:
$conf["webPage"]="formTframe1.php";#爲放入 iframe 網頁網址。
$conf["name"]="formTframe1";#爲該 iframe 的名稱。
$conf["br"]="true";#爲放置完該iframe後是否要換行,"true"爲要換行;"flase"爲不要換行。
#可省略的參數
#$conf["class"]="";#爲該 iframe 要套用的css樣式類別名稱,可省略。
echo frame::createIframe($conf)["content"];
unset($conf);

#放置list iframe
#涵式說明:
#建立一個 iframe 框架
#回傳的結果:
#$result["status"],執行成功或失敗,成功為"true";"false"為失敗。
#$result["error"],錯誤訊息提示
#$result["content"],iframe的語法
#必填的參數:
$conf["webPage"]="formTframe2.php";#爲放入 iframe 網頁網址。
$conf["name"]="formTframe2";#爲該 iframe 的名稱。
$conf["br"]="true";#爲放置完該iframe後是否要換行,"true"爲要換行;"flase"爲不要換行。
#可省略的參數
#$conf["class"]="";#爲該 iframe 要套用的css樣式類別名稱,可省略。
echo frame::createIframe($conf)["content"];
unset($conf);

*/

/* 傳送端不需要
#涵式說明:
#可以處理多個透過GET、POST而來的資訊,儲存成變數,同時限定傳送的方法、來源,來增加安全性。
#回傳的結果:
#$result["status"],執行是否成功,"true"代表執行成功;"false"代表執行失敗。
#$result["error"],錯誤訊息。
#$result["inputDataContent"],所接收的參數陣列。
#$result["inputDataContent"]["變數名稱"],所接收變數的內容
#$result["inputDataCount"],總共接收到幾個元素。
#必填的參數:
$conf["method"]="post";#傳送過來的資料是用"post/POST"還是"get/GET"?
#可省略的參數:
#$conf["allowGet"]="false";#是否要允許 get 傳值,"true",代表允許;"false" ,代表不允許,預設爲不允許。
#$conf["limitPrePage"]="formT.php";#是否要限定前一頁的網址為何,才能接收內容,不符合則轉址。
#$conf["transferLocation"]="";#遇到get傳值的時候要轉址到的頁面,預設爲資安素養網"https:#isafe.moe.edu.tw/"
$conf["ignore"]=array("B");#如果要接收的變數名稱與該陣列其一元素一樣,則不放進要回傳的變數裏面。
#$conf["correctCharacter"]="false";#如果爲"false",則不處理可能導致網頁出問題的字串,預設爲要進行處理。
#參考資料來源:
#foreach 的用法 -> http:#php.net/manual/en/control-structures.foreach.php
#var_dump(form::responseMutiInputDataSecurityEnhance($conf));
unset($conf);
*/

/*

#提示要測試的案例
echo "<hr>form::responseMultiInputDataSecurityEnhance - testCase 1<br>";

#涵式說明:
#一個簡單的按鈕,按了可以到指定的頁面。同時也可以傳送多個隱藏的變數
#回傳的結果
#$result,語法內容
#必填的參數:
$conf["actionPage"]="formT.php";#按鈕按了之後要到哪個地方?若爲 $_SERVER["PHP_SELF"],則爲回到目前頁面。
$conf["buttonDisplayValue"]="測試";#按鈕上要顯示的文字
#可以省略的參數:
#$conf["buttonStyleName"]="";#按鈕的css樣式應該爲何,若省略的話預設會採用 __simpleButtonLinkDefaultButtonCssStyle 的樣式
        #其屬性爲   "width","height","font-size","text-align"
        #其屬性值爲 "300"  ,  "50"  ,    "30"   ,   "center"
#備註:
# __simpleButtonLinkDefaultButtonCssStyle,爲預設的按鈕css樣式,請勿使用相同類別名稱的css樣式,以免衝突。
$conf["hiddenVarName"]=array("A.B.C","a.b.c");#要傳送的隱藏變數名稱,與 $conf["hiddenVarContent"] 相對應。
$conf["hiddenVarContent"]=array("ABC","abc");#要傳誦的隱藏變數內容,與 $conf["hiddenVarName"] 相對應。
$conf["formStart"]="true";#爲是否要表單開始,如果爲"true"則代表要表單開始,預設爲"true"
#$conf["formName"]="";#該表單的名稱
#$conf["buttonActionScriptFunction"]="";#可省略,爲按下按鈕時所要執行的javaScript函式,預設不設定。
        #可以是"document.forms.formName.submit()"(傳送名爲testForm的表單內容).
$conf["formEnd"]="true";#爲是否要表單結束,如果爲"true"則代表要表單結束,預設爲"true"
#$conf["tableStart"]="true";#爲是否要表格開始,"true"表示"是"。
#$conf["tableClass"]="__withoutBorder";#爲表格要採用的css樣式名稱,"__withoutBorder"代表沒有框線的預設樣式;"__withBorder"代表有框線的預設樣式
#$conf["trStart"]="true";#爲是否要以<tr>開頭,"true"表示"是"。也可以看作新的一列開始。
#$conf["trClass"]="__withoutBorder";#列開始的css樣式,"__withoutBorder"代表沒有框線的預設樣式;"__withBorder"代表有框線的預設樣式
#$conf["tdStart"]="true";#爲是否要以<td>開頭,"true"表示"是"。也可以看成列裏面的元素開始
#$conf["tdClass"]="__withoutBorder";#行開始的css樣式,"__withoutBorder"代表沒有框線的預設樣式;"__withBorder"代表有框線的預設樣式
#$conf["tdEnd"]="true";#爲是否要以</td>結尾,"true"表示"是"。也可以看成列裏面的元素結束
#$conf["trEnd"]="true";#爲是否要以</tr>結尾,"true"表示"是"。也可以看作該列結束。
#$conf["displayTarget"]="";#頁面的呈現方法,可以是開新視窗(_blank)、在目前頁面、頁框裏面(_self)、在父頁面(_parent)、最上層頁面(_top),預設為"_top"。
#$conf["tableEnd"]="true";#爲是否要表格結束,"true"表示"是"。
echo form::sendHugeDataButton($conf);
unset($conf);

#涵式說明:
#可以處理多個透過GET、POST而來的資訊,儲存成變數,同時限定傳送的方法、來源,來增加安全性,檢查有沒有皆收到必須要接收到的變數
#回傳的結果:
#$result["status"],執行是否成功,"true"代表執行成功;"false"代表執行失敗.
#$result["error"],錯誤訊息.
#$result["passed"],是否有皆收到全部該接收到的變數,若有設定$conf["checkedVarName"]的話,執行正常後會回傳該結果。
#$result["lostVarName"],沒有皆收到的變數名稱陣列
#$result["inputDataContent"],所接收的參數陣列.
#$result["inputDataContent"]["變數名稱"],所接收變數的內容.
#$result["inputDataCount"],總共接收到幾個元素.
#必填的參數:
#$conf["method"],字串,傳送過來的資料是用"post/POST"還是"get/GET"?
$conf["method"]="post";
#可省略的參數:
#$conf["allowGet"],字串,是否要允許 get 傳值,"true",代表允許;"false" ,代表不允許,預設爲不允許.
#$conf["allowGet"]="true";
#$conf["limitPrePage"],字串陣列,是否要限定前一頁的網址為哪些,才能接收內容,不符合則轉址.
#$conf["limitPrePage"]=array("");
#$conf["transferLocation"],字串,遇到get傳值的時候要轉址到的頁面,預設爲資安素養網"https://isafe.moe.edu.tw/"
#$conf["transferLocation"]="";
#$conf["ignore"]=字串陣列,如果要接收的變數名稱與該陣列其一元素一樣,則不放進要回傳的變數裏面.
#$conf["ignore"]=array();
#$conf["correctCharacter"]=,字串,如果爲"false",則不處理可能導致網頁出問題的字串,預設爲要進行處理.
#$conf["correctCharacter"]="false";
#$conf["checkedVarName"],字串陣列,為檢查是否有接收到哪些變數.
#$conf["checkedVarName"]=array();       
#參考資料來源:
#foreach 的用法 -> http://php.net/manual/en/control-structures.foreach.php
#伺服器端的變數 -> http://php.net/manual/en/reserved.variables.server.php
var_dump(form::responseMultiInputDataSecurityEnhance($conf));
unset($conf);

*/

#提示要測試的函式
echo "<hr>form::simpleControlPanel<br>";

/*

#涵式說明:
#簡單的控制面板
#回傳的結果:
#$result,控制面板的語法
#可以點選"新增"、"回上頁"的簡易面板
#必填的參數:
$conf["addActionPage"]="formT-add.php";#不可省略,爲新增表單要交給那個頁面處理,屬性內容爲網頁位置。
$conf["goBackActionPage"]="formT-back.php";#不可省略,爲回上頁的目的地,屬性內容爲網頁位置。
#可省略的參數:
#$conf["addActionPresentPage"]="";#可省略,爲新增表單的處理頁面要在那邊出現,可以用的數值有 _self (面板所處的頁面) _parent (父頁面) _blank (新視窗) 頁框名稱,預設爲_self
#$conf["addButtonName"]="";#可省略,預設爲"新增",爲新增表單的按鈕顯示名稱,屬性內容爲字串。
#$conf["addButtonStyleName"]="";#可省略,爲新增表單的按鈕css樣式,屬性內容爲 css 的類別名稱。
#$conf["goBackActionPresentPage"]="";#可省略,爲回上頁的目的地的頁面要在那邊出現,可以用的數值有 _self (面板所處的頁面) _parent (父頁面) _blank (新視窗) 頁框名稱,預設爲_self
#$conf["goBackButtonName"]="";#可省略,預設爲"回上頁",爲回上頁的按鈕顯示名稱,屬性內容爲字串。
#$conf["goBackButtonStyleName"]="";#可省略,爲回上頁按鈕的css樣式,屬性內容爲 css 的類別名稱。
#echo form::simpleControlPanel($conf);
unset($conf);

*/

#提示要測試的函式
echo "<hr>form::start & form::inputHidden & form::buttonImg & form::end & form::responseMultiInputDataSecurityEnhance <br>";

/*

#涵式說明:
#表單開始
#回傳的結果:
#$result,表單開始的語法
#必填的參數:
$conf["action"]="formT.php";#爲要交給那個檔案處理該表單傳送的內容
#可省略的參數:
#$conf["name"]="";#爲該表單的名稱
#$conf["method"]="";#爲傳輸的方法,若沒設定則預設爲post,其他可用的參數爲get。
#$conf["target"]="";#為顯示的方式,若沒設定則預設爲"_self",其他可用的參數爲 "_blank"、"_parent"、"_top",也可以是iframe的名稱。
#$conf["tableStart"]="true";#爲該表單是否要以<table>開始。"true"爲是;
#$conf["tableClass"]="";#表格要套用的css樣式,若爲"__withoutBorder"的話則套用無框線的預設樣式;若爲"__withBorder"的話,則爲有框線的預設樣式。
echo form::start($conf);
unset($conf);

#涵式說明:
#隱藏的表單傳送資訊
#回傳的結果:
#$result,語法
#必填的參數:
$conf["name"]="keyRing";#隱藏的表單名稱
$conf["value"]="222";#等於要傳送的數值          
#可省略的參數:
echo form::inputHidden($conf);
unset($conf);

#傳送多個隱藏表單的資訊
#回傳的數值:
#$result,語法
#$result["sendedArrayName"],
#$result["sendedArrayValue"],
#$result["sendedArrayCount"],
#必填的參數:
$conf["nameArray"]=array("nameA","nameB","nameC");#欲傳送的隱藏陣列變數名稱
$conf["valueArray"]=array("valueA","valueB","valueC");#欲傳送的隱藏陣列變數數值
echo form::inputMultiHidden($conf);
unset($conf);

#以圖片代替的表單送出扭
#必填的參數:
$conf["img"]="fedoraBear.png";#爲要作爲按鈕的圖片位置。
#可省略的參數:
#$conf["width"]="";#爲按鈕圖片的寬度,若省略,則按照原始圖片的寬度。
#$conf["height"]="";#爲按鈕圖片的高度,若省略,則按照原始圖片的高度。
#$conf["class"]="";/爲按鈕圖片要套用的css樣式名稱,若省略,則不套用任何css樣式。
#$conf["trStart"]="true";#爲是否要以<tr>開頭,"true"表示"是"。也可以看作新的一列開始。
#$conf["tdStart"]="true";#爲是否要以<td>開頭,"true"表示"是"。也可以看成列裏面的元素開始
#$conf["tdEnd"]="true";#爲是否要以</td>結尾,"true"表示"是"。也可以看成列裏面的元素結束
#$conf["trEnd"]="true";#爲是否要以</tr>結尾,"true"表示"是"。也可以看作該列結束。
#備註:
#使用圖片作為傳送按時,會傳送點擊圖片的x軸與y軸數數值.
echo form::buttonImg($conf);
unset($conf);

#涵式說明:
#表單結束
#回傳的結果:
#$result,表單結束的語法
#必填寫的參數:
$conf["tableEnd"]="false";#爲該表單是否要以</table>結尾。"true"爲是;"false"爲否。
echo form::end($conf);
unset($conf);

#涵式說明:
#可以處理多個透過GET、POST而來的資訊,儲存成變數,同時限定傳送的方法、來源,來增加安全性。
#回傳的結果:
#$result["status"],執行是否成功,"true"代表執行成功;"false"代表執行失敗。
#$result["error"],錯誤訊息。
#$result["inputDataContent"],所接收的參數陣列。
#$result["inputDataContent"]["變數名稱"],所接收變數的內容
#$result["inputDataCount"],總共接收到幾個元素。
#必填的參數:
$conf["method"]="post";#傳送過來的資料是用"post/POST"還是"get/GET"?
#可省略的參數:
#$conf["allowGet"]="true";#是否要允許 get 傳值,"true",代表允許;"false" ,代表不允許,預設爲不允許。
#$conf["limitPrePage"]="";#是否要限定前一頁的網址為何,才能接收內容,不符合則轉址。
#$conf["transferLocation"]="";#遇到get傳值的時候要轉址到的頁面,預設爲資安素養網"https:#isafe.moe.edu.tw/"
#$conf["ignore"]=array();#如果要接收的變數名稱與該陣列其一元素一樣,則不放進要回傳的變數裏面。
#$conf["correctCharacter"]="false";#如果爲"false",則不處理可能導致網頁出問題的字串,預設爲要進行處理。
#備註:
##$conf["limitPrePage"]參數目前無效
#參考資料來源:
#foreach 的用法 -> http:#php.net/manual/en/control-structures.foreach.php
#伺服器端的變數 -> http://php.net/manual/en/reserved.variables.server.php
var_dump(form::responseMultiInputDataSecurityEnhance($conf));
unset($conf);

*/

#提示要測試的函式
echo "<hr>form::removeConfirm<br>";

/*
 
#涵式說明:
#移除東西的確認視窗
#回傳的結果:
#$result["status"],執行是否正常,"true"代表正常;"false"代表有問題
#$reuslt["error"],錯誤訊息陣列
#$result["content"],語法
#必填的參數:
$conf["itemName"]="test";#爲要刪除的物件提示名稱,格式爲字串。
$conf["cancleActionPage"]="formT.php";#爲按下取消按鈕後,要交給那個頁面處理。
$conf["removeActionPage"]="formT.php";#爲移除按鈕傳送的內容要交給哪一個頁面處理。
#可省略的參數:
$conf["fontColor"]="#9999FF";#可省略預設爲 "#000000"(黑色),爲提示的字型顏色,格式爲 #000000~#FFFFFF。
$conf["cancleActionDisplayMethod"]="_top";#可省略,預設爲"_self",爲按下取消按鈕後,
        #交給的處理的頁面要怎麼顯現,類型爲字串,可能值有 "_top" "_self" "_blank" "_blank"
#$conf["cancleButtonStyle"]="";#可省略,爲取消鈕的css樣式類別名稱。
#$conf["cancleButtonDisplayName"]="";#可省略,預設爲"取消",爲取消鈕的顯示名稱。
#$conf["cancleSendingVarName"]=array("");#爲按下取消按鈕後要傳送的數值名稱
#$conf["cancleSendingVarValue"]=array("");#爲按下取消按鈕後要傳送的數值內容
$conf["removeActionDisplayMethod"]="_top";#可省略預設爲"_self",爲處理移除內容的頁面要如何顯現,
        #類型爲字串,可能值有 "_top" "_self" "_blank" "_blank"
#$conf["removeButtonStyle"]="";#可省略,爲移除按鈕的css樣式類別名稱。
#$conf["removeButtonDisplayName"]="";#可省略,預設爲"確認移除",爲移除按鈕的顯示文字內容
$conf["removeSendingVarName"]=array("hiddenVar");#爲按下移除按鈕後要傳送的數值名稱
$conf["removeSendingVarValue"]=array("hiddenVarValue");#爲按下移除按鈕後要傳送的數值內容
#程式建議:
#要刪除的物件提示名稱,如果可以擺方多個資訊將會更方便。
$removeConfirm=form::removeConfirm($conf);
unset($conf);

var_dump($removeConfirm);

*/

#提示要測試的函式
echo "<hr>form::inputSelect - testCase 1<br>";

/*

#涵式說明:
#建立下拉式表單
#回傳的結果:
#$result["status"],執行是否正常,"true"代表正常,"false"代表失敗.
#$result["error"],錯誤訊息陣列.
#$result["content"],語法內容.
#$result["function"],設置當前執行的涵式
#必填的參數: 
#$conf["name"],字串,爲該下拉式選單的名稱
$conf["name"]="form::inputSelect - testCase 1";
#$conf["sendValue"],陣列值,爲每個選項的實際傳送的數值,e.g. $sendValue = array("a","b","c","d","e");
$conf["sendValue"]=array("A","B","C");
#可省略的參數:
#$conf["formName"]="";#該表單的名稱
$conf["outputValue"]=array("ㄅ","ㄆ","ㄇ");#爲陣列值,爲每個選項的實際顯示的數值, e.g. $outputValue = array("p","o","i","t","e");,如果沒有設定,則其值同$conf["sendValue"]。
$conf["viewCount"]="2";#為一次要顯示幾個選項,預設爲顯示一個。
$conf["defaultValue"]="B";#為預設選取那個選項,須爲$conf["sendValue"]其中的一個值。
#$conf["class"]="";#爲要套用的class樣式,預設有 __simpleButtonLinkDefaultButtonCssStyle  的css樣式名稱
        #其屬性爲   "width","height","font-size","text-align"
        #其屬性值爲 "100%"  ,  "50"  ,    "30"   ,   "center"
#$conf["readOnly"],字串,內容是否唯獨,預設為"false",不唯獨,"true"為唯獨.
#$conf["readOnly"]="true";
#$conf["comment"],字串,下拉式表單的註解文字.
$conf["comment"]="請選擇";
#$conf["formAction"]="";#爲該下拉式表單要傳送到的位置
#$conf["actionTarget"]="_self";#要如何接收網頁的迴應,預設爲_self
#$conf["jsActivitor"]="";#爲觸發js的條件,可以是"onChange"(已改變內容時)...,須搭配$conf["jsAction"]參數。
#$conf["jsAction"]="";#爲該js是要做什麼,可以是"document.forms.formName.submit()"(傳送名爲testForm的表單內容)...,須搭配$conf["jsActivitor"]參數。
#$conf["independentForm"]="false";#是否該下拉式選單就是一個完整的表單,"true"代表是,"false"代表不是,預設為"true"
#$conf["hiddenVar"],字串陣列,隱藏的變數名稱陣列.
#$conf["hiddenVar"]=array("");
#$conf["hiddanVarValue"],字串陣列,隱藏變數的數值內容.
#$conf["hiddenVarValue"]=array("");
#$conf["fixedPosition"],字串,該下拉式選單是否要隨着滾軸滾動時固定在畫面上特定的位置,於設為"false",代表不固定,"true"代表要固定.
#$conf["fixedPosition"]="true";
#$conf["fixedPosition.fixedTop"],字串,該選單距離畫面頂部的固定距離,預設為0px.
#$conf["fixedPosition.fixedTop"]="0px";
#$conf["fixedPosition.fixedLeft"],字串,該選單距離畫面左方的固定距離.預設為0px.
#$conf["fixedPosition.fixedLeft"]="0px";
#$conf["fixedPosition.emptySpaceSize"],字串,表單位置要放置多寬的空白,於設為40px.
#$conf["fixedPosition.emptySpaceSize"]="40px"; 
#$conf["tableStartClass"]="__withoutBorder";#表格要採用的css樣式,預設為__withoutBorder,__withoutBorder為沒有框線的樣式,__withBorder為有樣式的表格.
#$conf["tableStart"]="true";#爲是否要以<table>結尾,"true"表示"是"。也可以看作表格結束。    
#$conf["trStart"]="true";#爲是否要以<tr>開頭,"true"表示"是"。也可以看作新的一列開始。
#$conf["tdStart"]="true";#爲是否要以<td>開頭,"true"表示"是"。也可以看成列裏面的元素開始
#$conf["tdEnd"]="true";#爲是否要以</td>結尾,"true"表示"是"。也可以看成列裏面的元素結束
#$conf["trEnd"]="true";#爲是否要以</tr>結尾,"true"表示"是"。也可以看作該列結束。
#$conf["tableEnd"]="true";#爲是否要以</table>結尾,"true"表示"是"。也可以看作表格結束。             
#備註:
#$_SERVER["PHP_SELF"]為php檔案自己
#參考資料來源:
#http://stackoverflow.com/questions/833032/submit-is-not-a-function-in-javascript => form的id重複會導致"document.testForm.submit()"的javaScript語法出錯。
#http://stackoverflow.com/questions/14622124/all-of-commands-for-submit-in-onchange-select-not-work => documents.forms.formName.submit() 才會將正確的表單送出。
#http://stackoverflow.com/questions/368813/html-form-readonly-select-tag-input => 禁止改變選項,且也不會傳送該名稱表單
#tableStart & tableEnd 要補上
echo form::inputSelect($conf)["content"];
unset($conf);

*/

#提示要測試的函式
echo "<hr>form::inputSelect - testCase 2<br>";

/*

#涵式說明:
#建立下拉式表單
#回傳的結果:
#$result["status"],執行是否正常,"true"代表正常,"false"代表失敗.
#$result["error"],錯誤訊息陣列.
#$result["content"],語法內容.
#$result["function"],設置當前執行的涵式
#必填的參數: 
#$conf["name"],字串,爲該下拉式選單的名稱
$conf["name"]="form::inputSelect - testCase 2";
#$conf["sendValue"],陣列值,爲每個選項的實際傳送的數值,e.g. $sendValue = array("a","b","c","d","e");
$conf["sendValue"]=array("A","B","C","D");
#可省略的參數:
#$conf["formName"]="";#該表單的名稱
$conf["outputValue"]=array("ㄅ","ㄆ","ㄇ","ㄈ");#爲陣列值,爲每個選項的實際顯示的數值, e.g. $outputValue = array("p","o","i","t","e");,如果沒有設定,則其值同$conf["sendValue"]。
$conf["viewCount"]="4";#為一次要顯示幾個選項,預設爲顯示一個。
$conf["defaultValue"]="C";#為預設選取那個選項,須爲$conf["sendValue"]其中的一個值。
#$conf["class"]="";#爲要套用的class樣式,預設有 __simpleButtonLinkDefaultButtonCssStyle  的css樣式名稱
        #其屬性爲   "width","height","font-size","text-align"
        #其屬性值爲 "100%"  ,  "50"  ,    "30"   ,   "center"
#$conf["readOnly"],字串,內容是否唯獨,預設為"false",不唯獨,"true"為唯獨.
$conf["readOnly"]="true";
#$conf["comment"],字串,下拉式表單的註解文字.
$conf["comment"]="請選擇";
#$conf["formAction"]="";#爲該下拉式表單要傳送到的位置
#$conf["actionTarget"]="_self";#要如何接收網頁的迴應,預設爲_self
#$conf["jsActivitor"]="";#爲觸發js的條件,可以是"onChange"(已改變內容時)...,須搭配$conf["jsAction"]參數。
#$conf["jsAction"]="";#爲該js是要做什麼,可以是"document.forms.formName.submit()"(傳送名爲testForm的表單內容)...,須搭配$conf["jsActivitor"]參數。
#$conf["independentForm"]="false";#是否該下拉式選單就是一個完整的表單,"true"代表是,"false"代表不是,預設為"true"
#$conf["hiddenVar"],字串陣列,隱藏的變數名稱陣列.
#$conf["hiddenVar"]=array("");
#$conf["hiddanVarValue"],字串陣列,隱藏變數的數值內容.
#$conf["hiddenVarValue"]=array("");
#$conf["fixedPosition"],字串,該下拉式選單是否要隨着滾軸滾動時固定在畫面上特定的位置,於設為"false",代表不固定,"true"代表要固定.
#$conf["fixedPosition"]="true";
#$conf["fixedPosition.fixedTop"],字串,該選單距離畫面頂部的固定距離,預設為0px.
#$conf["fixedPosition.fixedTop"]="0px";
#$conf["fixedPosition.fixedLeft"],字串,該選單距離畫面左方的固定距離.預設為0px.
#$conf["fixedPosition.fixedLeft"]="0px";
#$conf["fixedPosition.emptySpaceSize"],字串,表單位置要放置多寬的空白,於設為40px.
#$conf["fixedPosition.emptySpaceSize"]="40px"; 
#$conf["tableStartClass"]="__withoutBorder";#表格要採用的css樣式,預設為__withoutBorder,__withoutBorder為沒有框線的樣式,__withBorder為有樣式的表格.
#$conf["tableStart"]="true";#爲是否要以<table>結尾,"true"表示"是"。也可以看作表格結束。    
#$conf["trStart"]="true";#爲是否要以<tr>開頭,"true"表示"是"。也可以看作新的一列開始。
#$conf["tdStart"]="true";#爲是否要以<td>開頭,"true"表示"是"。也可以看成列裏面的元素開始
#$conf["tdEnd"]="true";#爲是否要以</td>結尾,"true"表示"是"。也可以看成列裏面的元素結束
#$conf["trEnd"]="true";#爲是否要以</tr>結尾,"true"表示"是"。也可以看作該列結束。
#$conf["tableEnd"]="true";#爲是否要以</table>結尾,"true"表示"是"。也可以看作表格結束。             
#備註:
#$_SERVER["PHP_SELF"]為php檔案自己
#參考資料來源:
#http://stackoverflow.com/questions/833032/submit-is-not-a-function-in-javascript => form的id重複會導致"document.testForm.submit()"的javaScript語法出錯。
#http://stackoverflow.com/questions/14622124/all-of-commands-for-submit-in-onchange-select-not-work => documents.forms.formName.submit() 才會將正確的表單送出。
#http://stackoverflow.com/questions/368813/html-form-readonly-select-tag-input => 禁止改變選項,且也不會傳送該名稱表單
#tableStart & tableEnd 要補上
echo form::inputSelect($conf)["content"];
unset($conf);

*/

#提示要測試的函式
echo "<hr>form::inputSelect - testCase 3<br>";

/*

#涵式說明:
#建立下拉式表單
#回傳的結果:
#$result["status"],執行是否正常,"true"代表正常,"false"代表失敗.
#$result["error"],錯誤訊息陣列.
#$result["content"],語法內容.
#$result["function"],設置當前執行的涵式
#必填的參數: 
#$conf["name"],字串,爲該下拉式選單的名稱
$conf["name"]="form::inputSelect - testCase 3";
#$conf["sendValue"],陣列值,爲每個選項的實際傳送的數值,e.g. $sendValue = array("a","b","c","d","e");
$conf["sendValue"]=array("請選擇","A","B","C","D");
#可省略的參數:
$conf["formName"]="inputSelect";#該表單的名稱
$conf["outputValue"]=array("請選擇","ㄅ","ㄆ","ㄇ","ㄈ");#爲陣列值,爲每個選項的實際顯示的數值, e.g. $outputValue = array("p","o","i","t","e");,如果沒有設定,則其值同$conf["sendValue"]。
$conf["viewCount"]="3";#為一次要顯示幾個選項,預設爲顯示一個。
$conf["defaultValue"]="請選擇";#為預設選取那個選項,須爲$conf["sendValue"]其中的一個值。
#$conf["class"]="";#爲要套用的class樣式,預設有 __simpleButtonLinkDefaultButtonCssStyle  的css樣式名稱
        #其屬性爲   "width","height","font-size","text-align"
        #其屬性值爲 "100%"  ,  "50"  ,    "30"   ,   "center"
#$conf["readOnly"],字串,內容是否唯獨,預設為"false",不唯獨,"true"為唯獨.
#$conf["readOnly"]="true";
#$conf["comment"],字串,下拉式表單的註解文字.
$conf["comment"]="請選擇";
$conf["formAction"]="formT.php";#爲該下拉式表單要傳送到的位置
$conf["actionTarget"]="_self";#要如何接收網頁的迴應,預設爲_self
$conf["jsActivitor"]="onChange";#爲觸發js的條件,可以是"onChange"(已改變內容時)...,須搭配$conf["jsAction"]參數。
$conf["jsAction"]="document.forms.inputSelect.submit()";#爲該js是要做什麼,可以是"document.forms.formName.submit()"(傳送名爲testForm的表單內容)...,須搭配$conf["jsActivitor"]參數。
#$conf["independentForm"]="false";#是否該下拉式選單就是一個完整的表單,"true"代表是,"false"代表不是,預設為"true"
#$conf["hiddenVar"],字串陣列,隱藏的變數名稱陣列.
$conf["hiddenVar"]=array("x","y","z");
#$conf["hiddanVarValue"],字串陣列,隱藏變數的數值內容.
$conf["hiddenVarValue"]=array("X","Y","Z");
#$conf["fixedPosition"],字串,該下拉式選單是否要隨着滾軸滾動時固定在畫面上特定的位置,於設為"false",代表不固定,"true"代表要固定.
#$conf["fixedPosition"]="true";
#$conf["fixedPosition.fixedTop"],字串,該選單距離畫面頂部的固定距離,預設為0px.
#$conf["fixedPosition.fixedTop"]="0px";
#$conf["fixedPosition.fixedLeft"],字串,該選單距離畫面左方的固定距離.預設為0px.
#$conf["fixedPosition.fixedLeft"]="0px";
#$conf["fixedPosition.emptySpaceSize"],字串,表單位置要放置多寬的空白,於設為40px.
#$conf["fixedPosition.emptySpaceSize"]="40px"; 
#$conf["tableStartClass"]="__withoutBorder";#表格要採用的css樣式,預設為__withoutBorder,__withoutBorder為沒有框線的樣式,__withBorder為有樣式的表格.
#$conf["tableStart"]="true";#爲是否要以<table>結尾,"true"表示"是"。也可以看作表格結束。    
#$conf["trStart"]="true";#爲是否要以<tr>開頭,"true"表示"是"。也可以看作新的一列開始。
#$conf["tdStart"]="true";#爲是否要以<td>開頭,"true"表示"是"。也可以看成列裏面的元素開始
#$conf["tdEnd"]="true";#爲是否要以</td>結尾,"true"表示"是"。也可以看成列裏面的元素結束
#$conf["trEnd"]="true";#爲是否要以</tr>結尾,"true"表示"是"。也可以看作該列結束。
#$conf["tableEnd"]="true";#爲是否要以</table>結尾,"true"表示"是"。也可以看作表格結束。             
#備註:
#$_SERVER["PHP_SELF"]為php檔案自己
#參考資料來源:
#http://stackoverflow.com/questions/833032/submit-is-not-a-function-in-javascript => form的id重複會導致"document.testForm.submit()"的javaScript語法出錯。
#http://stackoverflow.com/questions/14622124/all-of-commands-for-submit-in-onchange-select-not-work => documents.forms.formName.submit() 才會將正確的表單送出。
#http://stackoverflow.com/questions/368813/html-form-readonly-select-tag-input => 禁止改變選項,且也不會傳送該名稱表單
#tableStart & tableEnd 要補上
var_dump(form::inputSelect($conf));
unset($conf);

#涵式說明:
#可以處理多個透過GET、POST而來的資訊,儲存成變數,同時限定傳送的方法、來源,來增加安全性,檢查有沒有皆收到必須要接收到的變數,沒有接收到的變數可以指定從session變數中取得.
#回傳的結果:
#$result["status"],執行正常與否,"true"代表正常,"false"代表不正常.
#$result["error"],錯誤訊息陣列.
#$resutl["function"],當前執行的涵式名稱.
#$result["warning"],警告訊息陣列.
#$result["passed"],是否有皆收到全部該接收到的變數,若有設定$conf["checkedVarName"]的話,執行正常後會回傳該結果。
#$result["lostVarName"],沒有皆收到的變數名稱陣列
#$result["inputDataContent"],所接收的參數陣列.
#$result["inputDataContent"]["變數名稱"],所接收變數的內容.
#$result["inputDataCount"],從表單總共接收到幾個元素.
#$result["HTTP_REFERER"],前一頁的網址,null代表不存在.
#必填的參數:
#$conf["method"],字串,傳送過來的資料是用"post/POST"還是"get/GET"?
$conf["method"]="post";
#可省略的參數:
#$conf["allowGet"],字串,是否要允許 get 傳值,"true",代表允許;"false" ,代表不允許,預設爲不允許.
#$conf["allowGet"]="true";
#$conf["limitPrePage"],字串陣列,是否要限定前一頁的網址為哪些,才能接收內容,不符合則轉址.
#$conf["limitPrePage"]=array("");
#$conf["transferLocation"],字串,遇到get傳值,或前一個頁面不符合要求時要轉址到的頁面,預設爲資安素養網"https://isafe.moe.edu.tw/"
#$conf["transferLocation"]="";
#$conf["ignore"]=字串陣列,如果要接收的變數名稱與該陣列其一元素一樣,則不放進要回傳的變數裏面.
#$conf["ignore"]=array();
#$conf["correctCharacter"]=,字串,如果爲"false",則不處理可能導致網頁出問題的字串,預設爲要進行處理.
#$conf["correctCharacter"]="false";
#$conf["checkedVarName"],字串陣列,為檢查是否有接收到哪些變數.
#$conf["checkedVarName"]=array(); 
#$conf["canBeEmptyString"],字串,用$conf["checkedVarName"]指定接收的變數名稱陣列,若接收到的內容為空字串是否算有接收到內容,預設為"false","true"代表接收到的內容可以為空字串,"false"代表接收到的內容不可以為空字串.      
#$conf["canBeEmptyString"]="false";
#$conf["sessionNameArray"],陣列,若存在則代表若沒有從表單取得變數,則從session變數中取得內容,每個元素代表每個表單變數對應的session名稱,若不是要改用session方式取得變數內容的變數,請輸入null,數量請跟$conf["checkedVarName"]參數一致.
#$conf["sessionNameArray"]=array();
#$conf["unsetSessionArray"],陣列,與$conf["sessionNameArray"]對應的元素,是否要接收到變數後就卸除,"true"代表要卸除,"false"代表不要卸除.
#$conf["unsetSessionArray"]=array();
#參考資料來源:
#foreach 的用法 -> http://php.net/manual/en/control-structures.foreach.php
#伺服器端的變數 -> http://php.net/manual/en/reserved.variables.server.php
#備註:
#表單變數的名稱若含有「.」,則會變成「-」。
var_dump(form::responseMultiInputDataSecurityEnhance($conf));
unset($conf);

*/

#提示要測試的函式
echo "<hr>form::inputSelect - testCase 4<br>";

/*

#涵式說明:
#建立下拉式表單
#回傳的結果:
#$result["status"],執行是否正常,"true"代表正常,"false"代表失敗.
#$result["error"],錯誤訊息陣列.
#$result["content"],語法內容.
#$result["function"],設置當前執行的涵式
#必填的參數: 
#$conf["name"],字串,爲該下拉式選單的名稱
$conf["name"]="action";
#$conf["sendValue"],陣列值,爲每個選項的實際傳送的數值,e.g. $sendValue = array("a","b","c","d","e");
$conf["sendValue"]=array("請選擇","回上頁","上傳檔案");
#可省略的參數:
$conf["formName"]="controlPanelAction";#該表單的名稱
#$conf["outputValue"]=array();#爲陣列值,爲每個選項的實際顯示的數值, e.g. $outputValue = array("p","o","i","t","e");,如果沒有設定,則其值同$conf["sendValue"]。
#$conf["viewCount"]="";#為一次要顯示幾個選項,預設爲顯示一個。
$conf["defaultValue"]="請選擇";#為預設選取那個選項,須爲$conf["sendValue"]其中的一個值。
#$conf["class"]="";#爲要套用的class樣式,預設為 "__qbpwcf_inputSelect".
#$conf["readOnly"],字串,內容是否唯獨,預設為"false",不唯獨,"true"為唯獨.
#$conf["readOnly"]="true";
#$conf["comment"],字串,輸入方框上面要放哪些註解文字,亦即用label來呈現,同時指定"for"屬性的數值為當前"input"標籤的id,意即參數"name"的內容.
#$conf["comment"]="";
$conf["formAction"]="controlPanel.action.php";#爲該下拉式表單要傳送到的位置
$conf["actionTarget"]="_top";#要如何接收網頁的迴應,預設爲_self
$conf["jsActivitor"]="onChange";#爲觸發js的條件,可以是"onChange"(已改變內容時)...,須搭配$conf["jsAction"]參數。
$conf["jsAction"]="document.forms.controlPanelAction.submit()";#爲該js是要做什麼,可以是"document.forms.formName.submit()"(傳送名爲testForm的表單內容)...,須搭配$conf["jsActivitor"]參數。
#$conf["independentForm"]="false";#是否該下拉式選單就是一個完整的表單,"true"代表是,"false"代表不是,預設為"true"
#$conf["hiddenVar"],字串陣列,隱藏的變數名稱陣列.
#$conf["hiddenVar"]=array("");
#$conf["hiddanVarValue"],字串陣列,隱藏變數的數值內容.
#$conf["hiddenVarValue"]=array("");
#$conf["fixedPosition"],字串,該下拉式選單是否要隨着滾軸滾動時固定在畫面上特定的位置,於設為"false",代表不固定,"true"代表要固定.
$conf["fixedPosition"]="true";
#$conf["fixedPosition.fixedTop"],字串,該選單距離畫面頂部的固定距離,預設為0px.
#$conf["fixedPosition.fixedTop"]="0px";
#$conf["fixedPosition.fixedLeft"],字串,該選單距離畫面左方的固定距離.預設為0px.
#$conf["fixedPosition.fixedLeft"]="0px";
#$conf["fixedPosition.emptySpaceSize"],字串,表單位置要放置多寬的空白,於設為40px.
#$conf["fixedPosition.emptySpaceSize"]="40px"; 
#$conf["tableStartClass"]="__withoutBorder";#表格要採用的css樣式,預設為__withoutBorder,__withoutBorder為沒有框線的樣式,__withBorder為有樣式的表格.
#$conf["tableStart"]="true";#爲是否要以<table>結尾,"true"表示"是"。也可以看作表格結束。    
#$conf["trStart"]="true";#爲是否要以<tr>開頭,"true"表示"是"。也可以看作新的一列開始。
#$conf["tdStart"]="true";#爲是否要以<td>開頭,"true"表示"是"。也可以看成列裏面的元素開始
#$conf["tdEnd"]="true";#爲是否要以</td>結尾,"true"表示"是"。也可以看成列裏面的元素結束
#$conf["trEnd"]="true";#爲是否要以</tr>結尾,"true"表示"是"。也可以看作該列結束。
#$conf["tableEnd"]="true";#爲是否要以</table>結尾,"true"表示"是"。也可以看作表格結束。             
#備註:
#$_SERVER["PHP_SELF"]為php檔案自己
#參考資料來源:
#http://stackoverflow.com/questions/833032/submit-is-not-a-function-in-javascript => form的id重複會導致"document.testForm.submit()"的javaScript語法出錯。
#http://stackoverflow.com/questions/14622124/all-of-commands-for-submit-in-onchange-select-not-work => documents.forms.formName.submit() 才會將正確的表單送出。
#http://stackoverflow.com/questions/368813/html-form-readonly-select-tag-input => 禁止改變選項,且也不會傳送該名稱表單
#tableStart & tableEnd 要補上
$inputSelect=form::inputSelect($conf);
unset($conf);
 
#如果執行失敗
if($inputSelect["status"]==="false"){
        
        #印出結果
        var_dump($inputSelect);
        
        #結束程式
        exit;
        
        }#if end 
 
#印出內容
echo $inputSelect["content"];
 
*/

#提示要測試的函式
echo "<hr>form::sendHugeDataButton - testCase 1<br>";

/*

#涵式說明:
#一個簡單的按鈕,按了可以到指定的頁面。同時也可以傳送多個隱藏的變數
#回傳的結果
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
#$result["error"],錯誤訊息陣列
#$result["function"],當前執行的函數名稱.
#$result["content"],語法內容
#必填的參數:
$conf["buttonDisplayValue"]="test";#按鈕上要顯示的文字
#可以省略的參數:
#$conf["buttonStyleName"]="";#按鈕的css樣式應該爲何,若省略的話預設會採用 __simpleButtonLinkDefaultButtonCssStyle 的樣式
        #其屬性爲   "width","height","font-size","text-align"
        #其屬性值爲 "300"  ,  "50"  ,    "30"   ,   "center"
#備註:
# __simpleButtonLinkDefaultButtonCssStyle,爲預設的按鈕css樣式,請勿使用相同類別名稱的css樣式,以免衝突。
$conf["hiddenVarName"]=array("hiVar");#要傳送的隱藏變數名稱,與 $conf["hiddenVarContent"] 相對應。
$conf["hiddenVarContent"]=array("sxsxx");#要傳誦的隱藏變數內容,與 $conf["hiddenVarName"] 相對應。
#$conf["disabled"]="true";#可省略,為按鈕的功能是否要取消,若為"true"則代表要取消,若為"false"則代表功能正常,預設為"false".
$conf["formStart"]="true";#爲是否要表單開始,如果爲"true"則代表要表單開始,預設爲"true"
#$conf["formName"]="";#該表單的名稱
$conf["actionPage"]="formT.php";#按鈕按了之後要到哪個地方?若爲 $_SERVER["PHP_SELF"],則爲回到目前頁面。
#$conf["buttonActionScriptFunction"]="";#可省略,爲按下按鈕時所要執行的javaScript函式,預設不設定。
        #可以是"document.forms.formName.submit()"(傳送名爲testForm的表單內容).
$conf["formEnd"]="true";#爲是否要表單結束,如果爲"true"則代表要表單結束,預設爲"true"
#$conf["tableStart"]="true";#爲是否要表格開始,"true"表示"是"。
#$conf["tableClass"]="__withoutBorder";#爲表格要採用的css樣式名稱,"__withoutBorder"代表沒有框線的預設樣式;"__withBorder"代表有框線的預設樣式
#$conf["trStart"]="true";#爲是否要以<tr>開頭,"true"表示"是"。也可以看作新的一列開始。
#$conf["trClass"]="__withoutBorder";#列開始的css樣式,"__withoutBorder"代表沒有框線的預設樣式;"__withBorder"代表有框線的預設樣式
#$conf["tdStart"]="true";#爲是否要以<td>開頭,"true"表示"是"。也可以看成列裏面的元素開始
#$conf["tdClass"]="__withoutBorder";#行開始的css樣式,"__withoutBorder"代表沒有框線的預設樣式;"__withBorder"代表有框線的預設樣式
#$conf["tdEnd"]="true";#爲是否要以</td>結尾,"true"表示"是"。也可以看成列裏面的元素結束
#$conf["trEnd"]="true";#爲是否要以</tr>結尾,"true"表示"是"。也可以看作該列結束。
$conf["displayTarget"]="_blank";#頁面的呈現方法,可以是開新視窗(_blank)、在目前頁面、頁框裏面(_self)、在父頁面(_parent)、最上層頁面(_top),預設為"_top"。
#$conf["tableEnd"]="true";#爲是否要表格結束,"true"表示"是"。
var_dump(form::sendHugeDataButton($conf));
unset($conf);

#涵式說明:
#可以處理多個透過GET、POST而來的資訊,儲存成變數,同時限定傳送的方法、來源,來增加安全性,檢查有沒有皆收到必須要接收到的變數,沒有接收到的變數可以指定從session變數中取得.
#回傳的結果:
#$result["status"],執行正常與否,"true"代表正常,"false"代表不正常.
#$result["error"],錯誤訊息陣列.
#$resutl["function"],當前執行的涵式名稱.
#$result["warning"],警告訊息陣列.
#$result["passed"],是否有皆收到全部該接收到的變數,若有設定$conf["checkedVarName"]的話,執行正常後會回傳該結果。
#$result["lostVarName"],沒有皆收到的變數名稱陣列
#$result["inputDataContent"],所接收的參數陣列.
#$result["inputDataContent"]["變數名稱"],所接收變數的內容.
#$result["inputDataCount"],從表單總共接收到幾個元素.
#$result["HTTP_REFERER"],前一頁的網址,null代表不存在.
#必填的參數:
#$conf["method"],字串,傳送過來的資料是用"post/POST"還是"get/GET"?
$conf["method"]="post";
#可省略的參數:
#$conf["allowGet"],字串,是否要允許 get 傳值,"true",代表允許;"false" ,代表不允許,預設爲不允許.
#$conf["allowGet"]="true";
#$conf["limitPrePage"],字串陣列,是否要限定前一頁的網址為哪些,才能接收內容,不符合則轉址.
#$conf["limitPrePage"]=array("");
#$conf["transferLocation"],字串,遇到get傳值,或前一個頁面不符合要求時要轉址到的頁面,預設爲資安素養網"https://isafe.moe.edu.tw/"
#$conf["transferLocation"]="";
#$conf["ignore"]=字串陣列,如果要接收的變數名稱與該陣列其一元素一樣,則不放進要回傳的變數裏面.
#$conf["ignore"]=array();
#$conf["correctCharacter"]=,字串,如果爲"false",則不處理可能導致網頁出問題的字串,預設爲要進行處理.
#$conf["correctCharacter"]="false";
#$conf["checkedVarName"],字串陣列,為檢查是否有接收到哪些變數.
#$conf["checkedVarName"]=array(); 
#$conf["canBeEmptyString"],字串,用$conf["checkedVarName"]指定接收的變數名稱陣列,若接收到的內容為空字串是否算有接收到內容,預設為"false","true"代表接收到的內容可以為空字串,"false"代表接收到的內容不可以為空字串.      
#$conf["canBeEmptyString"]="false";
#$conf["sessionNameArray"],陣列,若存在則代表若沒有從表單取得變數,則從session變數中取得內容,每個元素代表每個表單變數對應的session名稱,若不是要改用session方式取得變數內容的變數,請輸入null,數量請跟$conf["checkedVarName"]參數一致.
#$conf["sessionNameArray"]=array();
#$conf["unsetSessionArray"],陣列,與$conf["sessionNameArray"]對應的元素,是否要接收到變數後就卸除,"true"代表要卸除,"false"代表不要卸除.
#$conf["unsetSessionArray"]=array();
#參考資料來源:
#foreach 的用法 -> http://php.net/manual/en/control-structures.foreach.php
#伺服器端的變數 -> http://php.net/manual/en/reserved.variables.server.php
#備註:
#表單變數的名稱若含有「.」,則會變成「-」。
var_dump(form::responseMultiInputDataSecurityEnhance($conf));
unset($conf);

*/

#提示要測試的函式
echo "<hr>form::inputText - testCase 1<br>";

/*

#涵式說明:
#可以輸入文字的表單
#回傳的結果:
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
#$result["function"],當前執行的函數.
#$result["error"],錯誤訊息陣列.
#$result["content"],按鈕語法. 
#必填的參數
$conf["name"]="form::inputText - testCase 1";#爲該文字輸入框的名稱,用於讓接收頁面讀取的名稱。
$conf["readOnly"]="false";#爲該文字框是否可以填寫資料,若要只能觀看不能填寫,那麼就必須將其值設爲"true",反之要設爲"false"
#可省略的參數:
$conf["width"]="100";#爲文字框的外觀長度,預設是不作設定讓瀏覽器自行決定。
$conf["maxInputLength"]="20";#爲可輸入的最大位元長度,預設不限制。
$conf["autoFocus"]="true";#是否為將填寫的指標移到該表單,"true"代表要,預設為"false".
$conf["value"]="form::inputText - testCase 1";#爲該文字框預設要顯示的文字,預設爲""。 
#$conf["class"]="";#爲要套用的css樣式,若省略,則會套用預設的 "__inputTextCssStyle" 樣式,其屬性爲 "width:100%","font-size:30px"
#$conf["jsActivitor"]="";#爲觸發js的條件,可以是"onChange"(已改變內容時)、"onClick"(按下按鈕時)、"onkeyup"(當鍵盤按下放開後)、"onmouseover"(當滑鼠移過去的時候)...,須搭配$conf["jsSubmitActionTarget"]參數。
#$conf["jsAction"]="";#爲該js是要做什麼,可以是"document.testForm.submit()"(傳送名爲testForm的表單內容)...,須搭配$conf["jsActivitor"]參數。         
#$conf["trStart"]="true";#爲是否要以<tr>開頭,"true"表示"是"。也可以看作新的一列開始,預設為"false".
#$conf["tdStart"]="true";#爲是否要以<td>開頭,"true"表示"是"。也可以看成列裏面的元素開始,預設為"false".
$conf["formStart"]="true";#爲是否要以<form>開頭,"true"表示"是",也可以看成表單的開始,預設為"false".
$conf["formAction"]="formT.php";#表單遞交的目的地,若$conf["formStart"]為"true",則該參數不能省略.
#$conf["formName"]="";#爲該表單的名稱
#$conf["formMethod"]="";#爲傳輸的方法,若沒設定則預設爲post,其他可用的參數爲get。
#$conf["formTarget"]="_blank";#為顯示的方式,若沒設定則預設爲"_self",其他可用的參數爲 "_blank"、"_parent"、"_top",也可以是iframe的名稱。
#$conf["tableStart"]="true";#爲該表單是否要以<table>開始。"true"爲是,預設為"false".
#$conf["tableClass"]="";#表格要套用的css樣式,若爲"__withoutBorder"的話則套用無框線的預設樣式;若爲"__withBorder"的話,則爲有框線的預設樣式,預設為"__withoutBorder".
#$conf["formEnd"]="true";#爲是否要以<form>結尾,"true"表示"是",也可以看成表單的結束,預設為"false".
#$conf["tdEnd"]="true";#爲是否要以</td>結尾,"true"表示"是"。也可以看成列裏面的元素結束,預設為"false".
#$conf["trEnd"]="true";#爲是否要以</tr>結尾,"true"表示"是"。也可以看作該列結束,預設為"false".
#$conf["tableEnd"]="true";#爲該表單是否要以</table>結尾,"true"爲是,預設為"false".
#$conf["autocomplete"],字串,是否依據使用者過往輸入的記錄來提示可能要的輸入內容,"on"為啟用,"off"為停用.
$conf["autocomplete"]="off";
#$conf["required"],字串,該欄位是否必填,"true"為必填,"false"為可留空,預設為"false".
$conf["required"]="true";
#$conf["comment"],字串,輸入方框上面要放哪些註解文字.
$conf["comment"]="form::inputText - testCase 1";
#$conf["placeholder"],字串,當沒有內容時要顯示的內容.
$conf["placeholder"]="請隨便輸入";
#$conf["br"],字串,"true"代表最後要換行,預設為"false".
$conf["br"]="true";
#$conf["p"],字串,"true"代表最後要空一行,預設為"false".
$conf["p"]="true";
echo form::inputText($conf)["content"];
unset($conf);

#函式說明:
#放置按鈕
#回傳結果:
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
#$result["function"],當前執行的函數.
#$result["error"],錯誤訊息陣列.
#$result["content"],按鈕語法. 
#必要的參數:
$conf["buttonDisplayValue"]="送出";#爲按鈕上顯示的文字。
#可省略的參數:
#$conf["buttonStyleName"]="";#可省略,爲按鈕所要使用的css樣式類別名稱,預設的css樣式爲 __simpleButtonLinkDefaultButtonCssStyle 。
        #其屬性爲   "width","height","font-size","text-align"
        #其屬性值爲 "100%" ,  "50"  ,    "30"   ,   "center"
#$conf["buttonActionScriptFunction"]="";#可省略,爲按下按鈕時所要執行的javaScript函式,預設不設定。
        #"document.forms.formName.submit()"爲傳送名爲testForm的表單內容
        #"window.print()"爲使用瀏覽器內建工具列印當前網頁
#$conf["buttonBorder"]="";#可省略,爲IE9內會自動產生外框,此爲外框的厚度,屬性值爲正整數,預設爲0。
#$conf["disabled"]="true";#可省略,為按鈕的功能是否要取消,若為"true"則代表要取消,若為"false"則代表功能正常,預設為"false".
#$conf["tableStart"]="true";#爲是否要表格開始。"false"代表否,"true"代表是。預設爲"false"。
#$conf["tableClass"]="";#表格要套用的css樣式,若省略的話,則預設爲 __defaultTbaleCsssStyle 其屬性爲 table-layout:fixed word-break:break-all width:100% ,須搭配 $conf["tablStart"] 與 $conf["tableEnd"] 使用。
#$conf["trStart"]="true";#爲是否要以<tr>開頭,"true"表示"是"。也可以看作新的一列開始,預設為"false".
#$conf["trClass"]="__withoutBorder";#<tr>要套用的css樣式,預設為"__withoutBorder",亦即沒有框線的樣式;"__withBorder"則爲有框線的樣式
#$conf["tdStart"]="true";#爲是否要以<td>開頭,"true"表示"是"。也可以看成列裏面的元素開始,預設為"false".
#$conf["tdClass"]="__withoutBorder";#<td>要套用的css樣式,"__withoutBorder"爲沒有框線的樣式;__withBorder爲有框線的樣式
#$conf["tdEnd"]="true";#爲是否要以</td>結尾,"true"表示"是"。也可以看成列裏面的元素結束,預設為"false".
#$conf["trEnd"]="true";#爲是否要以</tr>結尾,"true"表示"是"。也可以看作該列結束,預設為"false".
#$conf["tableEnd"]="true";#爲是否要表格結束。"false"代表否,"true"代表是,預設爲"false"。
#$conf["formStart"]="true";#爲是否要表單開始,如果爲"true"則代表要表單開始,預設為"false".
#$conf["action"]="";#爲表單要傳送到哪個頁面,須搭配$conf["formStart"]與$conf["formEnd"]參數使用
#$conf["target"]="";#為目標表單顯示的方式,若沒設定則預設爲"_self",其他可用的參數爲 "_blank"、"_parent"、"_top",也可以是iframe的名稱。須搭配$conf["formStart"]與$conf["formEnd"]參數使用
$conf["formEnd"]="true";#爲是否要表單結束,如果爲"true"則代表要表單結束,預設為"false".
#參考資料來源:
#http://stackoverflow.com/questions/3014649/how-to-disable-html-button-using-javascript
echo form::button($conf)["content"];
unset($conf);

*/

#提示要測試的函式
echo "<hr>form::inputTextArea - testCase 1<br>";

/*

#涵式說明:
#可以輸入文字的區塊
#回傳結果:
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
#$result["function"],當前執行的函數.
#$result["error"],錯誤訊息陣列.
#$result["content"],按鈕語法.               
#必填的參數:
$conf["name"]="form::inputTextArea - testCase 1";#爲文字輸入框的名稱,供接收端辨識用。
$conf["readOnly"]="false";#爲是否要爲唯讀,如果爲"true",則爲唯讀。反之則爲"false"。
#可省略的參數:
#$conf["cols"]="";#爲文字輸入框的欄位數(寬),預設爲按照瀏覽器設定值。
#$conf["rows"]="";#爲文字輸入框的列數(高),預設爲按照瀏覽器設定值。
$conf["maxInputLength"]="40";#爲文字輸入的長度限制,預設無限制。
$conf["defaultText"]="請任意輸入";#爲文字輸入框裏面的預設文字內容,預設是空的。
#$conf["class"]=;#爲要套用的css樣式。如果沒有指定 ,則採用預設的css樣式,"__inputTextAreaCssStyle",其屬性爲 "width:100%","height:120px","font-size:30px"
#$conf["jsActivitor"]="";#爲觸發js的條件,可以是"onChange"(已改變內容時)...,須搭配$conf["jsSubmitActionTarget"]參數。
#$conf["jsAction"]="";#爲該js是要做什麼,可以是"document.testForm.submit()"(傳送名爲testForm的表單內容)...,須搭配$conf["jsActivitor"]參數。
$conf["formStart"]="true";#爲是否要以<form>開頭,"true"表示"是",也可以看成表單的開始,預設為"false".
$conf["formAction"]="formT.php";#表單遞交的目的地,若$conf["formStart"]為"true",則該參數不能省略.
#$conf["formName"]="";#爲該表單的名稱
#$conf["formMethod"]="";#爲傳輸的方法,若沒設定則預設爲post,其他可用的參數爲get。
#$conf["formTarget"]="";#為顯示的方式,若沒設定則預設爲"_self",其他可用的參數爲 "_blank"、"_parent"、"_top",也可以是iframe的名稱。
#$conf["formEnd"]="true";#爲是否要以<form>結尾,"true"表示"是",也可以看成表單的結束,預設為"false".
#$conf["comment"],字串,輸入方框上面要放哪些註解文字.
$conf["comment"]="可以輸入多行文字的文字方框";
#$conf["required"],字串,該欄位是否必填,"true"為必填,"false"為可留空,預設為"false".
$conf["required"]="true";
#$conf["placeholder"],字串,當沒有內容時要顯示的內容.
$conf["placeholder"]="請任意輸入";
#$conf["trStart"]="true";#爲是否要以<tr>開頭,"true"表示"是",也可以看作新的一列開始,預設為"false".
#$conf["tdStart"]="true";#爲是否要以<td>開頭,"true"表示"是",也可以看成列裏面的元素開始,預設為"false".
#$conf["tdEnd"]="true";#爲是否要以</td>結尾,"true"表示"是",也可以看成列裏面的元素結束,預設為"false".
#$conf["trEnd"]="true";#爲是否要以</tr>結尾,"true"表示"是",也可以看作該列結束,預設為"false".
#參考資料來源:
#input=>http://www.w3schools.com/tags/tag_input.asp
echo form::inputTextArea($conf)["content"];
unset($conf);

#函式說明:
#放置按鈕
#回傳結果:
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
#$result["function"],當前執行的函數.
#$result["error"],錯誤訊息陣列.
#$result["content"],按鈕語法. 
#必要的參數:
$conf["buttonDisplayValue"]="送出";#爲按鈕上顯示的文字。
#可省略的參數:
#$conf["buttonStyleName"]="";#可省略,爲按鈕所要使用的css樣式類別名稱,預設的css樣式爲 __simpleButtonLinkDefaultButtonCssStyle 。
        #其屬性爲   "width","height","font-size","text-align"
        #其屬性值爲 "100%" ,  "50"  ,    "30"   ,   "center"
#$conf["buttonActionScriptFunction"]="";#可省略,爲按下按鈕時所要執行的javaScript函式,預設不設定。
        #"document.forms.formName.submit()"爲傳送名爲testForm的表單內容
        #"window.print()"爲使用瀏覽器內建工具列印當前網頁
#$conf["buttonBorder"]="";#可省略,爲IE9內會自動產生外框,此爲外框的厚度,屬性值爲正整數,預設爲0。
#$conf["disabled"]="true";#可省略,為按鈕的功能是否要取消,若為"true"則代表要取消,若為"false"則代表功能正常,預設為"false".
#$conf["tableStart"]="true";#爲是否要表格開始。"false"代表否,"true"代表是。預設爲"false"。
#$conf["tableClass"]="";#表格要套用的css樣式,若省略的話,則預設爲 __defaultTbaleCsssStyle 其屬性爲 table-layout:fixed word-break:break-all width:100% ,須搭配 $conf["tablStart"] 與 $conf["tableEnd"] 使用。
#$conf["trStart"]="true";#爲是否要以<tr>開頭,"true"表示"是"。也可以看作新的一列開始,預設為"false".
#$conf["trClass"]="__withoutBorder";#<tr>要套用的css樣式,預設為"__withoutBorder",亦即沒有框線的樣式;"__withBorder"則爲有框線的樣式
#$conf["tdStart"]="true";#爲是否要以<td>開頭,"true"表示"是"。也可以看成列裏面的元素開始,預設為"false".
#$conf["tdClass"]="__withoutBorder";#<td>要套用的css樣式,"__withoutBorder"爲沒有框線的樣式;__withBorder爲有框線的樣式
#$conf["tdEnd"]="true";#爲是否要以</td>結尾,"true"表示"是"。也可以看成列裏面的元素結束,預設為"false".
#$conf["trEnd"]="true";#爲是否要以</tr>結尾,"true"表示"是"。也可以看作該列結束,預設為"false".
#$conf["tableEnd"]="true";#爲是否要表格結束。"false"代表否,"true"代表是,預設爲"false"。
#$conf["formStart"]="true";#爲是否要表單開始,如果爲"true"則代表要表單開始,預設為"false".
#$conf["action"]="";#爲表單要傳送到哪個頁面,須搭配$conf["formStart"]與$conf["formEnd"]參數使用
#$conf["target"]="";#為目標表單顯示的方式,若沒設定則預設爲"_self",其他可用的參數爲 "_blank"、"_parent"、"_top",也可以是iframe的名稱。須搭配$conf["formStart"]與$conf["formEnd"]參數使用
$conf["formEnd"]="true";#爲是否要表單結束,如果爲"true"則代表要表單結束,預設為"false".
#參考資料來源:
#http://stackoverflow.com/questions/3014649/how-to-disable-html-button-using-javascript
echo form::button($conf)["content"];
unset($conf);

*/

#提示要測試的函式
echo "<hr>form::inputPassword - testCase 1<br>";

/*

#涵式說明:                
#可以輸入密碼的表單
#回傳的結果:
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
#$result["function"],當前執行的函數.
#$result["error"],錯誤訊息陣列.
#$result["content"],按鈕語法. 
#必填的參數:
$conf["name"]="form::inputPassword - testCase 1";#爲密碼輸入框的名稱,供接收端進行處理時的獨立名稱。
#可省略的參數:
#$conf["width"]="";#爲密碼輸入框的長度,預設無限制。
$conf["maxInputLength"]="8";#爲密碼輸入的長度限制,預設無限制。
$conf["defaultValue"]="xxxxxxxx";#預設的密碼
#$conf["class"]="";#爲要套用的css樣式,若省略,則會套用預設的 __inputPasswordCssStyle 樣式,其屬性爲 "width:100%","font-size:30px"
#$conf["jsActivitor"]="";#爲觸發js的條件,可以是"onChange"(已改變內容時)...,須搭配$conf["jsSubmitActionTarget"]參數。
#$conf["jsAction"]="";#爲該js是要做什麼,可以是"document.testForm.submit()"(傳送名爲testForm的表單內容)...,須搭配$conf["jsActivitor"]參數。
#$conf["comment"],字串,輸入方框上面要放哪些註解文字.
$conf["comment"]="請輸入密碼";
#$conf["placeholder"],字串,當沒有內容時要顯示的內容.
$conf["placeholder"]="密碼不得為空";
#$conf["trStart"]="true";#爲是否要以<tr>開頭,"true"表示"是",也可以看作新的一列開始,預設為"false".
#$conf["tdStart"]="true";#爲是否要以<td>開頭,"true"表示"是",也可以看成列裏面的元素開始,預設為"false".
#$conf["tdEnd"]="true";#爲是否要以</td>結尾,"true"表示"是",也可以看成列裏面的元素結束,預設為"false".
#$conf["trEnd"]="true";#爲是否要以</tr>結尾,"true"表示"是",也可以看作該列結束,預設為"false".
echo form::inputPassword($conf)["content"];
unset($conf);

*/

#提示要測試的函式
echo "<hr>form::inputRadio - testCase 1<br>";

/*

#涵式說明:
#黑點式選單(單選)
#回傳的結果:
#$result["status"],執行是否正常,"true"代表正常,"false"代表失敗.
#$result["error"],錯誤訊息陣列.
#$result["content"],語法內容.
#$result["function"],設置當前執行的涵式
#必填參數:
$conf["name"]="form::inputRadio - testCase 1";#爲黑點式選單的名稱
$conf["sendValue"]=array("1","2","3");#爲陣列值,爲每個選項的實際傳送的數值,e.g. $sendValue = array("a","b","c","d","e");
#可省略的參數:
#$conf["class"]="__withoutBorder";#爲要套用的class樣式,"__withoutBorder"爲沒有框線的樣式;__withBorder爲有框線的樣式
#$conf["outputValue"]=array();#爲陣列值,爲每個選項的實際顯示的數值, e.g. $outputValue = array("p","o","i","t","e"); 預設爲跟$conf["sendValue"]一樣。
$conf["defaultValue"]="2";#爲預設的選項,爲實際傳送的數值之一。
#$conf["comment"],字串,下拉式表單的註解文字.
$conf["comment"]="請選擇一個數字";
#$conf["disableHr"]="true";#如果設爲"true",則結尾不用<hr>來結束單選的範圍,預設為"false".
#$conf["jsActivitor"]="";#爲觸發js的條件,可以是"onChange"(已改變內容時)...,須搭配$conf["jsSubmitActionTarget"]參數。
#$conf["jsAction"]="";#爲該js是要做什麼,可以是"document.testForm.submit()"(傳送名爲testForm的表單內容)...,須搭配$conf["jsActivitor"]參數。
#$conf["trStart"]="true";#爲是否要以<tr>開頭,"true"表示"是",也可以看作新的一列開始,預設為"false".
#$conf["trClass"]="__withoutBorder";#<tr>要套用的css樣式,預設為"__withoutBorder",其爲沒有框線的樣式;__withBorder爲有框線的樣式
#$conf["tdStart"]="true";#爲是否要以<td>開頭,"true"表示"是",也可以看成列裏面的元素開始,預設為"false".
#$conf["tdClass"]="__withoutBorder";#<td>要套用的css樣式,預設為"__withoutBorder",其爲沒有框線的樣式;__withBorder爲有框線的樣式
#$conf["tdEnd"]="true";#爲是否要以</td>結尾,"true"表示"是",也可以看成列裏面的元素結束,預設為"false".
#$conf["trEnd"]="true";#爲是否要以</tr>結尾,"true"表示"是",也可以看作該列結束,預設為"false".
#$conf["brBetweenOption"]="true";#是否每個選項用<br>標籤隔開,預設為"true".
echo form::inputRadio($conf)["content"];
unset($conf);

#涵式說明:
#黑點式選單(單選)
#回傳的結果:
#$result["status"],執行是否正常,"true"代表正常,"false"代表失敗.
#$result["error"],錯誤訊息陣列.
#$result["content"],語法內容.
#$result["function"],設置當前執行的涵式
#必填參數:
$conf["name"]="form::inputRadio - testCase 2";#爲黑點式選單的名稱
$conf["sendValue"]=array("A","B","C");#爲陣列值,爲每個選項的實際傳送的數值,e.g. $sendValue = array("a","b","c","d","e");
#可省略的參數:
#$conf["class"]="__withoutBorder";#爲要套用的class樣式,"__withoutBorder"爲沒有框線的樣式;__withBorder爲有框線的樣式
#$conf["outputValue"]=array();#爲陣列值,爲每個選項的實際顯示的數值, e.g. $outputValue = array("p","o","i","t","e"); 預設爲跟$conf["sendValue"]一樣。
$conf["defaultValue"]="C";#爲預設的選項,爲實際傳送的數值之一。
#$conf["comment"],字串,下拉式表單的註解文字.
$conf["comment"]="請選擇一個字母";
#$conf["disableHr"]="true";#如果設爲"true",則結尾不用<hr>來結束單選的範圍,預設為"false".
#$conf["jsActivitor"]="";#爲觸發js的條件,可以是"onChange"(已改變內容時)...,須搭配$conf["jsSubmitActionTarget"]參數。
#$conf["jsAction"]="";#爲該js是要做什麼,可以是"document.testForm.submit()"(傳送名爲testForm的表單內容)...,須搭配$conf["jsActivitor"]參數。
#$conf["trStart"]="true";#爲是否要以<tr>開頭,"true"表示"是",也可以看作新的一列開始,預設為"false".
#$conf["trClass"]="__withoutBorder";#<tr>要套用的css樣式,預設為"__withoutBorder",其爲沒有框線的樣式;__withBorder爲有框線的樣式
#$conf["tdStart"]="true";#爲是否要以<td>開頭,"true"表示"是",也可以看成列裏面的元素開始,預設為"false".
#$conf["tdClass"]="__withoutBorder";#<td>要套用的css樣式,預設為"__withoutBorder",其爲沒有框線的樣式;__withBorder爲有框線的樣式
#$conf["tdEnd"]="true";#爲是否要以</td>結尾,"true"表示"是",也可以看成列裏面的元素結束,預設為"false".
#$conf["trEnd"]="true";#爲是否要以</tr>結尾,"true"表示"是",也可以看作該列結束,預設為"false".
#$conf["brBetweenOption"]="true";#是否每個選項用<br>標籤隔開,預設為"true".
echo form::inputRadio($conf)["content"];
unset($conf);

*/

#提示要測試的函式
echo "<hr>form::inputCheckBox - testCase 1<br>";

/*

#勾選式選單(複選)
#回傳結果:
#$result["status"],執行是否正常,"true"代表正常,"false"代表失敗.
#$result["error"],錯誤訊息陣列.
#$result["content"],語法內容.
#$result["function"],當前執行的函式.
#必填的參數:     
$conf["name"]=array("q-1","q-2","q-3","q-4","q-5");#爲勾選式選單傳送時的各選項的名稱。
        #例如:$conf["name"]=array("q-1","q-2","q-3","q-4","q-5");
$conf["sendValue"]=array("a","b","c","d","e");#爲陣列值,為勾選式選單實際傳送的內容.
        #例如:$conf["sendValue"]=array("a","b","c","d","e");
#可省略的參數:
#$conf["class"]=;#爲要套用的class樣式
#$conf["outputValue"]=array();#爲陣列值,爲每個選項的實際顯示的數值, e.g. $conf["outputValue"] = array("p","o","i","t","e"); 預設爲跟$conf["sendValue"]一樣。
#$conf["checkedOption"]=array();#爲那些選項是否要勾選,須爲陣列值。例如array("1","3","4"),就代表第1、3、4個選項是勾選的狀態。
$conf["comment"]="請選擇(可複選)";#為選單的註解
#$conf["jsActivitor"]="";#爲觸發js的條件,可以是"onChange"(已改變內容時)...,須搭配$conf["jsSubmitActionTarget"]參數。
#$conf["jsAction"]="";#爲該js是要做什麼,可以是"document.testForm.submit()"(傳送名爲testForm的表單內容)...,須搭配$conf["jsActivitor"]參數。 
#$conf["formName"]="";#爲表單的名稱
#$conf["formAction"]="";#爲表單要送到哪個php檔案。
#$conf["actionTarget"]="";#爲表單處理好後的呈現方式,有_top,_self,_blank,_parent,元素名稱也可以.
#$conf["hiddenVar"],字串陣列,隱藏的變數名稱陣列.
#$conf["hiddenVar"]=array("");
#$conf["hiddanVarValue"],字串陣列,隱藏變數的數值內容.
#$conf["hiddenVarValue"]=array("");
#$conf["formEnd"]="false";#爲是否要表單結束,預設爲"false"。
#$conf["trStart"]="true";#爲是否要以<tr>開頭,"true"表示"是"。也可以看作新的一列開始。
#$conf["tdStart"]="true";#爲是否要以<td>開頭,"true"表示"是"。也可以看成列裏面的元素開始
#$conf["tdEnd"]="true";#爲是否要以</td>結尾,"true"表示"是"。也可以看成列裏面的元素結束
#$conf["trEnd"]="true";#爲是否要以</tr>結尾,"true"表示"是"。也可以看作該列結束.
#$conf["brBetweenOption"]="true";#是否每個選項用<br>標籤隔開.
#備註:
#每個選項傳送的內容,修改成預設爲"true".
echo form::inputCheckBox($conf)["content"];
unset($conf);

*/      

#提示要測試的函式
echo "<hr>form::inputMultiHidden - testCase 1<br>";

/*

#傳送多個隱藏表單的資訊
#回傳的數值:
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
#$result["error"],錯誤訊息陣列
#$result["function"],當前執行的函數
#$result["content"],語法
#$result["sendedArrayName"],傳送的隱藏變數陣列
#$result["sendedArrayValue"],傳送的隱藏變數陣列數值
#$result["sendedArrayCount"],傳送的隱藏變數計數
#必填的參數:
$conf["nameArray"]=array("n1","n2","n3");#欲傳送的隱藏陣列變數名稱
$conf["valueArray"]=array("v1","v2","v3");#欲傳送的隱藏陣列變數數值
echo form::inputMultiHidden($conf)["content"];
unset($conf);
        
*/

#提示要測試的函式
echo "<hr>form::inputFile - testCase 1<br>";

/*

#涵式說明:
#上傳檔案的表單
#回傳的結果:
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
#$result["function"],當前執行的函數.
#$result["error"],錯誤訊息陣列.
#$result["content"],上傳檔案的語法.
#必填寫的參數:
#$conf["formFileName"],字串,該檔案上傳時的表單名稱。
$conf["formFileName"]="form::inputFile - testCase 1";
#可省略的參數:
#$conf["acceptType"],字串,限定檔案的類型為"video/*","audio/*","img/*",預設不限定.
#$conf["acceptType"]="video/*";
#$conf["class"],字串,該上傳表單所要套用的css樣式,若省略則採用預設的css樣式"__inputFileCssStyle",其屬性爲 width:100% font-size:30px
#$conf["class"]="";
#$conf["id"],字串,爲該上傳表單的id,預設跟$conf["formFileName"]一樣.
#$conf["id"]="";
#$conf["required"],字串,該欄位是否必填,"true"為必填,"false"為可留空,預設為"false".
$conf["required"]="true";
#$conf["comment"],字串,輔助說明的文字,會出現在檔案上傳的上一行.
$conf["comment"]="請上傳檔案";
#$conf["formStart"],字串,爲是否要以<form>開頭,"true"表示"是",也可以看成表單的開始,預設為"false".
$conf["formStart"]="true";
#$conf["formAction"],字串,表單遞交的目的地,若$conf["formStart"]為"true",則該參數不能省略,預設為"false".
$conf["formAction"]="formT.php";
#$conf["formName"],字串,爲該表單的名稱
#$conf["formName"]="";
#$conf["formMethod"],字串,爲傳輸的方法,若沒設定則預設爲post,其他可用的參數爲get。
#$conf["formMethod"]="";
#$conf["formTarget"],字串,為顯示的方式,若沒設定則預設爲"_self",其他可用的參數爲 "_blank"、"_parent"、"_top",也可以是iframe的名稱。
#$conf["formTarget"]="";
#$conf["formEnd"],字串,爲是否要以<form>結尾,"true"表示"是",也可以看成表單的結束,預設為"false".
#$conf["formEnd"]="true";
#參考資料:
#http://www.w3schools.com/tags/tag_input.asp
echo form::inputFile($conf)["content"];
unset($conf);

#涵式說明:
#上傳檔案的表單
#回傳的結果:
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
#$result["function"],當前執行的函數.
#$result["error"],錯誤訊息陣列.
#$result["content"],上傳檔案的語法.
#必填寫的參數:
#$conf["formFileName"],字串,該檔案上傳時的表單名稱。
#$conf["formFileName"]="videoFile";
#可省略的參數:
#$conf["acceptType"],字串,限定檔案的類型為"video/*","audio/*","img/*",預設不限定.
$conf["acceptType"]="video/*";
#$conf["class"],字串,該上傳表單所要套用的css樣式,若省略則採用預設的css樣式"__inputFileCssStyle",其屬性爲 width:100% font-size:30px
#$conf["class"]="";
#$conf["id"],字串,爲該上傳表單的id,預設跟$conf["formFileName"]一樣.
#$conf["id"]="";
#$conf["required"],字串,該欄位是否必填,"true"為必填,"false"為可留空,預設為"false".
$conf["required"]="true";
#$conf["comment"],字串,輔助說明的文字,會出現在檔案上傳的上一行.
$conf["comment"]="請上傳影片檔案";
#$conf["formStart"],字串,爲是否要以<form>開頭,"true"表示"是",也可以看成表單的開始,預設為"false".
#$conf["formStart"]="true";
#$conf["formAction"],字串,表單遞交的目的地,若$conf["formStart"]為"true",則該參數不能省略,預設為"false".
#$conf["formAction"]="formT.php";
#$conf["formName"],字串,爲該表單的名稱
#$conf["formName"]="";
#$conf["formMethod"],字串,爲傳輸的方法,若沒設定則預設爲post,其他可用的參數爲get。
#$conf["formMethod"]="";
#$conf["formTarget"],字串,為顯示的方式,若沒設定則預設爲"_self",其他可用的參數爲 "_blank"、"_parent"、"_top",也可以是iframe的名稱。
#$conf["formTarget"]="";
#$conf["formEnd"],字串,爲是否要以<form>結尾,"true"表示"是",也可以看成表單的結束,預設為"false".
#$conf["formEnd"]="true";
#參考資料:
#http://www.w3schools.com/tags/tag_input.asp
echo form::inputFile($conf)["content"];
unset($conf);

#涵式說明:
#上傳檔案的表單
#回傳的結果:
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
#$result["function"],當前執行的函數.
#$result["error"],錯誤訊息陣列.
#$result["content"],上傳檔案的語法.
#必填寫的參數:
#$conf["formFileName"],字串,該檔案上傳時的表單名稱。
$conf["formFileName"]="audioFile";
#可省略的參數:
#$conf["acceptType"],字串,限定檔案的類型為"video/*","audio/*","img/*",預設不限定.
$conf["acceptType"]="audio/*";
#$conf["class"],字串,該上傳表單所要套用的css樣式,若省略則採用預設的css樣式"__inputFileCssStyle",其屬性爲 width:100% font-size:30px
#$conf["class"]="";
#$conf["id"],字串,爲該上傳表單的id,預設跟$conf["formFileName"]一樣.
#$conf["id"]="";
#$conf["required"],字串,該欄位是否必填,"true"為必填,"false"為可留空,預設為"false".
$conf["required"]="true";
#$conf["comment"],字串,輔助說明的文字,會出現在檔案上傳的上一行.
$conf["comment"]="請上傳語音檔案";
#$conf["formStart"],字串,爲是否要以<form>開頭,"true"表示"是",也可以看成表單的開始,預設為"false".
#$conf["formStart"]="true";
#$conf["formAction"],字串,表單遞交的目的地,若$conf["formStart"]為"true",則該參數不能省略,預設為"false".
#$conf["formAction"]="formT.php";
#$conf["formName"],字串,爲該表單的名稱
#$conf["formName"]="";
#$conf["formMethod"],字串,爲傳輸的方法,若沒設定則預設爲post,其他可用的參數爲get。
#$conf["formMethod"]="";
#$conf["formTarget"],字串,為顯示的方式,若沒設定則預設爲"_self",其他可用的參數爲 "_blank"、"_parent"、"_top",也可以是iframe的名稱。
#$conf["formTarget"]="";
#$conf["formEnd"],字串,爲是否要以<form>結尾,"true"表示"是",也可以看成表單的結束,預設為"false".
#$conf["formEnd"]="true";
#參考資料:
#http://www.w3schools.com/tags/tag_input.asp
echo form::inputFile($conf)["content"];
unset($conf);

#涵式說明:
#上傳檔案的表單
#回傳的結果:
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
#$result["function"],當前執行的函數.
#$result["error"],錯誤訊息陣列.
#$result["content"],上傳檔案的語法.
#必填寫的參數:
#$conf["formFileName"],字串,該檔案上傳時的表單名稱。
$conf["formFileName"]="imgFile";
#可省略的參數:
#$conf["acceptType"],字串,限定檔案的類型為"video/*","audio/*","image/*",預設不限定.
$conf["acceptType"]="image/*";
#$conf["class"],字串,該上傳表單所要套用的css樣式,若省略則採用預設的css樣式"__inputFileCssStyle",其屬性爲 width:100% font-size:30px
#$conf["class"]="";
#$conf["id"],字串,爲該上傳表單的id,預設跟$conf["formFileName"]一樣.
#$conf["id"]="";
#$conf["required"],字串,該欄位是否必填,"true"為必填,"false"為可留空,預設為"false".
$conf["required"]="true";
#$conf["comment"],字串,輔助說明的文字,會出現在檔案上傳的上一行.
$conf["comment"]="請上傳圖片檔案";
#$conf["formStart"],字串,爲是否要以<form>開頭,"true"表示"是",也可以看成表單的開始,預設為"false".
#$conf["formStart"]="true";
#$conf["formAction"],字串,表單遞交的目的地,若$conf["formStart"]為"true",則該參數不能省略,預設為"false".
#$conf["formAction"]="formT.php";
#$conf["formName"],字串,爲該表單的名稱
#$conf["formName"]="";
#$conf["formMethod"],字串,爲傳輸的方法,若沒設定則預設爲post,其他可用的參數爲get。
#$conf["formMethod"]="";
#$conf["formTarget"],字串,為顯示的方式,若沒設定則預設爲"_self",其他可用的參數爲 "_blank"、"_parent"、"_top",也可以是iframe的名稱。
#$conf["formTarget"]="";
#$conf["formEnd"],字串,爲是否要以<form>結尾,"true"表示"是",也可以看成表單的結束,預設為"false".
#$conf["formEnd"]="true";
#參考資料:
#http://www.w3schools.com/tags/tag_input.asp
echo form::inputFile($conf)["content"];
unset($conf);

#函式說明:
#放置按鈕
#回傳結果:
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
#$result["function"],當前執行的函數.
#$result["error"],錯誤訊息陣列.
#$result["content"],按鈕語法. 
#必要的參數:
$conf["buttonDisplayValue"]="上傳";#爲按鈕上顯示的文字。
#可省略的參數:
#$conf["buttonStyleName"]="";#可省略,爲按鈕所要使用的css樣式類別名稱,預設的css樣式爲 __simpleButtonLinkDefaultButtonCssStyle 。
        #其屬性爲   "width","height","font-size","text-align"
        #其屬性值爲 "100%" ,  "50"  ,    "30"   ,   "center"
#$conf["buttonActionScriptFunction"]="";#可省略,爲按下按鈕時所要執行的javaScript函式,預設不設定。
        #"document.forms.formName.submit()"爲傳送名爲testForm的表單內容
        #"window.print()"爲使用瀏覽器內建工具列印當前網頁
#$conf["buttonBorder"]="";#可省略,爲IE9內會自動產生外框,此爲外框的厚度,屬性值爲正整數,預設爲0。
#$conf["disabled"]="true";#可省略,為按鈕的功能是否要取消,若為"true"則代表要取消,若為"false"則代表功能正常,預設為"false".
#$conf["tableStart"]="true";#爲是否要表格開始。"false"代表否,"true"代表是。預設爲"false"。
#$conf["tableClass"]="";#表格要套用的css樣式,若省略的話,則預設爲 __defaultTbaleCsssStyle 其屬性爲 table-layout:fixed word-break:break-all width:100% ,須搭配 $conf["tablStart"] 與 $conf["tableEnd"] 使用。
#$conf["trStart"]="true";#爲是否要以<tr>開頭,"true"表示"是"。也可以看作新的一列開始,預設為"false".
#$conf["trClass"]="__withoutBorder";#<tr>要套用的css樣式,預設為"__withoutBorder",亦即沒有框線的樣式;"__withBorder"則爲有框線的樣式
#$conf["tdStart"]="true";#爲是否要以<td>開頭,"true"表示"是"。也可以看成列裏面的元素開始,預設為"false".
#$conf["tdClass"]="__withoutBorder";#<td>要套用的css樣式,"__withoutBorder"爲沒有框線的樣式;__withBorder爲有框線的樣式
#$conf["tdEnd"]="true";#爲是否要以</td>結尾,"true"表示"是"。也可以看成列裏面的元素結束,預設為"false".
#$conf["trEnd"]="true";#爲是否要以</tr>結尾,"true"表示"是"。也可以看作該列結束,預設為"false".
#$conf["tableEnd"]="true";#爲是否要表格結束。"false"代表否,"true"代表是,預設爲"false"。
#$conf["formStart"]="true";#爲是否要表單開始,如果爲"true"則代表要表單開始,預設為"false".
#$conf["action"]="";#爲表單要傳送到哪個頁面,須搭配$conf["formStart"]與$conf["formEnd"]參數使用
#$conf["target"]="";#為目標表單顯示的方式,若沒設定則預設爲"_self",其他可用的參數爲 "_blank"、"_parent"、"_top",也可以是iframe的名稱。須搭配$conf["formStart"]與$conf["formEnd"]參數使用
$conf["formEnd"]="true";#爲是否要表單結束,如果爲"true"則代表要表單結束,預設為"false".
#參考資料來源:
#http://stackoverflow.com/questions/3014649/how-to-disable-html-button-using-javascript
echo form::button($conf)["content"];
unset($conf);

*/

#提示要測試的函式
echo "<hr>form::uploadOneFile - testCase 1<br>";

/*

#涵式說明:
#可以瀏覽要上傳的檔案
#回傳的結果:
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
#$result["function"],當前執行的函數.
#$result["error"],錯誤訊息陣列.
#$result["content"],上傳檔案的語法.
#必填的參數:
#$conf["formFileName"],字串,該上傳檔案的表單名稱.   
$conf["formFileName"]="form::uploadOneFile - testCase 1";
#可省略的參數:
#$conf["maxFileSize"],字串,檔案的最大限制,單位是位元組(byte)。1kb = 1024 byte ; 1mb = 1024 kb 約等與 1024000 byte,預設是10240000(10MB)
$conf["maxFileSize"]="102400000";
#$conf["browseButtonClass"],字串,瀏覽檔案的按鈕樣式,"__withoutBorder"爲沒有框線的樣式;"__withBorder",有框線的樣式
#$conf["browseButtonClass"]="__withoutBorder";
#$conf["acceptType"],字串,限定檔案的類型為"video/*","audio/*","image/*",預設不限定.
$conf["acceptType"]="image/*";
#$conf["required"],字串,該欄位是否必填,"true"為必填,"false"為可留空,預設為"false".
$conf["required"]="true";
#$conf["trStart"],字串,爲是否要以<tr>開頭,"true"表示"是",也可以看作新的一列開始,預設為"false".
#$conf["trStart"]="true";
#$conf["trClass"],字串,列的樣式,"__withoutBorder"爲沒有框線的樣式;"__withBorder",有框線的樣式,預設為"__withoutBorder".
#$conf["trClass"]="__withoutBorder";
#$conf["tdStart"],字串,爲是否要以<td>開頭,"true"表示"是",也可以看成列裏面的元素開始,預設為"false".
#$conf["tdStart"]="false";
#$conf["tdClass"],字串,行的樣式,"__withoutBorder"爲沒有框線的樣式;"__withBorder",有框線的樣式,預設為"__withoutBorder".
#$conf["tdClass"]="__withoutBorder";
#$conf["tdEnd"],字串,爲是否要以</td>結尾,"true"表示"是",也可以看成列裏面的元素結束,預設為"false".
#$conf["tdEnd"]="true";
#$conf["trEnd"],字串,爲是否要以</tr>結尾,"true"表示"是",也可以看作該列結束,預設為"false".
#$conf["trEnd"]="true";
#$conf["formStart"],字串,是否為表單的開始,"true"為是,預設為"false".
$conf["formStart"]="true";
#$conf["formName"],字串,表單的名稱
#$conf["formName"]="";
#$conf["formAction"],字串,表單的目標,若有設置$conf["formStart"]為"true",則預設為php檔案自己
$conf["formAction"]="formT.php";
#$conf["formTarget"],字串,表單要呈現回應的位置,預設為"_self".
#$conf["formTarget"]="_self";
#$conf["formEnd"],字串,是否為表單的結束,"true"為是,預設為"false".
#$conf["formEnd"]="false";
#$conf["comment"],字串,該上傳檔案的註解,預設不顯示.
$conf["comment"]="請上傳一個圖片檔";
echo form::uploadOneFile($conf)["content"];
unset($conf);

#函式說明:
#放置按鈕
#回傳結果:
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
#$result["function"],當前執行的函數.
#$result["error"],錯誤訊息陣列.
#$result["content"],按鈕語法. 
#必要的參數:
$conf["buttonDisplayValue"]="上傳";#爲按鈕上顯示的文字。
#可省略的參數:
#$conf["buttonStyleName"]="";#可省略,爲按鈕所要使用的css樣式類別名稱,預設的css樣式爲 __simpleButtonLinkDefaultButtonCssStyle 。
        #其屬性爲   "width","height","font-size","text-align"
        #其屬性值爲 "100%" ,  "50"  ,    "30"   ,   "center"
#$conf["buttonActionScriptFunction"]="";#可省略,爲按下按鈕時所要執行的javaScript函式,預設不設定。
        #"document.forms.formName.submit()"爲傳送名爲testForm的表單內容
        #"window.print()"爲使用瀏覽器內建工具列印當前網頁
#$conf["buttonBorder"]="";#可省略,爲IE9內會自動產生外框,此爲外框的厚度,屬性值爲正整數,預設爲0。
#$conf["disabled"]="true";#可省略,為按鈕的功能是否要取消,若為"true"則代表要取消,若為"false"則代表功能正常,預設為"false".
#$conf["tableStart"]="true";#爲是否要表格開始。"false"代表否,"true"代表是。預設爲"false"。
#$conf["tableClass"]="";#表格要套用的css樣式,若省略的話,則預設爲 __defaultTbaleCsssStyle 其屬性爲 table-layout:fixed word-break:break-all width:100% ,須搭配 $conf["tablStart"] 與 $conf["tableEnd"] 使用。
#$conf["trStart"]="true";#爲是否要以<tr>開頭,"true"表示"是"。也可以看作新的一列開始,預設為"false".
#$conf["trClass"]="__withoutBorder";#<tr>要套用的css樣式,預設為"__withoutBorder",亦即沒有框線的樣式;"__withBorder"則爲有框線的樣式
#$conf["tdStart"]="true";#爲是否要以<td>開頭,"true"表示"是"。也可以看成列裏面的元素開始,預設為"false".
#$conf["tdClass"]="__withoutBorder";#<td>要套用的css樣式,"__withoutBorder"爲沒有框線的樣式;__withBorder爲有框線的樣式
#$conf["tdEnd"]="true";#爲是否要以</td>結尾,"true"表示"是"。也可以看成列裏面的元素結束,預設為"false".
#$conf["trEnd"]="true";#爲是否要以</tr>結尾,"true"表示"是"。也可以看作該列結束,預設為"false".
#$conf["tableEnd"]="true";#爲是否要表格結束。"false"代表否,"true"代表是,預設爲"false"。
#$conf["formStart"]="true";#爲是否要表單開始,如果爲"true"則代表要表單開始,預設為"false".
#$conf["action"]="";#爲表單要傳送到哪個頁面,須搭配$conf["formStart"]與$conf["formEnd"]參數使用
#$conf["target"]="";#為目標表單顯示的方式,若沒設定則預設爲"_self",其他可用的參數爲 "_blank"、"_parent"、"_top",也可以是iframe的名稱。須搭配$conf["formStart"]與$conf["formEnd"]參數使用
$conf["formEnd"]="true";#爲是否要表單結束,如果爲"true"則代表要表單結束,預設為"false".
#參考資料來源:
#http://stackoverflow.com/questions/3014649/how-to-disable-html-button-using-javascript
echo form::button($conf)["content"];
unset($conf);

*/

#提示要測試的函式
echo "<hr>form::processUploadedFile - testCase 1<br>";

/*

#涵式說明:
#上傳一個檔案,包含送出鈕與回上頁的按鈕
#回傳的結果:
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
#$result["function"],當前執行的函數.
#$result["error"],錯誤訊息陣列.
#$result["content"],語法.
#必填的參數:
#$conf["formFileName"],字串,該上傳檔案的表單名稱.
$conf["formFileName"]="form::processUploadedFile - testCase 1";
#$conf["actionPage"],字串,處理表單資訊的頁面.
$conf["actionPage"]="formT.php";
#可省略的參數:
#$conf["backButtonName"],字串,退回上一頁的按鈕要顯示的名稱,預設爲"回上頁"
#$conf["backButtonName"]="回上頁";
#$conf["backPage"],字串,返回的按鈕點了之後要到哪個頁面,預設是不使用.
#$conf["backPage"]="";
#$conf["backTarget"],字串,返回按鈕的顯示區塊.
#$conf["backTarget"]="";
#$conf["backButtonClass"],字串,回上頁按鈕的css樣式,預設為"__simpleButtonLinkDefaultButtonCssStyle".
#$conf["backButtonClass"]="__simpleButtonLinkDefaultButtonCssStyle";
#$conf["comment"],字串,該上傳檔案的註解,預設不顯示.
#$conf["comment"]="";
#$conf["formName"],字串,表單的名稱
#$conf["formName"]="";
#$conf["formTarget"],字串,表單要呈現回應的位置,預設為"_self".
#$conf["formTarget"]="_self";
#$conf["acceptType"],字串,限定檔案的類型為"video/*","audio/*","image/*",預設不限定.
#$conf["acceptType"]="";
#$conf["required"],字串,該欄位是否必填,"true"為必填,"false"為可留空,預設為"false".
#$conf["required"]="true";
#$conf["maxFileSize"],字串,檔案的最大限制,單位是位元組(byte),1kb = 1024 byte ; 1mb = 1024 kb 約等與 1024000 byte,預設爲"102400000"(100MB)
#$conf["maxFileSize"]="102400000";
#$conf["browseButtonClass"],字串,瀏覽要上傳檔案的css樣式,預設為"__inputFileCssStyle".
#$conf["browseButtonClass"]="__inputFileCssStyle";
#$conf["submitButtonClass"],字串,上傳按鈕的css樣式,預設為"__simpleButtonLinkDefaultButtonCssStyle".
#$conf["submitButtonClass"]="__simpleButtonLinkDefaultButtonCssStyle";
#$conf["submitButtonName"],字串,送出鈕要顯示的名稱,預設爲"上傳"
#$conf["submitButtonName"]="上傳";
echo form::uploadOneFileCom($conf)["content"];
unset($conf);

#涵式說明:
#處理上傳到暫存目錄的檔案,可以移動到指定的位置,並指定檔案的名稱。並且可以指定刪除舊有的檔案,然後將新檔案的相對位置寫入到資料庫裏面。
#回傳的變數:
#$result["status"],整體上傳有無成功。"true"代表完整成功 "false"代表有過程有錯誤
#$result["error"],錯誤訊息陣列,$result["error"][0] 為"沒有接收到上傳的檔案",則代表沒有上傳檔案.
#$result["warning"],警告訊息陣列
#$result["ServerFileName"],檔案名稱
#$result["ServerFileType"],檔案類型
#$result["ServerFileSize"],檔案大小
#$result["fileRelativePosition"],檔案的相對位置,包含檔案名稱與附檔名。
#必填的參數:
#$conf["formFileName"],字串,為上傳檔案時表單傳送時的名稱
$conf["formFileName"]="form::processUploadedFile - testCase 1";
#可省略的參數:
#$conf["uploadDirUserDefine"],字串,為存放上傳檔案的目錄,如果沒設定則會自行建立依照系統時間的年月日十分秒來替資料夾命名,並將上傳的檔案存在裏面。
$conf["uploadDirUserDefine"]="formT";
#$conf["ServerFilenameUserDefine"],字串,為存放在伺服器上的檔案名稱,如果沒設定則依照台灣時間的年月日時分秒命名
#$conf["ServerFilenameUserDefine"]="";
#$conf["NoFileExtension"],字串,若為 "true" 則表 指定了檔案名稱後,不用再加上檔案型的副檔名,預設為"false".
#$conf["NoFileExtension"]="true";
#$conf["limitPage"],字串陣列,限制只能從哪些網頁檔案過來。
#$conf["limitPage"]=array("");
#$conf["taskName"],字串,爲該上傳作業的名稱,若沒設定,則預設爲"上傳作業"。
#$conf["taskName"]="";
#$conf["eraseOldFile"],字串,如果為"true"的話會移除同名的舊檔案,其值爲檔案的相對位置,預設為"false",不移除同名的檔案,並透過編號保留新的檔案.
#$conf["eraseOldFile"]="";
#$conf["dbProcess"],字串,如果爲"true",則會進行資料表資料更新的動作,亦即要設定 $conf["updatingMysqlServerAddress"] $conf["updatingMysqlAccount"] $conf["updatingDataBaseName"] $conf["updatingDataTableName"] $conf["updatingConditionDataTableColumnName"] $conf["updatingConditionDataTableColumnValue"] $conf["updatingTargetDataTableColumnName"] $conf["updatingTargetDataTableColumnValue"] 的內容,預設為"false".
#$conf["dbProcess"]="true";     
#$conf["updatingMysqlServerAddress"],字串,資料庫位於網路上的哪個位置.
#$conf["updatingMysqlServerAddress"]=$dbAddress;
#$conf["updatingMysqlAccount"],字串,連線時要使用的帳號,省略時代表不用密碼進行連線.
#$conf["updatingMysqlAccount"]=$dbAccount;
#$conf["updatingMysqlPassword"],字串,連線時要使用的密碼.
#$conf["updatingMysqlPassword"]=$dbPassword;
#$conf["updatingDataBaseName"],字串,要更新的目標資料所屬資料庫名稱.
#$conf["updatingDataBaseName"]=$dbName;
#$conf["updatingDataTableName"],字串,要更新的目標資料位於哪個資料表
#$conf["updatingDataTableName"]="";
#$conf["updatingConditionDataTableColumnName"],字串陣列,要用哪些欄位來識別要更新哪一筆資料,預設為array("id").
#$conf["updatingConditionDataTableColumnName"]=array("id");
#$conf["updatingConditionDataTableColumnValue"],字串陣列,該條件欄位內容的數值要爲多少,才是我們要修改的那筆資料。
#$conf["updatingConditionDataTableColumnValue"]=array("");
#$conf["updatingTargetDataTableColumnName"],字串陣列,要更新的資料欄位有?
#$conf["updatingTargetDataTableColumnName"]=array("");  
#$conf["updatingTargetDataTableColumnValue"],字串陣列,目標資料欄位要改成什麼樣的數值,如果其元素含有"filePosition",則會替換成新檔案的相對位置
#$conf["updatingTargetDataTableColumnValue"]=array("");
#參考資料:
#file_exist()的用法
#http:#php.net/manual/en/function.file-exists.php
#bug:
#目前發現上傳的檔案如果有中文字將會上傳失敗,但中文字如果是包在()裏面則不會出錯。
var_dump($processUploadedFile=form::processUploadedFile($conf));
unset($conf);

#移除上傳後的資料
#涵式說明:
#移除檔案
#回傳的結果:
#$result["status"],"true"代表移除成功,"false"代表移除失敗.
#$result["error"],錯誤訊息陣列
#$result["warning"],警告訊息陣列
#$result["function"],當前執行的函數名稱
#必填的參數:
$conf["form::delFile"]["fileAddress"]=$processUploadedFile["fileRelativePosition"];#要移除檔案的位置
#可省略參數:
#$conf["commentsArray"],字串陣列,提示的文字描述,$conf["commentsArray"][$i]代表第($+1)行的描述.
#$conf["commentsArray"]=array("");
var_dump(fileAccess::delFile($conf["form::delFile"]));
unset($conf["form::delFile"]);

*/

#提示要測試的函式
echo "<hr>form::processMultiUploadedFile - testCase 1<br>";

/*

#涵式說明:
#可以瀏覽要上傳的檔案
#回傳的結果:
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
#$result["function"],當前執行的函數.
#$result["error"],錯誤訊息陣列.
#$result["content"],上傳檔案的語法.
#必填的參數:
#$conf["formFileName"],字串,該上傳檔案的表單名稱.   
$conf["formFileName"]="file1";
#可省略的參數:
#$conf["maxFileSize"],字串,檔案的最大限制,單位是位元組(byte)。1kb = 1024 byte ; 1mb = 1024 kb 約等與 1024000 byte,預設是10240000(10MB)
#$conf["maxFileSize"]="10240000";
#$conf["browseButtonClass"],字串,瀏覽檔案的按鈕樣式,預設為"__inputFileCssStyle".
#$conf["browseButtonClass"]="__inputFileCssStyle";
#$conf["acceptType"],字串,限定檔案的類型為"video/*","audio/*","image/*",預設不限定.
#$conf["acceptType"]="";
#$conf["required"],字串,該欄位是否必填,"true"為必填,"false"為可留空,預設為"false".
#$conf["required"]="true";
#$conf["trStart"],字串,爲是否要以<tr>開頭,"true"表示"是",也可以看作新的一列開始,預設為"false".
#$conf["trStart"]="true";
#$conf["trClass"],字串,列的樣式,"__withoutBorder"爲沒有框線的樣式;"__withBorder",有框線的樣式,預設為"__withoutBorder".
#$conf["trClass"]="__withoutBorder";
#$conf["tdStart"],字串,爲是否要以<td>開頭,"true"表示"是",也可以看成列裏面的元素開始,預設為"false".
#$conf["tdStart"]="false";
#$conf["tdClass"],字串,行的樣式,"__withoutBorder"爲沒有框線的樣式;"__withBorder",有框線的樣式,預設為"__withoutBorder".
#$conf["tdClass"]="__withoutBorder";
#$conf["tdEnd"],字串,爲是否要以</td>結尾,"true"表示"是",也可以看成列裏面的元素結束,預設為"false".
#$conf["tdEnd"]="true";
#$conf["trEnd"],字串,爲是否要以</tr>結尾,"true"表示"是",也可以看作該列結束,預設為"false".
#$conf["trEnd"]="true";
#$conf["formStart"],字串,是否為表單的開始,"true"為是,預設為"false".
$conf["formStart"]="true";
#$conf["formName"],字串,表單的名稱
#$conf["formName"]="";
#$conf["formAction"],字串,表單的目標,若有設置$conf["formStart"]為"true",則預設為php檔案自己
$conf["formAction"]="formT.php";
#$conf["formTarget"],字串,表單要呈現回應的位置,預設為"_self".
$conf["formTarget"]="_self";
#$conf["formEnd"],字串,是否為表單的結束,"true"為是,預設為"false".
#$conf["formEnd"]="true";
#$conf["comment"],字串,該上傳檔案的註解,預設不顯示.
$conf["comment"]="檔案一";
echo form::uploadOneFile($conf)["content"];
unset($conf);

#涵式說明:
#可以瀏覽要上傳的檔案
#回傳的結果:
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
#$result["function"],當前執行的函數.
#$result["error"],錯誤訊息陣列.
#$result["content"],上傳檔案的語法.
#必填的參數:
#$conf["formFileName"],字串,該上傳檔案的表單名稱.   
$conf["formFileName"]="file2";
#可省略的參數:
#$conf["maxFileSize"],字串,檔案的最大限制,單位是位元組(byte)。1kb = 1024 byte ; 1mb = 1024 kb 約等與 1024000 byte,預設是10240000(10MB)
#$conf["maxFileSize"]="10240000";
#$conf["browseButtonClass"],字串,瀏覽檔案的按鈕樣式,預設為"__inputFileCssStyle".
#$conf["browseButtonClass"]="__inputFileCssStyle";
#$conf["acceptType"],字串,限定檔案的類型為"video/*","audio/*","image/*",預設不限定.
#$conf["acceptType"]="";
#$conf["required"],字串,該欄位是否必填,"true"為必填,"false"為可留空,預設為"false".
#$conf["required"]="true";
#$conf["trStart"],字串,爲是否要以<tr>開頭,"true"表示"是",也可以看作新的一列開始,預設為"false".
#$conf["trStart"]="true";
#$conf["trClass"],字串,列的樣式,"__withoutBorder"爲沒有框線的樣式;"__withBorder",有框線的樣式,預設為"__withoutBorder".
#$conf["trClass"]="__withoutBorder";
#$conf["tdStart"],字串,爲是否要以<td>開頭,"true"表示"是",也可以看成列裏面的元素開始,預設為"false".
#$conf["tdStart"]="false";
#$conf["tdClass"],字串,行的樣式,"__withoutBorder"爲沒有框線的樣式;"__withBorder",有框線的樣式,預設為"__withoutBorder".
#$conf["tdClass"]="__withoutBorder";
#$conf["tdEnd"],字串,爲是否要以</td>結尾,"true"表示"是",也可以看成列裏面的元素結束,預設為"false".
#$conf["tdEnd"]="true";
#$conf["trEnd"],字串,爲是否要以</tr>結尾,"true"表示"是",也可以看作該列結束,預設為"false".
#$conf["trEnd"]="true";
#$conf["formStart"],字串,是否為表單的開始,"true"為是,預設為"false".
#$conf["formStart"]="true";
#$conf["formName"],字串,表單的名稱
#$conf["formName"]="";
#$conf["formAction"],字串,表單的目標,若有設置$conf["formStart"]為"true",則預設為php檔案自己
#$conf["formAction"]="";
#$conf["formTarget"],字串,表單要呈現回應的位置,預設為"_self".
#$conf["formTarget"]="_self";
#$conf["formEnd"],字串,是否為表單的結束,"true"為是,預設為"false".
#$conf["formEnd"]="true";
#$conf["comment"],字串,該上傳檔案的註解,預設不顯示.
$conf["comment"]="檔案二";
echo form::uploadOneFile($conf)["content"];
unset($conf);

#涵式說明:
#可以瀏覽要上傳的檔案
#回傳的結果:
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
#$result["function"],當前執行的函數.
#$result["error"],錯誤訊息陣列.
#$result["content"],上傳檔案的語法.
#必填的參數:
#$conf["formFileName"],字串,該上傳檔案的表單名稱.   
$conf["formFileName"]="file3";
#可省略的參數:
#$conf["maxFileSize"],字串,檔案的最大限制,單位是位元組(byte)。1kb = 1024 byte ; 1mb = 1024 kb 約等與 1024000 byte,預設是10240000(10MB)
#$conf["maxFileSize"]="10240000";
#$conf["browseButtonClass"],字串,瀏覽檔案的按鈕樣式,預設為"__inputFileCssStyle".
#$conf["browseButtonClass"]="__inputFileCssStyle";
#$conf["acceptType"],字串,限定檔案的類型為"video/*","audio/*","image/*",預設不限定.
#$conf["acceptType"]="";
#$conf["required"],字串,該欄位是否必填,"true"為必填,"false"為可留空,預設為"false".
#$conf["required"]="true";
#$conf["trStart"],字串,爲是否要以<tr>開頭,"true"表示"是",也可以看作新的一列開始,預設為"false".
#$conf["trStart"]="true";
#$conf["trClass"],字串,列的樣式,"__withoutBorder"爲沒有框線的樣式;"__withBorder",有框線的樣式,預設為"__withoutBorder".
#$conf["trClass"]="__withoutBorder";
#$conf["tdStart"],字串,爲是否要以<td>開頭,"true"表示"是",也可以看成列裏面的元素開始,預設為"false".
#$conf["tdStart"]="false";
#$conf["tdClass"],字串,行的樣式,"__withoutBorder"爲沒有框線的樣式;"__withBorder",有框線的樣式,預設為"__withoutBorder".
#$conf["tdClass"]="__withoutBorder";
#$conf["tdEnd"],字串,爲是否要以</td>結尾,"true"表示"是",也可以看成列裏面的元素結束,預設為"false".
#$conf["tdEnd"]="true";
#$conf["trEnd"],字串,爲是否要以</tr>結尾,"true"表示"是",也可以看作該列結束,預設為"false".
#$conf["trEnd"]="true";
#$conf["formStart"],字串,是否為表單的開始,"true"為是,預設為"false".
#$conf["formStart"]="true";
#$conf["formName"],字串,表單的名稱
#$conf["formName"]="";
#$conf["formAction"],字串,表單的目標,若有設置$conf["formStart"]為"true",則預設為php檔案自己
#$conf["formAction"]="";
#$conf["formTarget"],字串,表單要呈現回應的位置,預設為"_self".
#$conf["formTarget"]="_self";
#$conf["formEnd"],字串,是否為表單的結束,"true"為是,預設為"false".
#$conf["formEnd"]="true";
#$conf["comment"],字串,該上傳檔案的註解,預設不顯示.
$conf["comment"]="檔案三";
echo form::uploadOneFile($conf)["content"];
unset($conf);

#函式說明:
#放置按鈕
#回傳結果:
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
#$result["function"],當前執行的函數.
#$result["error"],錯誤訊息陣列.
#$result["content"],按鈕語法. 
#必要的參數:
$conf["buttonDisplayValue"]="上傳";#爲按鈕上顯示的文字。
#可省略的參數:
#$conf["buttonStyleName"]="";#可省略,爲按鈕所要使用的css樣式類別名稱,預設的css樣式爲 __simpleButtonLinkDefaultButtonCssStyle 。
        #其屬性爲   "width","height","font-size","text-align"
        #其屬性值爲 "100%" ,  "50"  ,    "30"   ,   "center"
#$conf["buttonActionScriptFunction"]="";#可省略,爲按下按鈕時所要執行的javaScript函式,預設不設定。
        #"document.forms.formName.submit()"爲傳送名爲testForm的表單內容
        #"window.print()"爲使用瀏覽器內建工具列印當前網頁
#$conf["buttonBorder"]="";#可省略,爲IE9內會自動產生外框,此爲外框的厚度,屬性值爲正整數,預設爲0。
#$conf["disabled"]="true";#可省略,為按鈕的功能是否要取消,若為"true"則代表要取消,若為"false"則代表功能正常,預設為"false".
#$conf["tableStart"]="true";#爲是否要表格開始。"false"代表否,"true"代表是。預設爲"false"。
#$conf["tableClass"]="";#表格要套用的css樣式,若省略的話,則預設爲 __defaultTbaleCsssStyle 其屬性爲 table-layout:fixed word-break:break-all width:100% ,須搭配 $conf["tablStart"] 與 $conf["tableEnd"] 使用。
#$conf["trStart"]="true";#爲是否要以<tr>開頭,"true"表示"是"。也可以看作新的一列開始,預設為"false".
#$conf["trClass"]="__withoutBorder";#<tr>要套用的css樣式,預設為"__withoutBorder",亦即沒有框線的樣式;"__withBorder"則爲有框線的樣式
#$conf["tdStart"]="true";#爲是否要以<td>開頭,"true"表示"是"。也可以看成列裏面的元素開始,預設為"false".
#$conf["tdClass"]="__withoutBorder";#<td>要套用的css樣式,"__withoutBorder"爲沒有框線的樣式;__withBorder爲有框線的樣式
#$conf["tdEnd"]="true";#爲是否要以</td>結尾,"true"表示"是"。也可以看成列裏面的元素結束,預設為"false".
#$conf["trEnd"]="true";#爲是否要以</tr>結尾,"true"表示"是"。也可以看作該列結束,預設為"false".
#$conf["tableEnd"]="true";#爲是否要表格結束。"false"代表否,"true"代表是,預設爲"false"。
#$conf["formStart"]="true";#爲是否要表單開始,如果爲"true"則代表要表單開始,預設為"false".
#$conf["action"]="";#爲表單要傳送到哪個頁面,須搭配$conf["formStart"]與$conf["formEnd"]參數使用
#$conf["target"]="";#為目標表單顯示的方式,若沒設定則預設爲"_self",其他可用的參數爲 "_blank"、"_parent"、"_top",也可以是iframe的名稱。須搭配$conf["formStart"]與$conf["formEnd"]參數使用
$conf["formEnd"]="true";#爲是否要表單結束,如果爲"true"則代表要表單結束,預設為"false".
#參考資料來源:
#http://stackoverflow.com/questions/3014649/how-to-disable-html-button-using-javascript
echo form::button($conf)["content"];
unset($conf);

#涵式說明:
#處理多個上傳到暫存目錄的檔案,可以移動到指定的位置,並指定檔案的名稱。並且可以指定刪除舊有的檔案,然後將新檔案的相對位置寫入到資料庫裏面。
#回傳的變數:
#$result["ServerFileName"][$i]#第$i-1個檔案的名稱.
#$result["ServerFileType"][$i]#第$i-1個檔案的類型.
#$result["ServerFileSize"][$i]#第$i-1個檔案的大小.
#$result["status"]#整體上傳有無成功,"true"代表完整成功,"false"代表有過程有錯誤.
#$result["error"],錯誤訊息陣列.
#$result["fileRelativePosition"][$i]#第$i-1個檔案的相對位置,包含檔案名稱與附檔名。
#必填的參數:
#$conf["formFileName"],為上傳檔案時表單傳送時的名稱陣列.
$conf["formFileName"]=array("file1","file2","file3");
#可省略的參數:
#$conf["uploadDirUserDefine"],字串陣列,為存放上傳檔案的目錄,如果沒設定則會自行建立依照系統時間的年月日十分秒來替資料夾命名,並將上傳的檔案存在裏面。
$conf["uploadDirUserDefine"]=array("formT","formT","formT");
#$conf["ServerFilenameUserDefine"],字串陣列,為存放在伺服器上的檔案名稱,如果沒設定則依照台灣時間的年月日時分秒命名
$conf["ServerFilenameUserDefine"]=array("file1","file2","file3");
#$conf["NoFileExtension"],字串陣列,若為 "true" 則表 指定了檔案名稱後,不用再加上檔案型的副檔名,預設皆為為"false".
#$conf["NoFileExtension"]=array("true");
#$conf["limitPage"],字串陣列,限制只能從哪些網頁檔案過來。
#$conf["limitPage"]=array("");
#$conf["taskName"],字串,爲該上傳作業的名稱,若沒設定,則預設爲"上傳作業"。
#$conf["taskName"]="";
#$conf["eraseOldFile"],字串陣列,如果為"true"的話會移除同名的舊檔案,其值爲檔案的相對位置,預設為"false",不移除同名的檔案,並透過編號保留新的檔案.
$conf["eraseOldFile"]=array("true","true","true");
#$conf["dbProcess"],字串,如果爲"true",則會進行資料表資料更新的動作,亦即要設定 $conf["updatingMysqlServerAddress"] $conf["updatingMysqlAccount"] $conf["updatingDataBaseName"] $conf["updatingDataTableName"] $conf["updatingConditionDataTableColumnName"] $conf["updatingConditionDataTableColumnValue"] $conf["updatingTargetDataTableColumnName"] $conf["updatingTargetDataTableColumnValue"] 的內容,預設為"false".
#$conf["dbProcess"]="true";     
#$conf["updatingMysqlServerAddress"],字串,資料庫位於網路上的哪個位置.
#$conf["updatingMysqlServerAddress"]=$dbAddress;
#$conf["updatingMysqlAccount"],字串,連線時要使用的帳號,省略時代表不用密碼進行連線.
#$conf["updatingMysqlAccount"]=$dbAccount;
#$conf["updatingMysqlPassword"],字串,連線時要使用的密碼.
#$conf["updatingMysqlPassword"]=$dbPassword;
#$conf["updatingDataBaseName"],字串,要更新的目標資料所屬資料庫名稱.
#$conf["updatingDataBaseName"]=$dbName;
#$conf["updatingDataTableName"],字串,要更新的目標資料位於哪個資料表.
#$conf["updatingDataTableName"]="";
#$conf["updatingConditionDataTableColumnName"],字串陣列,要用哪些欄位來識別要更新哪一筆資料,預設為array("id").
#$conf["updatingConditionDataTableColumnName"]=array("id");
#$conf["updatingConditionDataTableColumnValue"],字串陣列,該條件欄位內容的數值要爲多少,才是我們要修改的那筆資料。
#$conf["updatingConditionDataTableColumnValue"]=array("");
#$conf["updatingTargetDataTableColumnName"],字串陣列,要更新的資料欄位有?
#$conf["updatingTargetDataTableColumnName"]=array("");  
#$conf["updatingTargetDataTableColumnValue"],字串陣列,目標資料欄位要改成什麼樣的數值,如果其元素含有"filePosition",則會替換成新檔案的相對位置
#$conf["updatingTargetDataTableColumnValue"]=array("");
#參考資料:
#file_exist()的用法
#http:#php.net/manual/en/function.file-exists.php
var_dump(form::processMultiUploadedFile($conf));
unset($conf);

*/

#提示要測試的函式
echo "<hr>form::uploadMultiFile - testCase 1<br>";

/*

#涵式說明:
#上傳多個檔案
#回傳結果:
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
#$result["function"],當前執行的函數.
#$result["error"],錯誤訊息陣列.
#$result["content"],上傳檔案的語法.
#必填參數:
#$conf["formFileName"],字串陣列,每個要上傳檔案的表單名稱.       
$conf["formFileName"]=array("inputFile1","inputFile2","inputFile3");
#可省略參數:
#$conf["maxFileSize"],字串陣列,各個檔案的最大限制,單位是位元組(byte)。1kb = 1024 byte ; 1mb = 1024 kb 約等與 1024000 byte,預設是10240000(10MB)
$conf["maxFileSize"]=array("10240000","10240000","10240000");
#$conf["browseButtonClass"],字串陣列,瀏覽檔案的按鈕樣式,預設為"__qbpwcf__inputFileCssStyle".
#$conf["browseButtonClass"]=array("__inputFileCssStyle","__inputFileCssStyle","__inputFileCssStyle");
#$conf["acceptType"],字串陣列,限定各個檔案的類型為"video/*","audio/*","image/*",預設不限定.
$conf["acceptType"]=array("video/*","audio/*","image/*");
#$conf["required"],字串陣列,各個欄位是否必填,"true"為必填,"false"為可留空,預設為"false".
$conf["required"]=array("true","true","true");
#$conf["comment"],字串陣列,各個上傳檔案的註解,預設不顯示.
$conf["comment"]=array("請上傳影片","請上傳語音","請上傳圖片");
#$conf["formStart"],字串,是否為表單的開始,"true"為是,預設為"false".
$conf["formStart"]="true";
#$conf["formName"],字串,表單的名稱
$conf["formName"]="form::uploadMultiFile - testCase 1";
#$conf["formAction"],字串,表單的目標,若有設置$conf["formStart"]為"true",則預設為php檔案自己
$conf["formAction"]="formT.php";
#$conf["formTarget"],字串,表單要呈現回應的位置,預設為"_self".
$conf["formTarget"]="_self";
$uploadMultiFile=form::uploadMultiFile($conf);
unset($conf);

echo $uploadMultiFile["content"];
        
*/

#提示要測試的函式
echo "<hr>form::uploadMultiFileCom - testCase 1<br>";

/*

#涵式說明:
#上傳多個檔案,包含回上頁跟送出表單的按鈕.
#回傳結果:
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
#$result["function"],當前執行的函數.
#$result["error"],錯誤訊息陣列.
#$result["content"],上傳檔案的語法.
#必填參數:
#$conf["formFileName"],字串陣列,該上傳檔案的表單名稱.
$conf["formFileName"]=array("file1","file2","file3");
#$conf["actionPage"],字串,處理表單資訊的頁面.
$conf["actionPage"]="formT.php";
#可省略參數:
#$conf["backButtonName"],字串,退回上一頁的按鈕要顯示的名稱,預設爲"回上頁"
#$conf["backButtonName"]="回上頁";
#$conf["backPage"],字串,返回的按鈕點了之後要到哪個頁面,預設是不使用.
$conf["backPage"]="formT.php";
#$conf["backTarget"],字串,返回按鈕的顯示區塊,可以為"_self"自己這個頁面,"_top"整個畫面,"_blank"新的分頁,"_parent"父頁面,預設為"_self".
#$conf["backTarget"]="";
#$conf["backButtonClass"],字串,回上頁按鈕的css樣式,預設為"__simpleButtonLinkDefaultButtonCssStyle".
#$conf["backButtonClass"]="__simpleButtonLinkDefaultButtonCssStyle";
#$conf["formName"],字串,表單的名稱
$conf["formName"]="form::uploadMultiFileCom - testCase 1";
#$conf["formTarget"],字串,表單要呈現回應的位置,預設為"_self".
#$conf["formTarget"]="_self";
#$conf["acceptType"],字串陣列,限定各個檔案的類型為"video/*","audio/*","image/*",預設不限定.
$conf["acceptType"]=array("audio/*","video/*","image/*");
#$conf["comment"],字串陣列,各個上傳檔案的註解,預設不顯示.
$conf["comment"]=array("請上傳音樂","請上傳影片","請上傳圖片");
#$conf["required"],字串陣列,各個欄位是否必填,"true"為必填,"false"為可留空,預設為"false".
$conf["required"]=array("true","true","true");
#$conf["maxFileSize"],字串陣列,各個檔案的最大限制,單位是位元組(byte),1kb = 1024 byte ; 1mb = 1024 kb 約等與 1024000 byte,預設爲"102400000"(100MB)
$conf["maxFileSize"]=array("102400000","102400000","102400000");
#$conf["browseButtonClass"],字串陣列,瀏覽要上傳檔案的css樣式,預設為"__inputFileCssStyle".
#$conf["browseButtonClass"]=array("__inputFileCssStyle");
#$conf["submitButtonClass"],字串,上傳按鈕的css樣式,預設為"__simpleButtonLinkDefaultButtonCssStyle".
#$conf["submitButtonClass"]="__simpleButtonLinkDefaultButtonCssStyle";
#$conf["submitButtonName"],字串,送出鈕要顯示的名稱,預設爲"上傳"
#$conf["submitButtonName"]="上傳";
$uploadMultiFileCom=form::uploadMultiFileCom($conf);
unset($conf);

var_dump($uploadMultiFileCom);

#涵式說明:
#處理多個上傳到暫存目錄的檔案,可以移動到指定的位置,並指定檔案的名稱。並且可以指定刪除舊有的檔案,然後將新檔案的相對位置寫入到資料庫裏面。
#回傳的變數:
#$result["ServerFileName"][$i]#第$i-1個檔案的名稱.
#$result["ServerFileType"][$i]#第$i-1個檔案的類型.
#$result["ServerFileSize"][$i]#第$i-1個檔案的大小.
#$result["status"]#整體上傳有無成功,"true"代表完整成功,"false"代表有過程有錯誤.
#$result["error"],錯誤訊息陣列.
#$result["fileRelativePosition"][$i]#第$i-1個檔案的相對位置,包含檔案名稱與附檔名。
#必填的參數:
#$conf["formFileName"],為上傳檔案時表單傳送時的名稱陣列.
$conf["formFileName"]=array("file1","file2","file3");
#可省略的參數:
#$conf["uploadDirUserDefine"],字串陣列,為存放上傳檔案的目錄,如果沒設定則會自行建立依照系統時間的年月日十分秒來替資料夾命名,並將上傳的檔案存在裏面。
$conf["uploadDirUserDefine"]=array("formT","formT","formT");
#$conf["ServerFilenameUserDefine"],字串陣列,為存放在伺服器上的檔案名稱,如果沒設定則依照台灣時間的年月日時分秒命名
$conf["ServerFilenameUserDefine"]=array("file1","file2","file3");
#$conf["NoFileExtension"],字串陣列,若為 "true" 則表 指定了檔案名稱後,不用再加上檔案型的副檔名,預設皆為為"false".
#$conf["NoFileExtension"]=array("true");
#$conf["limitPage"],字串陣列,限制只能從哪些網頁檔案過來。
#$conf["limitPage"]=array("");
#$conf["taskName"],字串,爲該上傳作業的名稱,若沒設定,則預設爲"上傳作業"。
#$conf["taskName"]="";
#$conf["eraseOldFile"],字串陣列,如果為"true"的話會移除同名的舊檔案,其值爲檔案的相對位置,預設為"false",不移除同名的檔案,並透過編號保留新的檔案.
$conf["eraseOldFile"]=array("true","true","true");
#$conf["dbProcess"],字串,如果爲"true",則會進行資料表資料更新的動作,亦即要設定 $conf["updatingMysqlServerAddress"] $conf["updatingMysqlAccount"] $conf["updatingDataBaseName"] $conf["updatingDataTableName"] $conf["updatingConditionDataTableColumnName"] $conf["updatingConditionDataTableColumnValue"] $conf["updatingTargetDataTableColumnName"] $conf["updatingTargetDataTableColumnValue"] 的內容,預設為"false".
#$conf["dbProcess"]="true";     
#$conf["updatingMysqlServerAddress"],字串,資料庫位於網路上的哪個位置.
#$conf["updatingMysqlServerAddress"]=$dbAddress;
#$conf["updatingMysqlAccount"],字串,連線時要使用的帳號,省略時代表不用密碼進行連線.
#$conf["updatingMysqlAccount"]=$dbAccount;
#$conf["updatingMysqlPassword"],字串,連線時要使用的密碼.
#$conf["updatingMysqlPassword"]=$dbPassword;
#$conf["updatingDataBaseName"],字串,要更新的目標資料所屬資料庫名稱.
#$conf["updatingDataBaseName"]=$dbName;
#$conf["updatingDataTableName"],字串,要更新的目標資料位於哪個資料表.
#$conf["updatingDataTableName"]="";
#$conf["updatingConditionDataTableColumnName"],字串陣列,要用哪些欄位來識別要更新哪一筆資料,預設為array("id").
#$conf["updatingConditionDataTableColumnName"]=array("id");
#$conf["updatingConditionDataTableColumnValue"],字串陣列,該條件欄位內容的數值要爲多少,才是我們要修改的那筆資料。
#$conf["updatingConditionDataTableColumnValue"]=array("");
#$conf["updatingTargetDataTableColumnName"],字串陣列,要更新的資料欄位有?
#$conf["updatingTargetDataTableColumnName"]=array("");  
#$conf["updatingTargetDataTableColumnValue"],字串陣列,目標資料欄位要改成什麼樣的數值,如果其元素含有"filePosition",則會替換成新檔案的相對位置
#$conf["updatingTargetDataTableColumnValue"]=array("");
#參考資料:
#file_exist()的用法
#http://php.net/manual/en/function.file-exists.php
var_dump(form::processMultiUploadedFile($conf));
unset($conf);

*/

#提示要測試的函式
echo "<hr>form::serialize - testCase 1<br>";

/*

#涵式說明:
#一個簡單的按鈕,按了可以到指定的頁面,同時也可以傳送多個隱藏的變數
#回傳的結果
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
#$result["error"],錯誤訊息陣列
#$result["function"],當前執行的函數名稱.
#$result["content"],語法內容
#必填的參數:
#$conf["buttonDisplayValue"],字串,按鈕上要顯示的文字
$conf["buttonDisplayValue"]="test";
#可以省略的參數:
#$conf["buttonStyleName"],字串,按鈕的css樣式應該爲何,若省略的話預設會採用 __simpleButtonLinkDefaultButtonCssStyle 的樣式,其設定為"width:100%;height:50;font-size:30;text-align:center;
#$conf["buttonStyleName"]="";
#$conf["hiddenVarName"],陣列,要傳送的隱藏變數名稱,與 $conf["hiddenVarContent"] 相對應。
$conf["hiddenVarName"]=array("n1","n2","n3");
#$conf["hiddenVarContent"],陣列,要傳誦的隱藏變數內容,與 $conf["hiddenVarName"] 相對應。
$conf["hiddenVarContent"]=array("v1","v2","v3");
#$conf["disabled"],字串,為按鈕的功能是否要取消,若為"true"則代表要取消,若為"false"則代表功能正常,預設為"false".
#$conf["disabled"]="true";
#$conf["formStart"],字串,爲是否要表單開始,如果爲"true"則代表要表單開始,預設爲"false".
$conf["formStart"]="true";
#$conf["method"],字串,爲傳輸的方法,若沒設定則預設爲post,其他可用的參數爲get。
#$conf["method"]="";
#$conf["formName"],字串,該表單的名稱
#$conf["formName"]="";
#$conf["buttonId"],字串,按鈕的id
#$conf["buttonId"]="";
#$conf["actionPage"],字串,按鈕按了之後要到哪個地方?若爲 $_SERVER["PHP_SELF"],則爲回到目前頁面。
$conf["actionPage"]="formT.php";
#$conf["buttonActionScriptFunction"],字串,爲按下按鈕時所要執行的javaScript函式,預設不設定,可以是"document.forms.formName.submit()"(傳送名爲testForm的表單內容).
#$conf["buttonActionScriptFunction"]="";
#$conf["formEnd"],字串,爲是否要表單結束,如果爲"true"則代表要表單結束,預設爲"false"
$conf["formEnd"]="true";
#$conf["tableStart"],字串,爲是否要表格開始,"true"表示"是",預設為"false".
#$conf["tableStart"]="true";
#$conf["tableClass"],字串,爲表格要採用的css樣式名稱,"__withoutBorder"代表沒有框線的預設樣式;"__withBorder"代表有框線的預設樣式,預設為"__withoutBorder".
#$conf["tableClass"]="__withoutBorder";
#$conf["trStart"],字串,爲是否要以<tr>開頭,"true"表示"是"。也可以看作新的一列開始,預設為"false".
#$conf["trStart"]="true"
#$conf["trClass"],字串,列開始的css樣式,"__withoutBorder"代表沒有框線的預設樣式;"__withBorder"代表有框線的預設樣式,預設為"__withoutBorder"
#$conf["trClass"]="__withoutBorder";
#$conf["tdStart"],字串,爲是否要以<td>開頭,"true"表示"是"。也可以看成列裏面的元素開始,預設為"false"
#$conf["tdStart"]="true";
#$conf["tdClass"],字串,行開始的css樣式,"__withoutBorder"代表沒有框線的預設樣式;"__withBorder"代表有框線的預設樣式,預設為"__withoutBorder"
#$conf["tdClass"]="__withoutBorder";
#$conf["tdEnd"],字串,爲是否要以</td>結尾,"true"表示"是"。也可以看成列裏面的元素結束,預設為"false".
#$conf["tdEnd"]="true";
#$conf["trEnd"],字串,爲是否要以</tr>結尾,"true"表示"是"。也可以看作該列結束,預設為"false".
#$conf["trEnd"]="true";
#$conf["displayTarget"],字串,頁面的呈現方法,可以是開新視窗(_blank)、在目前頁面、頁框裏面(_self)、在父頁面(_parent)、最上層頁面(_top),預設為"_top"。
#$conf["displayTarget"]="";
#$conf["tableEnd"],字串,爲是否要表格結束,"true"表示"是",預設為"false".
#$conf["tableEnd"]="true";
var_dump(form::sendHugeDataButton($conf));
unset($conf);   

#函式說明:
#將接收到的表單資訊用serialize壓縮成一字串.
#回傳結果:
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
#$result["function"],當前執行的函數.
#$result["error"],錯誤訊息陣列.
#$result["content"],serialize後的表單資料字串. 
#必填參數:
#無
#可省略參數:
#$conf["type"],接收的表單傳送方式,可以用的有"post","get","any",預設為 "any".
#$conf["type"]="any";
#參考資料:
#serialize=>http://php.net/manual/en/function.serialize.php 
var_dump(form::serialize($conf=array()));

*/

#提示要測試的函式
echo "<hr>form::unserialize - testCase 1<br>";

/*

#測試資料
$postData["n1"]="v1";
$postData["n2"]="v2";
$postData["n3"]="v3";

#函式說明:
#將接收到的表單資訊用serialize壓縮成一字串.
#回傳結果:
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
#$result["function"],當前執行的函數.
#$result["error"],錯誤訊息陣列.
#$result["content"],serialize後的表單資料字串. 
#必填參數:
#$conf["serial_FD_str"],透過serialize壓縮過的表單資料
$conf["serial_FD_str"]=serialize($postData);
#可省略參數:
#無
#參考資料:
#serialize=>http://php.net/manual/en/function.serialize.php
var_dump(form::unserialize($conf));
unset($conf);
 
*/

#提示要測試的函式
echo "<hr>form::pullDownList - testCase 1<br>";

/*
#涵式說明:
#建立含有分群功能的下拉式選單 
#回傳結果:
#
#必填參數:
#$conf["option"][$group][$optionDisplayName]=$autualVal,一、二維字串陣列,代表$group群組的選項$optionDisplayName實際上傳送的內容為$autualVal.
$conf["option"]["0"]="0";
$conf["option"]["A"]["a"]=1;
$conf["option"]["A"]["b"]=2;
$conf["option"]["A"]["c"]=3;
$conf["option"]["B"]["a"]=2;
$conf["option"]["B"]["b"]=4;
$conf["option"]["B"]["c"]=6;
$conf["option"]["C"]="c";
$conf["option"]["D"]="c";
#可省略參數:
#$conf["name"],字串,選單用於傳送的名稱,預設為"pullDownList[]".
#$conf["name"]="pullDownList[]";        
#$conf["id"],字串,元素id,預設跟$conf["name"]一樣.
#$conf["id"]="pullDownList[]";  
#$conf["default"],字串陣列,代表哪個群組的選項是預設要選取的,$conf["default"]=array("g1","v1")代表g1群組的v1選擇為預設值.
$conf["default"]=array("B","b");
#$conf["class"],字串陣列,代表要使用哪些css的class.
$conf["class"]=array("danger","alert-danger");
#$conf["style"],二維字串陣列,代表要使用哪些css style,例如$conf["style"]["color"]="black",就代表使用"color"屬性,屬性值為"black".
$conf["style"]["color"]="green";
#$conf["notSelectedText"],一維陣列字串,沒有選擇項目時要顯示的選項為何,預設為$conf["notSelectedText"]["請選擇"]="unSelected";則代表顯示"請選擇",值為"unSelected".
#$conf["notSelectedText"]["請選擇"]="unSelected"
#$conf["onChangeFunction"],字串,當下拉式選單的內容變動時,要執行哪個js函數與要帶的參數,或要做的js,預設為"return false;".
$conf["onChangeFunction"]="alert('you selected '+this.value+'!');";
#參考資料:
#HTML <optgroup> Tag=>http://www.w3schools.com/Tags/tag_optgroup.asp
#備註:
#建構中
$pullDownList=form::pullDownList($conf);
unset($conf);

#如果建立下拉式選單失敗
if($pullDownList["status"]==="false"){
        
        #印出內容
        var_dump($pullDownList);
        
        #結束程式
        exit;
        
        }#if end
        
#印出語法
echo $pullDownList["content"];
        
*/

#提示要測試的函式
echo "<hr>form::is_ajax - testCase 1<br>";

/*

#函式說明:
#判斷當前php檔的執行是否為ajax的要求.
#回傳結果:
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
#$result["function"],當前執行的函數.
#$result["content"],是否為ajax要求,"true"代表是,"false"代表不是. 
$is_ajax=form::is_ajax();

var_dump($is_ajax);
 
*/      

#提示要測試的函式
echo "<hr>form::is_ajax - testCase 2<br>";

/*

#涵式說明:
#建立透過javaScript傳送post數值到特定頁面,並且取得頁面的回應,將之結果放置在特定的區塊裏面的js函式.
#回傳結果:
#$result["status"],執行正確與否,"true"代表執行正確,"false"代表執行失敗.
#$result["error"],錯誤訊息陣列.
#$result["content"],JavaScript的語法 
#$result["function"],當前執行的函數名稱
#必填參數:
$conf["receivePage"]=$_SERVER['PHP_SELF'];#要接收數值的頁面。
$conf["varNameArray"]=array("var1");#要傳送的數值名稱
$conf["varValueArray"]=array("val1");#要傳送的數值內容。
$conf["jsFunctionName"]="is_ajax_t_2";#ajax裏面的js涵式名稱
$conf["responsePalaceId"]="is_ajax_t_2";#回傳的內容要呈現於哪個<span id = ? ></span>、<div id= ? ></div>區塊之間。
#參考資料來源:
#http://www.w3school.com.cn/php/php_ajax_suggest.asp
$ajaxSendPostValue=javaScript::ajaxSendPostValue($conf);
unset($conf);

#如果建立下拉式選單失敗
if($ajaxSendPostValue["status"]==="false"){
        
        #印出內容
        var_dump($ajaxSendPostValue);
        
        #結束程式
        exit;
        
        }#if end

#印出 ajax
echo $ajaxSendPostValue["content"];

#函式說明:
#放置按鈕
#回傳結果:
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
#$result["function"],當前執行的函數.
#$result["error"],錯誤訊息陣列.
#$result["content"],按鈕語法. 
#必要的參數:
$conf["buttonDisplayValue"]="ajax";#爲按鈕上顯示的文字。
#可省略的參數:
#$conf["buttonStyleName"]="";#可省略,爲按鈕所要使用的css樣式類別名稱,預設的css樣式爲 __simpleButtonLinkDefaultButtonCssStyle 。
        #其屬性爲   "width","height","font-size","text-align"
        #其屬性值爲 "100%" ,  "50"  ,    "30"   ,   "center"
$conf["buttonActionScriptFunction"]="is_ajax_t_2()";#可省略,爲按下按鈕時所要執行的javaScript函式或程式,預設不設定。
        #"document.forms.formName.submit()"爲傳送名爲testForm的表單內容
        #"window.print()"爲使用瀏覽器內建工具列印當前網頁
        #若搭配 javaScript 類別的 confirmWindow 函數的回傳結果,則會有確認視窗的效果.
#$conf["buttonBorder"]="";#可省略,爲IE9內會自動產生外框,此爲外框的厚度,屬性值爲正整數,預設爲0。
#$conf["disabled"]="true";#可省略,為按鈕的功能是否要取消,若為"true"則代表要取消,若為"false"則代表功能正常,預設為"false".
#$conf["tableStart"]="true";#爲是否要表格開始。"false"代表否,"true"代表是。預設爲"false"。
#$conf["tableClass"]="";#表格要套用的css樣式,若省略的話,則預設爲 __defaultTbaleCsssStyle 其屬性爲 table-layout:fixed word-break:break-all width:100% ,須搭配 $conf["tablStart"] 與 $conf["tableEnd"] 使用。
#$conf["trStart"]="true";#爲是否要以<tr>開頭,"true"表示"是"。也可以看作新的一列開始,預設為"false".
#$conf["trClass"]="__withoutBorder";#<tr>要套用的css樣式,預設為"__withoutBorder",亦即沒有框線的樣式;"__withBorder"則爲有框線的樣式
#$conf["tdStart"]="true";#爲是否要以<td>開頭,"true"表示"是"。也可以看成列裏面的元素開始,預設為"false".
#$conf["tdClass"]="__withoutBorder";#<td>要套用的css樣式,"__withoutBorder"爲沒有框線的樣式;__withBorder爲有框線的樣式
#$conf["tdEnd"]="true";#爲是否要以</td>結尾,"true"表示"是"。也可以看成列裏面的元素結束,預設為"false".
#$conf["trEnd"]="true";#爲是否要以</tr>結尾,"true"表示"是"。也可以看作該列結束,預設為"false".
#$conf["tableEnd"]="true";#爲是否要表格結束。"false"代表否,"true"代表是,預設爲"false"。
#$conf["formStart"]="true";#爲是否要表單開始,如果爲"true"則代表要表單開始,預設為"false".
#$conf["action"]="";#爲表單要傳送到哪個頁面,須搭配$conf["formStart"]與$conf["formEnd"]參數使用
#$conf["target"]="";#為目標表單顯示的方式,若沒設定則預設爲"_self",其他可用的參數爲 "_blank"、"_parent"、"_top",也可以是iframe的名稱。須搭配$conf["formStart"]與$conf["formEnd"]參數使用
#$conf["formEnd"]="true";#爲是否要表單結束,如果爲"true"則代表要表單結束,預設為"false".
#$conf["formId"],字串,表單的id.
#$conf["formId"]="";
#$conf["buttonId"],字串,按鈕的id.
#$conf["buttonId"]="";
#參考資料來源:
#http://stackoverflow.com/questions/3014649/how-to-disable-html-button-using-javascript
$button=form::button($conf);
unset($conf);

#如果建立下拉式選單失敗
if($button["status"]==="false"){
        
        #印出內容
        var_dump($button);
        
        #結束程式
        exit;
        
        }#if end

#印出按鈕
echo $button["content"];

#印出show 出回應的 span區塊
echo "<span id=\"is_ajax_t_2\"></span>";

#函式說明:
#判斷當前php檔的執行是否為ajax的要求.
#回傳結果:
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
#$result["function"],當前執行的函數.
#$result["content"],是否為ajax要求,"true"代表是,"false"代表不是. 
$is_ajax=form::is_ajax();

var_dump($is_ajax);
         
*/

#提示要測試的函式
echo "<hr>form::is_ajax - testCase 3<br>";

/*

#涵式說明:
#建立透過javaScript傳送post數值到特定頁面,並且取得頁面的回應,將之結果放置在特定的區塊裏面的js函式.
#回傳結果:
#$result["status"],執行正確與否,"true"代表執行正確,"false"代表執行失敗.
#$result["error"],錯誤訊息陣列.
#$result["content"],JavaScript的語法 
#$result["function"],當前執行的函數名稱
#必填參數:
$conf["receivePage"]=$_SERVER['PHP_SELF']."?is_ajax=true";#要接收數值的頁面。
$conf["varNameArray"]=array("var1");#要傳送的數值名稱
$conf["varValueArray"]=array("val1");#要傳送的數值內容。
$conf["jsFunctionName"]="is_ajax_t_3";#ajax裏面的js涵式名稱
$conf["responsePalaceId"]="is_ajax_t_3";#回傳的內容要呈現於哪個<span id = ? ></span>、<div id= ? ></div>區塊之間。
#參考資料來源:
#http://www.w3school.com.cn/php/php_ajax_suggest.asp
$ajaxSendPostValue=javaScript::ajaxSendPostValue($conf);
unset($conf);

#如果建立下拉式選單失敗
if($ajaxSendPostValue["status"]==="false"){
        
        #印出內容
        var_dump($ajaxSendPostValue);
        
        #結束程式
        exit;
        
        }#if end

#印出 ajax
echo $ajaxSendPostValue["content"];

#函式說明:
#放置按鈕
#回傳結果:
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
#$result["function"],當前執行的函數.
#$result["error"],錯誤訊息陣列.
#$result["content"],按鈕語法. 
#必要的參數:
$conf["buttonDisplayValue"]="ajax";#爲按鈕上顯示的文字。
#可省略的參數:
#$conf["buttonStyleName"]="";#可省略,爲按鈕所要使用的css樣式類別名稱,預設的css樣式爲 __simpleButtonLinkDefaultButtonCssStyle 。
        #其屬性爲   "width","height","font-size","text-align"
        #其屬性值爲 "100%" ,  "50"  ,    "30"   ,   "center"
$conf["buttonActionScriptFunction"]="is_ajax_t_3()";#可省略,爲按下按鈕時所要執行的javaScript函式或程式,預設不設定。
        #"document.forms.formName.submit()"爲傳送名爲testForm的表單內容
        #"window.print()"爲使用瀏覽器內建工具列印當前網頁
        #若搭配 javaScript 類別的 confirmWindow 函數的回傳結果,則會有確認視窗的效果.
#$conf["buttonBorder"]="";#可省略,爲IE9內會自動產生外框,此爲外框的厚度,屬性值爲正整數,預設爲0。
#$conf["disabled"]="true";#可省略,為按鈕的功能是否要取消,若為"true"則代表要取消,若為"false"則代表功能正常,預設為"false".
#$conf["tableStart"]="true";#爲是否要表格開始。"false"代表否,"true"代表是。預設爲"false"。
#$conf["tableClass"]="";#表格要套用的css樣式,若省略的話,則預設爲 __defaultTbaleCsssStyle 其屬性爲 table-layout:fixed word-break:break-all width:100% ,須搭配 $conf["tablStart"] 與 $conf["tableEnd"] 使用。
#$conf["trStart"]="true";#爲是否要以<tr>開頭,"true"表示"是"。也可以看作新的一列開始,預設為"false".
#$conf["trClass"]="__withoutBorder";#<tr>要套用的css樣式,預設為"__withoutBorder",亦即沒有框線的樣式;"__withBorder"則爲有框線的樣式
#$conf["tdStart"]="true";#爲是否要以<td>開頭,"true"表示"是"。也可以看成列裏面的元素開始,預設為"false".
#$conf["tdClass"]="__withoutBorder";#<td>要套用的css樣式,"__withoutBorder"爲沒有框線的樣式;__withBorder爲有框線的樣式
#$conf["tdEnd"]="true";#爲是否要以</td>結尾,"true"表示"是"。也可以看成列裏面的元素結束,預設為"false".
#$conf["trEnd"]="true";#爲是否要以</tr>結尾,"true"表示"是"。也可以看作該列結束,預設為"false".
#$conf["tableEnd"]="true";#爲是否要表格結束。"false"代表否,"true"代表是,預設爲"false"。
#$conf["formStart"]="true";#爲是否要表單開始,如果爲"true"則代表要表單開始,預設為"false".
#$conf["action"]="";#爲表單要傳送到哪個頁面,須搭配$conf["formStart"]與$conf["formEnd"]參數使用
#$conf["target"]="";#為目標表單顯示的方式,若沒設定則預設爲"_self",其他可用的參數爲 "_blank"、"_parent"、"_top",也可以是iframe的名稱。須搭配$conf["formStart"]與$conf["formEnd"]參數使用
#$conf["formEnd"]="true";#爲是否要表單結束,如果爲"true"則代表要表單結束,預設為"false".
#$conf["formId"],字串,表單的id.
#$conf["formId"]="";
#$conf["buttonId"],字串,按鈕的id.
#$conf["buttonId"]="";
#參考資料來源:
#http://stackoverflow.com/questions/3014649/how-to-disable-html-button-using-javascript
$button=form::button($conf);
unset($conf);

#如果建立下拉式選單失敗
if($button["status"]==="false"){
        
        #印出內容
        var_dump($button);
        
        #結束程式
        exit;
        
        }#if end

#印出按鈕
echo $button["content"];

#印出show 出回應的 span區塊
echo "<span id=\"is_ajax_t_3\"></span>";

#函式說明:
#判斷當前php檔的執行是否為ajax的要求.
#回傳結果:
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
#$result["function"],當前執行的函數.
#$result["content"],是否為ajax要求,"true"代表是,"false"代表不是. 
#可省略參數:
#$conf["useGetVarToRecogniseAjaxRequest"],字串,用來識別是否為ajax要求的get變數名稱,若其值為"true"則代表為ajax要求,反之為"false",判斷好後會將該變數移除.
#$conf["useGetVarToRecogniseAjaxRequest"]="is_ajax";
#$conf["usePostVarToRecogniseAjaxRequest"],字串,用來識別是否為ajax要求的post變數名稱,若其值為"true"則代表為ajax要求,反之為"false",判斷好後會將該變數移除.
#$conf["usePostVarToRecogniseAjaxRequest"]="is_ajax";
#備註:
#如果client端沒有傳送ajax要求的識別header,則無法識別是ajax要求.
$conf["useGetVarToRecogniseAjaxRequest"]="is_ajax";
$is_ajax=form::is_ajax($conf);
unset($conf);

var_dump($is_ajax);
         
*/      

#提示要測試的函式
echo "<hr>form::is_ajax - testCase 4<br>";

/*

#涵式說明:
#建立透過javaScript傳送post數值到特定頁面,並且取得頁面的回應,將之結果放置在特定的區塊裏面的js函式.
#回傳結果:
#$result["status"],執行正確與否,"true"代表執行正確,"false"代表執行失敗.
#$result["error"],錯誤訊息陣列.
#$result["content"],JavaScript的語法 
#$result["function"],當前執行的函數名稱
#必填參數:
$conf["receivePage"]=$_SERVER['PHP_SELF'];#要接收數值的頁面。
$conf["varNameArray"]=array("var1","is_ajax");#要傳送的數值名稱
$conf["varValueArray"]=array("val1","true");#要傳送的數值內容。
$conf["jsFunctionName"]="is_ajax_t_4";#ajax裏面的js涵式名稱
$conf["responsePalaceId"]="is_ajax_t_4";#回傳的內容要呈現於哪個<span id = ? ></span>、<div id= ? ></div>區塊之間。
#參考資料來源:
#http://www.w3school.com.cn/php/php_ajax_suggest.asp
$ajaxSendPostValue=javaScript::ajaxSendPostValue($conf);
unset($conf);

#如果建立下拉式選單失敗
if($ajaxSendPostValue["status"]==="false"){
        
        #印出內容
        var_dump($ajaxSendPostValue);
        
        #結束程式
        exit;
        
        }#if end

#印出 ajax
echo $ajaxSendPostValue["content"];

#函式說明:
#放置按鈕
#回傳結果:
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
#$result["function"],當前執行的函數.
#$result["error"],錯誤訊息陣列.
#$result["content"],按鈕語法. 
#必要的參數:
$conf["buttonDisplayValue"]="ajax";#爲按鈕上顯示的文字。
#可省略的參數:
#$conf["buttonStyleName"]="";#可省略,爲按鈕所要使用的css樣式類別名稱,預設的css樣式爲 __simpleButtonLinkDefaultButtonCssStyle 。
        #其屬性爲   "width","height","font-size","text-align"
        #其屬性值爲 "100%" ,  "50"  ,    "30"   ,   "center"
$conf["buttonActionScriptFunction"]="is_ajax_t_4()";#可省略,爲按下按鈕時所要執行的javaScript函式或程式,預設不設定。
        #"document.forms.formName.submit()"爲傳送名爲testForm的表單內容
        #"window.print()"爲使用瀏覽器內建工具列印當前網頁
        #若搭配 javaScript 類別的 confirmWindow 函數的回傳結果,則會有確認視窗的效果.
#$conf["buttonBorder"]="";#可省略,爲IE9內會自動產生外框,此爲外框的厚度,屬性值爲正整數,預設爲0。
#$conf["disabled"]="true";#可省略,為按鈕的功能是否要取消,若為"true"則代表要取消,若為"false"則代表功能正常,預設為"false".
#$conf["tableStart"]="true";#爲是否要表格開始。"false"代表否,"true"代表是。預設爲"false"。
#$conf["tableClass"]="";#表格要套用的css樣式,若省略的話,則預設爲 __defaultTbaleCsssStyle 其屬性爲 table-layout:fixed word-break:break-all width:100% ,須搭配 $conf["tablStart"] 與 $conf["tableEnd"] 使用。
#$conf["trStart"]="true";#爲是否要以<tr>開頭,"true"表示"是"。也可以看作新的一列開始,預設為"false".
#$conf["trClass"]="__withoutBorder";#<tr>要套用的css樣式,預設為"__withoutBorder",亦即沒有框線的樣式;"__withBorder"則爲有框線的樣式
#$conf["tdStart"]="true";#爲是否要以<td>開頭,"true"表示"是"。也可以看成列裏面的元素開始,預設為"false".
#$conf["tdClass"]="__withoutBorder";#<td>要套用的css樣式,"__withoutBorder"爲沒有框線的樣式;__withBorder爲有框線的樣式
#$conf["tdEnd"]="true";#爲是否要以</td>結尾,"true"表示"是"。也可以看成列裏面的元素結束,預設為"false".
#$conf["trEnd"]="true";#爲是否要以</tr>結尾,"true"表示"是"。也可以看作該列結束,預設為"false".
#$conf["tableEnd"]="true";#爲是否要表格結束。"false"代表否,"true"代表是,預設爲"false"。
#$conf["formStart"]="true";#爲是否要表單開始,如果爲"true"則代表要表單開始,預設為"false".
#$conf["action"]="";#爲表單要傳送到哪個頁面,須搭配$conf["formStart"]與$conf["formEnd"]參數使用
#$conf["target"]="";#為目標表單顯示的方式,若沒設定則預設爲"_self",其他可用的參數爲 "_blank"、"_parent"、"_top",也可以是iframe的名稱。須搭配$conf["formStart"]與$conf["formEnd"]參數使用
#$conf["formEnd"]="true";#爲是否要表單結束,如果爲"true"則代表要表單結束,預設為"false".
#$conf["formId"],字串,表單的id.
#$conf["formId"]="";
#$conf["buttonId"],字串,按鈕的id.
#$conf["buttonId"]="";
#參考資料來源:
#http://stackoverflow.com/questions/3014649/how-to-disable-html-button-using-javascript
$button=form::button($conf);
unset($conf);

#如果建立下拉式選單失敗
if($button["status"]==="false"){
        
        #印出內容
        var_dump($button);
        
        #結束程式
        exit;
        
        }#if end

#印出按鈕
echo $button["content"];

#印出show 出回應的 span區塊
echo "<span id=\"is_ajax_t_4\"></span>";

#函式說明:
#判斷當前php檔的執行是否為ajax的要求.
#回傳結果:
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
#$result["function"],當前執行的函數.
#$result["content"],是否為ajax要求,"true"代表是,"false"代表不是. 
#可省略參數:
#$conf["useGetVarToRecogniseAjaxRequest"],字串,用來識別是否為ajax要求的get變數名稱,若其值為"true"則代表為ajax要求,反之為"false",判斷好後會將該變數移除.
#$conf["useGetVarToRecogniseAjaxRequest"]="is_ajax";
#$conf["usePostVarToRecogniseAjaxRequest"],字串,用來識別是否為ajax要求的post變數名稱,若其值為"true"則代表為ajax要求,反之為"false",判斷好後會將該變數移除.
#$conf["usePostVarToRecogniseAjaxRequest"]="is_ajax";
#備註:
#如果client端沒有傳送ajax要求的識別header,則無法識別是ajax要求.
$conf["usePostVarToRecogniseAjaxRequest"]="is_ajax";
$is_ajax=form::is_ajax($conf);
unset($conf);

var_dump($is_ajax);
         
*/      

#提示要測試的函式
echo "<hr>form::buttonReset - testCase 1<br>";

/*

#說明:
#將表單填寫的狀態還原至預設值的按鈕.
#回傳的內容:
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
#$result["function"],當前執行的函數.
#$result["error"],錯誤訊息陣列.
#$result["content"],按鈕語法.
#必填的參數:
#$conf["value"],字串,爲清空表單內容的按鈕顯示名稱
$conf["form::buttonReset"]["value"]="reset";
#可省略的參數:
#$conf["class"],字串,爲要套用的css樣式名稱,預設為__qbpwcf_base."
#$conf["class"]="";
#$conf["trStart"],字串,爲是否要以<tr>開頭,"true"表示"是",也可以看作新的一列開始,預設為"false".
#$conf["trStart"]="true";
#$conf["tdStart"],字串,爲是否要以<td>開頭,"true"表示"是",可以看成列裏面的元素開始,預設為"false".
#$conf["tdStart"]="true";
#$conf["tdEnd"],字串,爲是否要以</td>結尾,"true"表示"是",也可以看成列裏面的元素結束,預設為"false".
#$conf["trEnd"]="true";#爲是否要以</tr>結尾,"true"表示"是",也可以看作該列結束,預設為"false".
#$conf["buttonId"],字串,按鈕的id.
#$conf["buttonId"]="";
$buttonReset=form::buttonReset($conf["form::buttonReset"]);
unset($conf["form::buttonReset"]);

#如果建立重設按鈕失敗
if($buttonReset["status"]==="false"){
        
        #印出內容
        var_dump($buttonReset);
        
        #停止執行
        exit;
        
        }#if end

#印出語法
echo $buttonReset["content"];

*/

#提示要測試的函式
echo "<hr>form::scrollingList - testCase 1<br>";

#/*
 
#涵式說明:
#建立下拉式表單,選項會用全螢幕的div區塊呈現.
#回傳的結果:
#$result["status"],執行是否正常,"true"代表正常,"false"代表失敗.
#$result["error"],錯誤訊息陣列.
#$result["content"],語法內容.
#$result["function"],設置當前執行的涵式
#必填的參數: 
#$conf["name"],字串,爲該下拉式選單的名稱
$conf["name"]="scrollingList";
#$conf["sendValue"],陣列值,爲每個選項的實際傳送的數值,e.g. $sendValue = array("a","b","c","d","e");
$conf["sendValue"]=array("Aa","Bb","Cc","Dd","Ee","Ff","Gg","Hh","Ii","Jj","Kk");
#可省略的參數:
#$conf["formName"]="";#該表單的名稱
$conf["outputValue"]=array("11","22","33","44","55","66","77","88","99","1010","1111");#爲陣列值,爲每個選項的實際顯示的數值, e.g. $outputValue = array("p","o","i","t","e");,如果沒有設定,則其值同$conf["sendValue"]。
#$conf["viewCount"]="";#為一次要顯示幾個選項,預設爲顯示一個。
$conf["defaultValue"]="Ff";#為預設選取那個選項,須爲$conf["sendValue"]其中的一個值。
#$conf["class"]="";#爲要套用的class樣式,預設為 "__qbpwcf_inputSelect".
#$conf["readOnly"],字串,內容是否唯獨,預設為"false",不唯獨,"true"為唯獨.
#$conf["readOnly"]="true";
#$conf["comment"],字串,輸入方框上面要放哪些註解文字,亦即用label來呈現,同時指定"for"屬性的數值為當前"input"標籤的id,意即參數"name"的內容.
#$conf["comment"]="";
#$conf["formAction"]="";#爲該下拉式表單要傳送到的位置
#$conf["actionTarget"]="_self";#要如何接收網頁的迴應,預設爲_self
#$conf["independentForm"]="false";#是否該下拉式選單就是一個完整的表單,"true"代表是,"false"代表不是,預設為"true"
#$conf["hiddenVar"],字串陣列,隱藏的變數名稱陣列.
#$conf["hiddenVar"]=array("");
#$conf["hiddanVarValue"],字串陣列,隱藏變數的數值內容.
#$conf["hiddenVarValue"]=array("");
#$conf["fixedPosition"],字串,該下拉式選單是否要隨着滾軸滾動時固定在畫面上特定的位置,於設為"false",代表不固定,"true"代表要固定.
#$conf["fixedPosition"]="true";
#$conf["fixedPosition.fixedTop"],字串,該選單距離畫面頂部的固定距離,預設為0px.
#$conf["fixedPosition.fixedTop"]="0px";
#$conf["fixedPosition.fixedLeft"],字串,該選單距離畫面左方的固定距離.預設為0px.
#$conf["fixedPosition.fixedLeft"]="0px";
#$conf["fixedPosition.emptySpaceSize"],字串,表單位置要放置多寬的空白,於設為40px.
#$conf["fixedPosition.emptySpaceSize"]="40px"; 
#$conf["tableStartClass"]="__withoutBorder";#表格要採用的css樣式,預設為__withoutBorder,__withoutBorder為沒有框線的樣式,__withBorder為有樣式的表格.
#$conf["tableStart"]="true";#爲是否要以<table>結尾,"true"表示"是"。也可以看作表格結束。    
#$conf["trStart"]="true";#爲是否要以<tr>開頭,"true"表示"是"。也可以看作新的一列開始。
#$conf["tdStart"]="true";#爲是否要以<td>開頭,"true"表示"是"。也可以看成列裏面的元素開始
#$conf["tdEnd"]="true";#爲是否要以</td>結尾,"true"表示"是"。也可以看成列裏面的元素結束
#$conf["trEnd"]="true";#爲是否要以</tr>結尾,"true"表示"是"。也可以看作該列結束。
#$conf["tableEnd"]="true";#爲是否要以</table>結尾,"true"表示"是"。也可以看作表格結束。             
#備註:
#$_SERVER["PHP_SELF"]為php檔案自己
#參考資料來源:
#http://stackoverflow.com/questions/833032/submit-is-not-a-function-in-javascript => form的id重複會導致"document.testForm.submit()"的javaScript語法出錯。
#http://stackoverflow.com/questions/14622124/all-of-commands-for-submit-in-onchange-select-not-work => documents.forms.formName.submit() 才會將正確的表單送出。
#http://stackoverflow.com/questions/368813/html-form-readonly-select-tag-input => 禁止改變選項,且也不會傳送該名稱表單
#tableStart & tableEnd 要補上
$scrollingList=form::scrollingList($conf);
unset($conf);

#如果建立重設按鈕失敗
if($scrollingList["status"]==="false"){
        
        #印出內容
        var_dump($scrollingList);
        
        #停止執行
        exit;
        
        }#if end

#印出語法
echo $scrollingList["content"];

#*/

?>

<script>

/*

//取得下拉式選單元素
var scrollingList=document.getElementById('scrollingList');

//將下拉式選單綁定'mousedown'事件,
var scrollingListMousedownEvent = scrollingList.addEventListener("mousedown",function(event){
        
        //取消預設按下滑鼠的效果
        event.preventDefault();
        
        });

//將下拉式選單綁定'focus'事件,觸發時要執行物件__qbpwcf_scrollingList的函數
var scrollingListClickEvent = scrollingList.addEventListener("click",function(event){
        
        //debug
        //console.log(event);
        
        //取得下拉式選單內容
        var inputSelect=event.target;
        
        //debug
        //console.log(inputSelect);
        
        //讓下拉式選單趕緊隱藏
        inputSelect.style.opacity='0';
        
        //取得選項的數目
        var opLen=inputSelect.options.length;
        
        //debug
        //console.log(opLen);
                
        //新增覆蓋全螢幕的div
        var root=document.createElement('div');
        
        //設置最外層div的id
        root.setAttribute('id','scrollingListRootDiv');
        
        //設置最外層div的樣式
        root.setAttribute('class','__qbpwcf_scrollingListRootDiv');     
                
        //新增為了將不足divForMiddle可見高度的選項們置中的div
        var divForMiddle=document.createElement('div');
        
        //設置為了上下置中的div樣式  
        divForMiddle.setAttribute('class','__qbpwcf_scrollingListOutterDiv');
        
        //初始化記錄選擇的選項index
        var selectedOptionIndex=-1;
                        
        //針對每個選項
        for(var i=0;i< opLen;i++){
        
                //debug
                //console.log(i);
        
                //debug
                //console.log(inputSelect.options[i].value);
                
                //取得選項實際數值
                var opVal=inputSelect.options[i].value;
                
                //debug
                //console.log(inputSelect.options[i].innerHTML);
        
                //取得選項顯示名稱
                var opShow=inputSelect.options[i].innerHTML;
        
                //debug
                //console.log(opVal+'=>'+opShow);
                
                //建立選項的div
                var opDiv=document.createElement('div');
        
                //設置選項div的class
                opDiv.setAttribute('class','__qbpwcf_inputSelect __qbpwcf_inputSelect_hover');
        
                //設置選項div的數值內容
                opDiv.setAttribute('data-val',opVal);
                
                //設置選項div的編號(從0開始)
                opDiv.setAttribute('data-no',i);
        
                //若該選項有 'selected' 屬性
                if(inputSelect.options[i].attributes['selected']!==undefined){
                                        
                        //debug
                        //console.log('第'+opDiv.attributes['data-no'].value+'個選項為現有選擇的項目');
                                                                        
                        //標記該選項為原先所選擇的項目
                        opDiv.setAttribute('data-selected','true');
                        
                        //記錄原先所選擇的項目的index
                        var selectedOptionIndex=parseInt(opDiv.attributes['data-no'].value);
                        
                        }//if end
        
                //建立選項名稱文字節點
                var textnode = document.createTextNode(opShow); 
                
                //將文字放進選項的div
                opDiv.appendChild(textnode);
                        
                //將選項放進為了上下左右置中的div
                divForMiddle.appendChild(opDiv);
        
                }//for end
        
        //新增為了上下左右置中的div
        var divForCenterMiddle=document.createElement('div');
        
        //設置為了內部元素都上下左右置中的div樣式     
        //divForCenterMiddle.setAttribute('style','background-color:white;position:fixed;top:15%;left:15%;height:70%;width:70%;overflow-y:auto;border:1px solid black;');
        divForCenterMiddle.setAttribute('class','__qbpwcf_scrollingListInnerDiv');
        
        //將上下置中的選項們放進可以上下左右置中的div
        divForCenterMiddle.appendChild(divForMiddle);
                
        //將選項放進最外層的div
        root.appendChild(divForCenterMiddle);
        
        //將整個div放到body裡面
        document.body.appendChild(root);

        //調整滾軸表單的置中效果
        scrollingListMiddleFunction();

        //取得所有選項
        var allOptions=document.getElementsByClassName('__qbpwcf_inputSelect_hover');
        
        //debug
        //console.log(allOptions);
        
        //移動滾軸讓原本選擇的選項盡量置中
        
        //原先選擇的項目索引
        //console.log(selectedOptionIndex);
        
        //opLen 選項的數目
        //console.log(opLen);
        
        //取得選單的滾軸上端位置
        //var scrollingListScrollTop=document.getElementById('scrollingListRootDiv').children[0].scrollTop;
        
        //debug
        //console.log(scrollingListScrollTop);
        
        //取得選單的滾軸上端位置最大值
        var scrollingListScrollTopMax=document.getElementById('scrollingListRootDiv').children[0].scrollTopMax;
                
        //debug
        //console.log(scrollingListScrollTopMax);
                
        //取得選單的可見高度
        //var scrollingListViewHeight=document.getElementById('scrollingListRootDiv').children[0].clientHeight;
        
        //debug
        //console.log(scrollingListViewHeight);
        
        //取得選單含滾軸的總高度
        //var scrollingListScrollHeight=document.getElementById('scrollingListRootDiv').children[0].scrollHeight;
        
        //debug
        //console.log(scrollingListScrollHeight);
        
        //debug
        //console.log(selectedOptionIndex);
        
        //如果有滾軸
        if(scrollingListScrollTopMax!==0){
                
                //如果是第一個選項
                if(selectedOptionIndex===0){
                
                        //滾軸拉到最上面
                        document.getElementById('scrollingListRootDiv').children[0].scrollTop=0;
                
                        //debug
                        //console.log('scrollingListScrollTop=0');
                
                        }//if end
                
                //如果之前選擇的選項索引剛好等於 opLen/2
                else if(((selectedOptionIndex+1)===(opLen/2))){
                        
                        //debug
                        //console.log('之前選擇的選項索引剛好等於一半');
                        
                        //取得新的滾軸高度
                        var newScrollTop=scrollingListScrollTopMax/2;
                        
                        //設置滾軸的上端位置
                        document.getElementById('scrollingListRootDiv').children[0].scrollTop=newScrollTop;
                        
                        //debug
                        //console.log('scrollingListScrollTop='+newScrollTop.toString());
                        
                        }//if end
                
                //如果之前選擇的選項索引小於半
                else if((selectedOptionIndex+1)<(opLen/2)){
                        
                        //debug
                        //console.log('之前選擇的選項索引未過半,加幾個'+(selectedOptionIndex+1).toString());
                        
                        //取得新的滾軸高度
                        var newScrollTop=scrollingListScrollTopMax/opLen*selectedOptionIndex+1;
                        
                        //設置滾軸的上端位置
                        document.getElementById('scrollingListRootDiv').children[0].scrollTop=newScrollTop;
                        
                        //debug
                        //console.log('scrollingListScrollTop='+newScrollTop.toString());
                        
                        }//if end
                
                //如果之前選擇的選項索引過半
                else if((selectedOptionIndex+1)>(opLen/2)){
                        
                        //debug
                        //console.log('之前選擇的選項索引過半,減幾個'+(opLen-selectedOptionIndex-1).toString());
                        
                        //取得新的滾軸高度
                        var newScrollTop=scrollingListScrollTopMax-scrollingListScrollTopMax/opLen*(opLen-selectedOptionIndex-1);
                        
                        //設置滾軸的上端位置
                        document.getElementById('scrollingListRootDiv').children[0].scrollTop=newScrollTop;
                                
                        //debug
                        //console.log('scrollingListScrollTop='+newScrollTop.toString());
                                                                        
                        }//if end
                
                //如果是最後一個選項
                else if(selectedOptionIndex===opLen){
                        
                        //如果是最後一個選項
                        document.getElementById('scrollingListRootDiv').children[0].scrollTop=scrollingListScrollTopMax;
                        
                        //debug
                        //console.log('scrollingListScrollTop='+scrollingListScrollTopMax);
                                                
                        }//if end               
                
                //不應該跑到的地方
                else{
                        
                        //debug
                        console.log('error occur!');            
                        
                        }//else end
                
                }//if end
                
        //針對每個選項
        for(var i=0;i<allOptions.length;i++){
                                                                
                //綁定所有選項的 'click' 事件
                allOptions[i].addEventListener("click",function(event){
                        
                        //debug
                        //console.log(event);
                        
                        //取得點擊到的選項
                        var clickedOption=event.target;
                        
                        //debug
                        //console.log(clickedOption);
                        
                        //取得點擊到的選項數值
                        var clickedValue=clickedOption.attributes['data-val'].value;
                        
                        //debug
                        //console.log(clickedValue);
                        
                        //取得點擊到的選項編號
                        var clickedNo=clickedOption.attributes['data-no'].value;
                        
                        //debug
                        //console.log(clickedNo);
                        
                        //取得點擊到的選項名稱
                        var clickedName=clickedOption.innerHTML;
                        
                        //debug
                        //console.log(clickedName);
                                                
                        //修改下拉式選單選則的數值
                        
                        //針對每個下拉式選單實際的選項
                        for(var j=0;j<allOptions.length;j++){
                                                                
                                //移除 selected 屬性
                                inputSelect.options[j].removeAttribute('selected');     
                                                                
                                }//for end
                                
                        //debug
                        //console.log('設置 inputSelect.options['+clickedNo+'] 的 selected 屬性');
                                                
                        //設置點選的選項的 selected 屬性
                        inputSelect.options[clickedNo].setAttribute('selected','');     
                        
                        //取得要移除 scrolling list 的 div
                        var divToDel=document.getElementById('scrollingListRootDiv');
                        
                        //debug
                        //console.log(divTodel);
                        
                        //移除 scrolling list div
                        divToDel.remove();
                                                                                                                        
                        //復原下拉式選單
                        inputSelect.style.opacity='unset';
                                                
                        });//function end
                
                }//for end
                        
        });

//調整滾軸表單的置中效果事件
function scrollingListMiddleEvent(){
        
        //綁定視窗resize的事件
        window.addEventListener("resize",function(event){
        
                //調整滾軸表單的置中效果
                scrollingListMiddleFunction();
        
                });
        
        }//function scrollingListMiddleEvent end

//新增當視窗大小改變時的事件
scrollingListMiddleEvent();

//調整滾軸表單的置中效果
function scrollingListMiddleFunction(){
        
        //取得下拉式選單的div
        var rootDiv=document.getElementById('scrollingListRootDiv');
        
        //如果沒有下拉式選單的div
        if(rootDiv===null){
                
                return false;
                
                }//if end
        
        //取得下拉式選單的外框高度
        var listOutterDivHeight=rootDiv.children[0].clientHeight;
        
        //下拉式選單的外框高度
        //console.log(listOutterDivHeight);
        
        //取得下拉式選單的內寬高度
        var listInnerDivHeight=rootDiv.children[0].children[0].clientHeight;
        
        //下拉式選單的內寬高度
        //console.log(listInnerDivHeight);
                        
        //如果有滾軸
        if(rootDiv.children[0].scrollTopMax!==0){
                
                //取消選項內框與選單外框的高度
                rootDiv.children[0].children[0].style['margin-top']='unset';
                
                //結束 event
                return false;
                
                }//if end
                
        //沒有滾軸
        
        //計算選項內框與選單外框的高度
        var marginTop=((listOutterDivHeight-listInnerDivHeight)/2).toString()+'px';
        
        //debug
        console.log(marginTop);
        
        //設置選項內框與選單外框的高度,已便讓選項列表上下置中於選單外框
        rootDiv.children[0].children[0].style['margin-top']=marginTop;

        }//function scrollingListMiddleFunction end

*/
        
</script>