Rev 53 | Rev 169 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php/*QBPWCF, Quick Build PHP website Component base on Fedora Linux.Copyright (C) 2015~2025 Min-Jhin,ChenThis file is part of QBPWCF.QBPWCF is free software: you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe Free Software Foundation, either version 3 of the License, or(at your option) any later version.QBPWCF is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See theGNU General Public License for more details.You should have received a copy of the GNU General Public Licensealong with QBPWCF. If not, see <http://www.gnu.org/licenses/>.*/#頁面說明:#負責將其它類別匯入到該檔案裏面,這樣撰寫網頁的時候就只需要將此檔案匯入即可使用所有的類別函式.#該檔案,不適用於撰寫SOAP服務.#該檔案不會自動匯入js與css是專為印出json資料的檔案.#使用方法:/*#只要匯入當前目錄底下的 allInOne.php 即可使用各式類別方法。#匯入的範例:<?php#使用命名空間,請務必指派爲 qbpwcfnamespace qbpwcf;#匯入外部套件,檔案位置請依照需求去修改require_once("allInOne.php");#以下爲你的程式...?>*/#指派命名空間namespace qbpwcf;#如果是在命令列環境if(!(isset($_SERVER['HTTP_USER_AGENT']))){#改匯入 "allInOneForCmd.php"require_once("allInOneForCmd.php");#結束程式return 0;}#if end#如果 session 不存在if(!isset($_SESSION)){#啟動 sessionsession_start();}#if end#如果尚未取得 lib pathif(!isset($folderOfUsrLib)){#儲存要執行的指令$cmd="php -f ".escapeshellarg(pathinfo(__FILE__)["dirname"]."/../../bin/libexec/folderOfUsrLib.php");#取得 lib pathexec($cmd,$output,$status);#如果執行失敗if($status!==0){#debugvar_dump($cmd,$ouput,$status);#結束執行,回傳shell 1.exit(1);}#if end#儲存lib path$folderOfUsrLib=$output[0];}#if end#匯入自建的php類別檔require_once("amazon.php"); #跟 amazon 互動的類別require_once("analyse.php"); #跟問卷整理分析有關的類別require_once("app.php"); #讓網頁變得更行動與app化require_once("autoService.php"); #讓網頁可以管理系統的自動化服務require_once("arrays.php"); #跟陣列有關的方法require_once("authenticate.php"); #裏面包含跟驗證有關的功能require_once("bigbluebutton.php"); #big blue button的應用require_once("canvas.php"); #canvas 的應用require_once("catchWebContent.php"); #包含可以抓取網頁內容的功能require_once("chartJS.php"); #繪製圖表的jsrequire_once("cmd.php"); #跟命令列有關的功能require_once("config.php"); #用於改變php執行環境的類別require_once("css.php"); #裏面包含設定css樣式的功能,網頁美觀就靠它了。require_once("csv.php"); #跟csv檔案有關的功能require_once("csInformation.php"); #裏面包含取得用戶、伺服端資訊的功能。#require_once("communication.php"); #網路通訊相關功能,開發中...require_once("ckEditor.php"); #ckeditor的相關應用require_once("dataTable.php"); #將資料表的資料呈現出來並附上操作選項的設置require_once("db.php"); #裏面包含跟資料庫操作有關的功能require_once("external.php"); #執行外部程式require_once("exam.php"); #包含跟測驗有關的功能require_once("fb.php"); #裏面包含facebook提供的api服務require_once("fileAccess.php"); #裏面包含檔案讀、寫的功能require_once("flash.php"); #裏面包含嵌入flash到網頁會用到的功能require_once("form.php"); #裏面包含表單的設計、傳送、接收與跟處理上傳檔案有關的功能require_once("fuse.php"); #包含fuse的使用(ftp,sftp,glusterfs...)require_once("frame.php"); #裏面包含 iframe 的設置功能require_once("googleMap.php"); #裡面包含 googleMap 的應用require_once("header.php"); #裏面包含轉址、網頁編碼、檔案下載、網頁資訊等設定功能require_once("hive.php"); #連線到hiveServer進行操作require_once("html.php"); #管理網頁內容的功能require_once("img.php"); #裏面關於在網頁嵌入圖片、與繪圖的功能require_once("javaScript.php"); #一些javaScript函式、語法可以參考require_once("jquery.php"); #javascript的函式庫,提供較易使用的方式require_once("jwt.php"); #提供 jwt token 的應用require_once("libreoffice.php"); #提供 libreoffice 相關的應用require_once("line.php"); # 提供 line 的相關應用require_once("link.php"); #裏面包含跟超連結有關的功能require_once("logs.php"); #跟log相關的功能require_once("mail.php"); #跟寄信有關的功能require_once("maintain.php"); #跟維護有關的類別require_once("math.php"); #裏面包含跟數學運算有關的功能require_once("od.php"); #跟open document有關的功能require_once("parser.php"); #跟解析內容相關的功能.require_once("phpLib.php"); #跟php函式庫管理有關的類別require_once("qemu.php"); #跟qemu有關的功能require_once("qrCode.php"); #裏面包含qrCode的功能require_once("R.php"); #用於統計與報表產生的套件require_once("record.php"); #用於記錄資訊的套件功能require_once("session.php"); #用於管理session的功能require_once("search.php"); #裏面包含跟搜尋有關的功能require_once("security.php"); #裏面包含跟保護製作權有關的功能require_once("soap.php"); #webService建構、存取的相關功能require_once("sock.php"); #unix domain socketrequire_once("sound.php"); #裏面包含嵌入音樂、聲音、語音到網頁的功能require_once("stop.php"); #跟程式中止有關的功能require_once("stringProcess.php"); #裏面包含字串處理的功能require_once("tab.php"); #提供建立tab的功能require_once("text.php"); #提供文字顯示的功能require_once("table.php"); #裏面包含建立表格的功能require_once("threads.php"); #提供多執行序功能require_once("time.php"); #裏面包含關於跟時鐘、期間限定有關的功能require_once("variableCheck.php"); #變數檢查require_once("video.php"); #裏面包含跟嵌入影片到網頁有關的功能require_once("webSock.php"); #裡面包含web socket的應用require_once("xml.php"); #裏面包含xml資料的截取功能require_once("zerossl.php"); #裡面包含應用zerossl提供的服務#匯入別人的php類別檔#套件說明:#tcpdf,用於編輯pdf檔案的套件。#參考資料:#http://www.tcpdf.org/index.phprequire_once("tcpdf/tcpdf.php");#匯入全域的設定檔require_once(pathinfo(__FILE__)["dirname"]."/../../../etc/qbpwcf/allInOneConfig.php");#覆蓋資料庫連結用的資訊#$dbAddress="localhost";#資料庫的位置#$dbPort="3306";#資料庫的 tcp port#$dbAccount="root";#資料庫帳號#$dbPassword="";#資料庫密碼#$dbName="test";#資料庫名稱#定義常數變數,bbb service urldefine("bbbUrl",$bbbUrl);#定義常數變數,bbb service secretdefine("bbbSecret",$bbbSecret);#定義資料庫系統的使用密碼define("dbSecret",$dbSecret);#定義 qbpwcf unix domain socket pathdefine("qbpwcf_usock_path",$qbpwcf_usock_path);#定義 Zero SSL API access keydefine("zeroSSLapiKey",$zeroSSLapiKey);#定義用於gpg加解密的預設iddefine("gnupgId",$gnupgId);#定義供系統寄送信件的email帳號define("systemMailAcct",$systemMailAcct);#定義供系統寄送信件的email密碼define("systemMailPass",$systemMailPass);#定義環境模式define("mode",$mode);#定義 web socket server 預設的 listen addressdefine("webSocketServerDefaultListenAddr",$webSocketServerDefaultListenAddr);#定義 web soscket server 預設的 listen portdefine("webSocketServerDefaultListenPort",$webSocketServerDefaultListenPort);/*#取得使用者拜訪的頁面#涵式說明:#取得用戶端的資訊#回傳的結果:#$result#$result["userBrowserType"],爲使用者的瀏覽器資訊#$result["userIp"],爲使用者的IP#$result["requestUri"],爲使用者要求的網址#$result["username"],爲使用者目前的帳戶,若爲""則表示尚未登入成功#$result["insertDbStatus"],若有設定$conf["saveToDb"]為"true",則會回傳資料庫寫入的狀態#$result["connectInformation"],爲連線到該mysql-server的資訊。有設定$conf["saveToDb"]為"true",則會有該回傳數值#$result["connectStatus"],爲查詢是否成功,若爲0則成功,若爲1則表示失敗了。有設定$conf["saveToDb"]為"true",則會有該回傳數值#$result["error"],錯誤訊息。有設定$conf["saveToDb"]為"true",則會有該回傳數值#必填的參數:$conf["getAccount"]="true";#是否要取得帳號#可省略的參數:#$conf["accountVar"]=$_SESSION["username"];#帳號儲存在哪個變數裏面,預設爲$_SESSION["username"]$conf["saveToDb"]="true";#是否要除儲存到資料庫,"true"為要儲存",預設為不儲存$conf["dbAddress"]=$dbAddress;;#爲mysql-Server的位置,若#$conf["saveToDb"]設為"true",則該參數為必填。$conf["dbAccount"]=$dbAccount;#爲用於連入mysql-Server時要使用的帳號,若#$conf["saveToDb"]設為"true",則該參數為必填。$conf["dbName"]=$dbName;#要選取的資料庫名稱,若#$conf["saveToDb"]設為"true",則該參數為必填。$conf["tableName"]="visitorInfo";#爲要插入資料的資料表名稱,若#$conf["saveToDb"]設為"true",則該參數為必填。$conf["columnName"]=array("username","userWebBrowser","userIp","requestUri","systemDateAndTime");#爲資料表的項目名稱,#例如:$conf["columnName"]=array("columnName1","columnName2","columnName3",...);#寫入的資料依序為,使用者帳戶、瀏覽器資訊、使用者IP、觀看的網址、當時的時間#$conf["saveToDb"]設為"true",則該參數為必填。$conf["dbPassword"]=$dbPassword;#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼#$conf["displayQueryError"]="true";#爲是否呈現Query的錯誤訊息,預設不呈現,若要呈現則請將此值設爲"true"#$conf["displayQueryString"]="true";#爲是否呈現Query的命令,預設不呈現,若要呈現則請將此值設爲"true"$recordResult=csInformation::getConnectionInfo($conf);unset($conf);#如果記錄拜訪資訊失敗if($recordResult["status"]=="false"){#debugvar_dump($recordResult);exit;}#if end#驗證權限,檢查會員所屬群組是否能拜訪該子細統#函式說明:#檢查session裏面的使用者資訊是否在會員清單裏面,#該會員所屬的羣組是否具有權限瀏覽該子功能頁面#目標資料庫裏面必須有名爲member作爲儲存會員資料的資料表。#目標資料庫裏面必須有名爲userGroupAuthorities作爲儲存羣組資料的資料表#回傳的參數:#$result["status"],執行是否正常的識別,"true"代表一切正常,"false"代表不正常#$result["error"],錯誤訊息#$result["function"],當前執行的函數名稱#$result["passed"],是否通過檢查,"true"代表通過檢查,"false"代表沒有通過檢查.#$result["warning"],記錄不會影響程式執行,但是需要注意的事情。#必填寫的參數:$conf["thisSubSystemName"]="phplib";#爲該子系統的名稱,若該羣組所能瀏覽的子系統裏面有該名稱,則通過驗證。$conf["dbName"]=$dbName;#爲指定的資料庫名稱,欲選擇的資料庫名稱$conf["dbPassword"]=$dbPassword;#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼#可省略的參數:#$conf["dbAddress"]="localhost";#爲資料庫的位置,預設爲 "localhost"#$conf["dbAccount"]="root";#爲用於連入資料庫時要使用的帳號,預設爲 "root"#$conf["dtName.member"]="member";#儲存會員資料的資料表,預設爲 "member"#$conf["dtName.userGroup"]="userGroupAuthorities";#儲存羣組資料的資,預設爲 "userGroupAuthorities"$authenticate=authenticate::checkUserGroupAuthorities($conf);unset($conf);#debug#var_dump($authenticate);#exit;#如果驗證權權限失敗if($authenticate["status"]=="false"){#debug#var_dump($authenticate);#exit;#函式說明:#用彈出式視窗顯示訊息,接著設置seesion變數,最後進行轉址.#回傳的結果:#$result["status"],執行是否成功,"true"代表成功,"false"代表不成功.#$result["error"],錯誤訊息陣列.#必填的參數:#$conf["headerLocation"],為要轉址到的地方,若爲 $_SERVER["PHP_SELF"],則爲回到目前頁面,全民資安素養網爲 https://isafe.moe.edu.tw/.$conf["headerLocation"]="/~qbpwcf/";#$conf["alertMessage"],字串陣列,要顯示的彈出式視窗內容,第n個元素代表第n行的內容.$conf["alertMessage"]=$authenticate["warning"];#可省略的參數:#$conf["sessionName"],字串陣,可以指派要建立的session變數名稱.#$conf["sessionName"]=array("");#$conf["sessionValue"]字串陣列,可以指派要建立的session變數的內容.#$conf["sessionValue"]=array("");#參靠資料來源:#http://php.net/manual/en/reserved.variables.server.phpheader::redirectionAfterAlertWindows($conf);unset($conf);}#if end#如果驗證權限不通過if($authenticate["passed"]=="false"){#函式說明:#用彈出式視窗顯示訊息,接著設置seesion變數,最後進行轉址.#回傳的結果:#$result["status"],執行是否成功,"true"代表成功,"false"代表不成功.#$result["error"],錯誤訊息陣列.#必填的參數:#$conf["headerLocation"],為要轉址到的地方,若爲 $_SERVER["PHP_SELF"],則爲回到目前頁面,全民資安素養網爲 https://isafe.moe.edu.tw/.$conf["headerLocation"]="/~qbpwcf/";#$conf["alertMessage"],字串陣列,要顯示的彈出式視窗內容,第n個元素代表第n行的內容.$conf["alertMessage"]=$authenticate["warning"];#可省略的參數:#$conf["sessionName"],字串陣,可以指派要建立的session變數名稱.#$conf["sessionName"]=array("");#$conf["sessionValue"]字串陣列,可以指派要建立的session變數的內容.#$conf["sessionValue"]=array("");#參靠資料來源:#http://php.net/manual/en/reserved.variables.server.phpheader::redirectionAfterAlertWindows($conf);unset($conf);}#if end*/#表示回的資料為jsonheader("Content-type: application/json");#函式說明:#將php設定檔常用的設定進行調整使之變成適用於開發模式、釋出模式、或自訂要調整哪些設定值#回傳結果:#$result["status"],執行是否正常,"true"為正常,"false"為不正常.#$result["error"],錯誤訊息陣列.#$result["function"],當前執行的函數名稱.#必填參數:#$conf["mode"],參數設定的模式,"release"代表是指共一般使用所需;"develop"代表是在開發狀態下所需;"custom"代表自訂參數設定內容$conf["mode"]="release";#可省略參數:#$conf["customSettings"],要自訂的參數與其數值,例如array("display_errors=On").$conf["customSettings"]=array();#參考資料:#ini_set=>http://www.php.net/manual/en/function.ini-set.php#各個參數適用的修改方式=>http://www.php.net/manual/en/ini.list.php#各個參數適用的修改方式的解說=>http://hi.baidu.com/richardali/item/d28104083c70c638a2332a60#備註:#使用該函式後,網頁會無法顯示。$changeSettings=config::changeSettings($conf);unset($conf);#如果變更設定失敗if($changeSettings["status"]==="false"){#debugvar_dump($changeSettings);exit;}#if end?>