Subversion Repositories php-qbpwcf

Rev

Rev 175 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 175 Rev 226
Line 1... Line 1...
1
<?php
1
<?php
2
 
2
 
3
/*
3
/*
4
 
4
 
5
	QBPWCF, Quick Build PHP website Component base on Fedora Linux.
5
	QBPWCF, Quick Build PHP website Component base on Fedora Linux.
6
    Copyright (C) 2015~2024 Min-Jhin,Chen
6
    Copyright (C) 2014~2025 MIN ZHI, CHEN
7
 
7
 
8
    This file is part of QBPWCF.
8
    This file is part of QBPWCF.
9
 
9
 
10
    QBPWCF is free software: you can redistribute it and/or modify
10
    QBPWCF is free software: you can redistribute it and/or modify
11
    it under the terms of the GNU General Public License as published by
11
    it under the terms of the GNU General Public License as published by
Line 43... Line 43...
43
	#$arguments,陣列,為呼叫方法時所用的參數.
43
	#$arguments,陣列,為呼叫方法時所用的參數.
44
	#參考資料:
44
	#參考資料:
45
	#__call=>http://php.net/manual/en/language.oop5.overloading.php#object.callstatic
45
	#__call=>http://php.net/manual/en/language.oop5.overloading.php#object.callstatic
46
	*/
46
	*/
47
	public function __call($method,$arguments){
47
	public function __call($method,$arguments){
48
		
48
 
49
		#取得當前執行的函式
49
		#取得當前執行的函式
50
		$result["function"]=__FUNCTION__;
50
		$result["function"]=__FUNCTION__;
51
		
51
 
52
		#設置執行不正常
52
		#設置執行不正常
53
		$result["status"]="false";
53
		$result["status"]="false";
54
		
54
 
55
		#設置執行錯誤
55
		#設置執行錯誤
56
		$result["error"][]=__NAMESPACE__ ."/".$method."() 不存在!";
56
		$result["error"][]=__NAMESPACE__ ."/".$method."() 不存在!";
57
		
57
 
58
		#設置所丟入的參數
58
		#設置所丟入的參數
59
		$result["error"][]=$arguments;
59
		$result["error"][]=$arguments;
60
		
60
 
61
		#回傳結果
61
		#回傳結果
62
		return $result;
62
		return $result;
63
		
63
 
64
		}#function __call end
64
		}#function __call end
65
		
65
 
66
	/*
66
	/*
67
	#函式說明:
67
	#函式說明:
68
	#當前類別被呼叫的靜態方法不存在時,將會執行該函數,回報該方法不存在.
68
	#當前類別被呼叫的靜態方法不存在時,將會執行該函數,回報該方法不存在.
69
	#回傳結果:
69
	#回傳結果:
70
	#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
70
	#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
Line 75... Line 75...
75
	#$arguments,陣列,為呼叫方法時所用的參數.
75
	#$arguments,陣列,為呼叫方法時所用的參數.
76
	#參考資料:
76
	#參考資料:
77
	#__call=>http://php.net/manual/en/language.oop5.overloading.php#object.callstatic
77
	#__call=>http://php.net/manual/en/language.oop5.overloading.php#object.callstatic
78
	*/
78
	*/
79
	public static function __callStatic($method,$arguments){
79
	public static function __callStatic($method,$arguments){
80
		
80
 
81
		#取得當前執行的函式
81
		#取得當前執行的函式
82
		$result["function"]=__FUNCTION__;
82
		$result["function"]=__FUNCTION__;
83
		
83
 
84
		#設置執行不正常
84
		#設置執行不正常
85
		$result["status"]="false";
85
		$result["status"]="false";
86
		
86
 
87
		#設置執行錯誤
87
		#設置執行錯誤
88
		$result["error"][]="欲呼叫的". __NAMESPACE__ ."/".$method."() 不存在!";
88
		$result["error"][]="欲呼叫的". __NAMESPACE__ ."/".$method."() 不存在!";
89
		
89
 
90
		#設置所丟入的參數
90
		#設置所丟入的參數
91
		$result["error"][]=$arguments;
91
		$result["error"][]=$arguments;
92
		
92
 
93
		#回傳結果
93
		#回傳結果
94
		return $result;
94
		return $result;
95
		
95
 
96
		}#function __callStatic end
96
		}#function __callStatic end
97
 
97
 
98
	/*
98
	/*
99
	#函式說明:
99
	#函式說明:
100
	#設定檢視該網頁時預設的編碼
100
	#設定檢視該網頁時預設的編碼
Line 110... Line 110...
110
	*/
110
	*/
111
	public static function htmlEncoding($conf){
111
	public static function htmlEncoding($conf){
112
 
112
 
113
		#設定網頁顯示的編碼
113
		#設定網頁顯示的編碼
114
		header("Content-Type: text/html; charset='".$conf["encodingName"]."'");
114
		header("Content-Type: text/html; charset='".$conf["encodingName"]."'");
115
		
115
 
116
		#避免header指定的檔案內容形態被修改
116
		#避免header指定的檔案內容形態被修改
117
		#https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options
117
		#https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options
118
		header("X-Content-Type-Options: text/html");
118
		header("X-Content-Type-Options: text/html");
119
 
119
 
120
		#讓網頁本文也能識別是UTF-8編碼
120
		#讓網頁本文也能識別是UTF-8編碼
Line 238... Line 238...
238
		$checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
238
		$checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
239
		unset($conf["variableCheck::checkArguments"]);
239
		unset($conf["variableCheck::checkArguments"]);
240
 
240
 
241
		#如果檢查參數失敗
241
		#如果檢查參數失敗
242
		if($checkArguments["status"]==="false"){
242
		if($checkArguments["status"]==="false"){
243
		
243
 
244
			#設置執行失敗
244
			#設置執行失敗
245
			$result["status"]="false";
245
			$result["status"]="false";
246
		
246
 
247
			#設置錯誤訊息
247
			#設置錯誤訊息
248
			$result["error"]=$checkArguments;
248
			$result["error"]=$checkArguments;
249
			
249
 
250
			#回傳結果
250
			#回傳結果
251
			return $result;
251
			return $result;
252
		
252
 
253
			}#if end
253
			}#if end
254
			
254
 
255
		#如果檢查參數失敗
255
		#如果檢查參數失敗
256
		if($checkArguments["passed"]==="false"){
256
		if($checkArguments["passed"]==="false"){
257
		
257
 
258
			#設置執行失敗
258
			#設置執行失敗
259
			$result["status"]="false";
259
			$result["status"]="false";
260
		
260
 
261
			#設置錯誤訊息
261
			#設置錯誤訊息
262
			$result["error"]=$checkArguments;
262
			$result["error"]=$checkArguments;
263
			
263
 
264
			#回傳結果
264
			#回傳結果
265
			return $result;
265
			return $result;
266
		
266
 
267
			}#if end
267
			}#if end
268
 
268
 
269
		#設定 $interval 秒後,轉向至 $redirectionLocation
269
		#設定 $interval 秒後,轉向至 $redirectionLocation
270
		header("Refresh: ".$conf["interval"]."; url=".$conf["redirctionLocation"]);
270
		header("Refresh: ".$conf["interval"]."; url=".$conf["redirctionLocation"]);
271
 
271
 
272
		#如果要立即結束執行
272
		#如果要立即結束執行
273
		if($conf["exitNow"]==="true"){
273
		if($conf["exitNow"]==="true"){
274
 
274
 
275
			#停止執行後面的程式,因爲要馬上進行轉址.
275
			#停止執行後面的程式,因爲要馬上進行轉址.
276
			exit;
276
			exit;
277
	
277
 
278
			}#if end
278
			}#if end
279
 
279
 
280
		#設置執行失敗
280
		#設置執行失敗
281
		$result["status"]="true";
281
		$result["status"]="true";
282
		
282
 
283
		#設置錯誤訊息
283
		#設置錯誤訊息
284
		return $result;
284
		return $result;
285
 
285
 
286
		}#function redirection end
286
		}#function redirection end
287
 
287
 
Line 302... Line 302...
302
	#$conf["sessionValue"]=array("");
302
	#$conf["sessionValue"]=array("");
303
	#參考資料:
303
	#參考資料:
304
	#http://php.net/manual/en/reserved.variables.server.php
304
	#http://php.net/manual/en/reserved.variables.server.php
305
	#備註:
305
	#備註:
306
	#無.
306
	#無.
307
	*/	
307
	*/
308
	public static function redirectionNow(&$conf){
308
	public static function redirectionNow(&$conf){
309
 
309
 
310
		#初始化要回傳的內容
310
		#初始化要回傳的內容
311
		$result=array();
311
		$result=array();
312
		
312
 
313
		#設置當前執行的函數
313
		#設置當前執行的函數
314
		$result["function"]=__FUNCTION__;
314
		$result["function"]=__FUNCTION__;
315
 
315
 
316
		#如果 $conf 不為陣列
316
		#如果 $conf 不為陣列
317
		if(gettype($conf)!="array"){
317
		if(gettype($conf)!="array"){
318
			
318
 
319
			#設置執行失敗
319
			#設置執行失敗
320
			$result["status"]="false";
320
			$result["status"]="false";
321
			
321
 
322
			#設置執行錯誤訊息
322
			#設置執行錯誤訊息
323
			$result["error"][]="\$conf變數須為陣列形態";
323
			$result["error"][]="\$conf變數須為陣列形態";
324
 
324
 
325
			#如果傳入的參數為 null
325
			#如果傳入的參數為 null
326
			if($conf==null){
326
			if($conf==null){
327
				
327
 
328
				#設置執行錯誤訊息
328
				#設置執行錯誤訊息
329
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
329
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
330
				
330
 
331
				}#if end
331
				}#if end
332
 
332
 
333
			#回傳結果
333
			#回傳結果
334
			return $result;
334
			return $result;
335
			
335
 
336
			}#if end
336
			}#if end
337
 
337
 
338
		#初始化ifrmae語法內容
338
		#初始化ifrmae語法內容
339
		$result["content"]="";
339
		$result["content"]="";
340
		
340
 
341
		#如果 $conf 不為陣列
341
		#如果 $conf 不為陣列
342
		if(gettype($conf)!="array"){
342
		if(gettype($conf)!="array"){
343
			
343
 
344
			#設置執行失敗
344
			#設置執行失敗
345
			$result["status"]="false";
345
			$result["status"]="false";
346
			
346
 
347
			#設置執行錯誤訊息
347
			#設置執行錯誤訊息
348
			$result["error"][]="\$conf變數須為陣列形態";
348
			$result["error"][]="\$conf變數須為陣列形態";
349
 
349
 
350
			#回傳結果
350
			#回傳結果
351
			return $result;
351
			return $result;
352
			
352
 
353
			}#if end
353
			}#if end
354
		
354
 
355
		#檢查參數
355
		#檢查參數
356
		#函式說明:
356
		#函式說明:
357
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
357
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
358
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
358
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
359
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
359
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
Line 365... Line 365...
365
		#必填寫的參數:
365
		#必填寫的參數:
366
		#$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
366
		#$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
367
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
367
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
368
		#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
368
		#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
369
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("headerLocation");
369
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("headerLocation");
370
		#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double"); 
370
		#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double");
371
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string");
371
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string");
372
		#$conf["variableCheck::checkArguments"]["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
372
		#$conf["variableCheck::checkArguments"]["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
373
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
373
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
374
		#可以省略的參數:
374
		#可以省略的參數:
375
		#$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
375
		#$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
376
		#$conf["variableCheck::checkArguments"]["canBeEmptyString"]="true";
376
		#$conf["variableCheck::checkArguments"]["canBeEmptyString"]="true";
377
		#$conf["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
377
		#$conf["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
378
		$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("sessionName","sessionValue");
378
		$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("sessionName","sessionValue");
379
		#$conf["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
379
		#$conf["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
380
		$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("array","array");
380
		$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("array","array");
381
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null代表不指定,若預設值是必填參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
381
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null代表不指定,若預設值是必填參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
382
		$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null);
382
		$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null);
383
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
383
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
384
		#$conf["arrayCountEqualCheck"][]=array();
384
		#$conf["arrayCountEqualCheck"][]=array();
385
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
385
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
386
		unset($conf["variableCheck::checkArguments"]);
386
		unset($conf["variableCheck::checkArguments"]);
387
		
387
 
388
		#如果檢查失敗
388
		#如果檢查失敗
389
		if($checkResult["status"]=="false"){
389
		if($checkResult["status"]=="false"){
390
			
390
 
391
			#設置執行不正常
391
			#設置執行不正常
392
			$result["status"]="false";
392
			$result["status"]="false";
393
			
393
 
394
			#設置錯誤訊息
394
			#設置錯誤訊息
395
			$result["error"]=$checkResult;
395
			$result["error"]=$checkResult;
396
			
396
 
397
			#回傳結果
397
			#回傳結果
398
			return $result;
398
			return $result;
399
			
399
 
400
			}#if end
400
			}#if end
401
			
401
 
402
		#如果檢查不通過
402
		#如果檢查不通過
403
		if($checkResult["passed"]=="false"){
403
		if($checkResult["passed"]=="false"){
404
			
404
 
405
			#設置執行不正常
405
			#設置執行不正常
406
			$result["status"]="false";
406
			$result["status"]="false";
407
			
407
 
408
			#設置錯誤訊息
408
			#設置錯誤訊息
409
			$result["error"]=$checkResult;
409
			$result["error"]=$checkResult;
410
			
410
 
411
			#回傳結果
411
			#回傳結果
412
			return $result;
412
			return $result;
413
			
413
 
414
			}#if end
414
			}#if end
415
		
415
 
416
		#如果 $conf["sessionName"] 與 $conf["sessionValue"] 皆為 true 代表皆有設置.
416
		#如果 $conf["sessionName"] 與 $conf["sessionValue"] 皆為 true 代表皆有設置.
417
		if( isset($conf["sessionName"])==true && isset($conf["sessionValue"])==true ){
417
		if( isset($conf["sessionName"])==true && isset($conf["sessionValue"])==true ){
418
			
418
 
419
			#有幾個 $conf["sessionName"] 就執行幾次.
419
			#有幾個 $conf["sessionName"] 就執行幾次.
420
			for($i=0;$i<count($conf["sessionName"]);$i++){
420
			for($i=0;$i<count($conf["sessionName"]);$i++){
421
 
421
 
422
				#函式說明:
422
				#函式說明:
423
				#建立session變數,並指派其內容
423
				#建立session變數,並指派其內容
Line 425... Line 425...
425
				#$result["status"],執行狀態,"true"代表執行成功;"false"代表執行失敗.
425
				#$result["status"],執行狀態,"true"代表執行成功;"false"代表執行失敗.
426
				#$result["error"],錯誤訊息陣列.
426
				#$result["error"],錯誤訊息陣列.
427
				#$result["function"],當前執行的函數名稱.
427
				#$result["function"],當前執行的函數名稱.
428
				#必填參數:
428
				#必填參數:
429
				$conf["session"]["create"]["sessionName"]=$conf["sessionName"][$i];#要建立的session變數名稱,建議可採用name1.name2.name3的格式。
429
				$conf["session"]["create"]["sessionName"]=$conf["sessionName"][$i];#要建立的session變數名稱,建議可採用name1.name2.name3的格式。
430
				#可省略的參數: 
430
				#可省略的參數:
431
				$conf["session"]["create"]["sessionValue"]=$conf["sessionValue"][$i];#session變數的內容要存放什麼呢? 
431
				$conf["session"]["create"]["sessionValue"]=$conf["sessionValue"][$i];#session變數的內容要存放什麼呢?
432
				$sessionCreatedResult=session::create($conf["session"]["create"]);
432
				$sessionCreatedResult=session::create($conf["session"]["create"]);
433
				unset($conf["session"]["create"]);
433
				unset($conf["session"]["create"]);
434
 
434
 
435
				#如果建立session變數失敗
435
				#如果建立session變數失敗
436
				if($sessionCreatedResult["status"]=="false"){
436
				if($sessionCreatedResult["status"]=="false"){
437
					
437
 
438
					#設置執行不正常
438
					#設置執行不正常
439
					$result["status"]="false";
439
					$result["status"]="false";
440
					
440
 
441
					#設置錯誤訊息
441
					#設置錯誤訊息
442
					$result["error"]=$sessionCreatedResult;
442
					$result["error"]=$sessionCreatedResult;
443
					
443
 
444
					#回傳結果
444
					#回傳結果
445
					return $result;
445
					return $result;
446
					
446
 
447
					}#if end
447
					}#if end
448
 
448
 
449
				}#for end
449
				}#for end
450
 
450
 
451
			}#if end
451
			}#if end
452
		
452
 
453
		#立即轉址到特定網址.
453
		#立即轉址到特定網址.
454
		#header("Refresh: 0; url=".$conf["headerLocation"]);
454
		#header("Refresh: 0; url=".$conf["headerLocation"]);
455
		header("location:".$conf["headerLocation"]);
455
		header("location:".$conf["headerLocation"]);
456
 
456
 
457
		#停止執行後面的程式,因爲要馬上進行轉址.
457
		#停止執行後面的程式,因爲要馬上進行轉址.
458
		exit;
458
		exit;
459
			
459
 
460
		}#function redirectionNow end.
460
		}#function redirectionNow end.
461
 
461
 
462
	/*
462
	/*
463
	#函式說明:
463
	#函式說明:
464
	#用data:mimeType;base64,fileVar的形式來提供檔案的連結,亦即檔案儲存在變數裡面.
464
	#用data:mimeType;base64,fileVar的形式來提供檔案的連結,亦即檔案儲存在變數裡面.
465
	#回傳結果:
465
	#回傳結果:
466
	#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
466
	#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
467
	#$result["error"],錯誤訊息
467
	#$result["error"],錯誤訊息
468
	#$result["content"],檔案變數的內容
468
	#$result["content"],檔案變數的內容
469
	#$result["fileTypeName"],副檔名,ex:「.tar.xz」.
469
	#$result["fileTypeName"],副檔名,ex:「.tar.xz」.
470
	#$result["function"],當前執行的函數名稱 
470
	#$result["function"],當前執行的函數名稱
471
	#必填參數:
471
	#必填參數:
472
	#$conf["filePosition"],要轉存成2元碼的圖片檔案位置與名稱
472
	#$conf["filePosition"],要轉存成2元碼的圖片檔案位置與名稱
473
	$conf["filePosition"]="";
473
	$conf["filePosition"]="";
474
	#$conf["mimeType"],2元碼的內容是什麼
474
	#$conf["mimeType"],2元碼的內容是什麼
475
	$conf["mimeType"]="";
475
	$conf["mimeType"]="";
Line 483... Line 483...
483
	#壓縮2元碼=>http://php.net/manual/en/function.base64-encode.php
483
	#壓縮2元碼=>http://php.net/manual/en/function.base64-encode.php
484
	#備註:
484
	#備註:
485
	#無.
485
	#無.
486
	*/
486
	*/
487
	public static function data(&$conf){
487
	public static function data(&$conf){
488
		
488
 
489
		#與fileAccess類別的data函數一樣
489
		#與fileAccess類別的data函數一樣
490
		return fileAccess::data($conf);
490
		return fileAccess::data($conf);
491
		
491
 
492
		}#function data end
492
		}#function data end
493
 
493
 
494
	/*
494
	/*
495
	#函式說明:
495
	#函式說明:
496
	#透過轉址的方式來下載檔案.
496
	#透過轉址的方式來下載檔案.
497
	#回傳結果:
497
	#回傳結果:
498
	#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
498
	#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
499
	#$result["error"],錯誤訊息
499
	#$result["error"],錯誤訊息
500
	#$result["function"],當前執行的函數名稱 
500
	#$result["function"],當前執行的函數名稱
501
	#必填參數:
501
	#必填參數:
502
	#$conf["filePosition"],字串,爲要下載的檔案位置
502
	#$conf["filePosition"],字串,爲要下載的檔案位置
503
	$conf["filePosition"]="";
503
	$conf["filePosition"]="";
504
	#$conf["fileType"],字串,檔案類型
504
	#$conf["fileType"],字串,檔案類型
505
	$conf["fileType"]="";
505
	$conf["fileType"]="";
Line 510... Line 510...
510
	#$conf["fileTypeName"]="";
510
	#$conf["fileTypeName"]="";
511
	#參考資料:
511
	#參考資料:
512
	#header=>http://php.net/manual/en/function.header.php
512
	#header=>http://php.net/manual/en/function.header.php
513
	#備註:
513
	#備註:
514
	#請在沒有任何html輸出的頁面使用
514
	#請在沒有任何html輸出的頁面使用
515
	*/	
515
	*/
516
	public static function downloadFile($conf){
516
	public static function downloadFile($conf){
517
 
517
 
518
		#初始化要回傳的變數
518
		#初始化要回傳的變數
519
		$result=array();
519
		$result=array();
520
		
520
 
521
		#記錄當前執行的函數名稱
521
		#記錄當前執行的函數名稱
522
		$result["function"]=__FUNCTION__;
522
		$result["function"]=__FUNCTION__;
523
		
523
 
524
		#如果 $conf 不為陣列
524
		#如果 $conf 不為陣列
525
		if(gettype($conf)!="array"){
525
		if(gettype($conf)!="array"){
526
			
526
 
527
			#設置執行失敗
527
			#設置執行失敗
528
			$result["status"]="false";
528
			$result["status"]="false";
529
			
529
 
530
			#設置執行錯誤訊息
530
			#設置執行錯誤訊息
531
			$result["error"][]="\$conf變數須為陣列形態";
531
			$result["error"][]="\$conf變數須為陣列形態";
532
 
532
 
533
			#如果傳入的參數為 null
533
			#如果傳入的參數為 null
534
			if($conf==null){
534
			if($conf==null){
535
				
535
 
536
				#設置執行錯誤訊息
536
				#設置執行錯誤訊息
537
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
537
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
538
				
538
 
539
				}#if end
539
				}#if end
540
 
540
 
541
			#回傳結果
541
			#回傳結果
542
			return $result;
542
			return $result;
543
			
543
 
544
			}#if end
544
			}#if end
545
 
545
 
546
		#檢查參數
546
		#檢查參數
547
		#函式說明:
547
		#函式說明:
548
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
548
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
Line 559... Line 559...
559
		#必填寫的參數:
559
		#必填寫的參數:
560
		#$conf["variableCheck::checkArguments"]["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
560
		#$conf["variableCheck::checkArguments"]["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
561
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
561
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
562
		#$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
562
		#$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
563
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("filePosition","fileType","fileName");
563
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("filePosition","fileType","fileName");
564
		#$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double"); 
564
		#$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double");
565
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","string","string");
565
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","string","string");
566
		#$conf["variableCheck::checkArguments"]["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
566
		#$conf["variableCheck::checkArguments"]["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
567
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
567
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
568
		#可以省略的參數:
568
		#可以省略的參數:
569
		#$conf["variableCheck::checkArguments"]["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
569
		#$conf["variableCheck::checkArguments"]["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
570
		$conf["variableCheck::checkArguments"]["canBeEmptyString"]="false";
570
		$conf["variableCheck::checkArguments"]["canBeEmptyString"]="false";
571
		#$conf["variableCheck::checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
571
		#$conf["variableCheck::checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
572
		$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("fileTypeName");
572
		$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("fileTypeName");
573
		#$conf["variableCheck::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
573
		#$conf["variableCheck::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
574
		$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string");
574
		$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string");
575
		#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是必填參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
575
		#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是必填參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
576
		$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null);
576
		$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null);
577
		#$conf["variableCheck::checkArguments"]["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
577
		#$conf["variableCheck::checkArguments"]["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
578
		#$conf["variableCheck::checkArguments"]["arrayCountEqualCheck"][]=array();
578
		#$conf["variableCheck::checkArguments"]["arrayCountEqualCheck"][]=array();
Line 585... Line 585...
585
		#var_dump($checkResult);
585
		#var_dump($checkResult);
586
		#exit;
586
		#exit;
587
 
587
 
588
		#如果檢查失敗
588
		#如果檢查失敗
589
		if($checkResult["status"]=="false"){
589
		if($checkResult["status"]=="false"){
590
			
590
 
591
			#設置錯誤狀態
591
			#設置錯誤狀態
592
			$result["status"]="false";
592
			$result["status"]="false";
593
			
593
 
594
			#設置錯誤提示
594
			#設置錯誤提示
595
			$result["error"]=$checkResult;
595
			$result["error"]=$checkResult;
596
			
596
 
597
			#回傳結果
597
			#回傳結果
598
			return $result;
598
			return $result;
599
			
599
 
600
			}#if end
600
			}#if end
601
 
601
 
602
		#如果檢查不通過
602
		#如果檢查不通過
603
		if($checkResult["passed"]=="false"){
603
		if($checkResult["passed"]=="false"){
604
			
604
 
605
			#設置錯誤狀態
605
			#設置錯誤狀態
606
			$result["status"]="false";
606
			$result["status"]="false";
607
			
607
 
608
			#設置錯誤提示
608
			#設置錯誤提示
609
			$result["error"]=$checkResult;
609
			$result["error"]=$checkResult;
610
			
610
 
611
			#回傳結果
611
			#回傳結果
612
			return $result;
612
			return $result;
613
			
613
 
614
			}#if end
614
			}#if end
615
 
615
 
616
		#描述內容為檔案傳輸
616
		#描述內容為檔案傳輸
617
		header("Content-Description: File Transfer");
617
		header("Content-Description: File Transfer");
618
 
618
 
619
		#設定檔案的類型
619
		#設定檔案的類型
620
		header("Content-Type:".$conf["fileType"]);
620
		header("Content-Type:".$conf["fileType"]);
621
 
621
 
622
		#如果 $conf["fileTypeName"] 存在
622
		#如果 $conf["fileTypeName"] 存在
623
		if(isset($conf["fileTypeName"])){
623
		if(isset($conf["fileTypeName"])){
624
			
624
 
625
			#加上副檔名
625
			#加上副檔名
626
			$conf["fileName"]=$conf["fileName"].$conf["fileTypeName"];
626
			$conf["fileName"]=$conf["fileName"].$conf["fileTypeName"];
627
			
627
 
628
			}#if end
628
			}#if end
629
 
629
 
630
		#提示下載檔案與其資訊
630
		#提示下載檔案與其資訊
631
		header("Content-Disposition: attachment; filename=\"".$conf["fileName"]."\"");
631
		header("Content-Disposition: attachment; filename=\"".$conf["fileName"]."\"");
632
 
632
 
Line 661... Line 661...
661
	#http:#php.net/manual/en/function.readfile.php
661
	#http:#php.net/manual/en/function.readfile.php
662
	#備註:
662
	#備註:
663
	#建議改用data與downloadFile函數
663
	#建議改用data與downloadFile函數
664
	*/
664
	*/
665
	public static function askUserDownloadFile(&$conf){
665
	public static function askUserDownloadFile(&$conf){
666
		
666
 
667
		#初始化要回傳的變數
667
		#初始化要回傳的變數
668
		$result=array();
668
		$result=array();
669
		
669
 
670
		#初始化當前執行的函數名稱
670
		#初始化當前執行的函數名稱
671
		$result["funciton"]=__FUNCTION__;
671
		$result["funciton"]=__FUNCTION__;
672
		
672
 
673
		#如果 $conf 不為陣列
673
		#如果 $conf 不為陣列
674
		if(gettype($conf)!="array"){
674
		if(gettype($conf)!="array"){
675
			
675
 
676
			#設置執行失敗
676
			#設置執行失敗
677
			$result["status"]="false";
677
			$result["status"]="false";
678
			
678
 
679
			#設置執行錯誤訊息
679
			#設置執行錯誤訊息
680
			$result["error"][]="\$conf變數須為陣列形態";
680
			$result["error"][]="\$conf變數須為陣列形態";
681
 
681
 
682
			#如果傳入的參數為 null
682
			#如果傳入的參數為 null
683
			if($conf==null){
683
			if($conf==null){
684
				
684
 
685
				#設置執行錯誤訊息
685
				#設置執行錯誤訊息
686
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
686
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
687
				
687
 
688
				}#if end
688
				}#if end
689
 
689
 
690
			#回傳結果
690
			#回傳結果
691
			return $result;
691
			return $result;
692
			
692
 
693
			}#if end
693
			}#if end
694
		
694
 
695
		#檢查參數
695
		#檢查參數
696
		#函式說明:
696
		#函式說明:
697
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
697
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
698
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
698
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
699
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
699
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
Line 708... Line 708...
708
		#必填寫的參數:
708
		#必填寫的參數:
709
		#$conf["variableCheck::checkArguments"]["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
709
		#$conf["variableCheck::checkArguments"]["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
710
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
710
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
711
		#$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
711
		#$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
712
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("filePositionAndName");
712
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("filePositionAndName");
713
		#$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double"); 
713
		#$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double");
714
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string");
714
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string");
715
		#$conf["variableCheck::checkArguments"]["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
715
		#$conf["variableCheck::checkArguments"]["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
716
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
716
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
717
		#可以省略的參數:
717
		#可以省略的參數:
718
		#$conf["variableCheck::checkArguments"]["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
718
		#$conf["variableCheck::checkArguments"]["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
719
		$conf["variableCheck::checkArguments"]["canBeEmptyString"]="false";
719
		$conf["variableCheck::checkArguments"]["canBeEmptyString"]="false";
720
		#$conf["variableCheck::checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
720
		#$conf["variableCheck::checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
721
		$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("fileDisplayName","mimeType");
721
		$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("fileDisplayName","mimeType");
722
		#$conf["variableCheck::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
722
		#$conf["variableCheck::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
723
		$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string");
723
		$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string");
724
		#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是必填參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
724
		#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是必填參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
725
		$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,"application/octet-stream");
725
		$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,"application/octet-stream");
726
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
726
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
727
		#$conf["arrayCountEqualCheck"][]=array();
727
		#$conf["arrayCountEqualCheck"][]=array();
728
		#參考資料來源:
728
		#參考資料來源:
729
		#array_keys=>http://php.net/manual/en/function.array-keys.php
729
		#array_keys=>http://php.net/manual/en/function.array-keys.php
730
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
730
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
731
		unset($conf["variableCheck::checkArguments"]);
731
		unset($conf["variableCheck::checkArguments"]);
732
		
732
 
733
		#如果檢查失敗
733
		#如果檢查失敗
734
		if($checkResult["status"]=="false"){
734
		if($checkResult["status"]=="false"){
735
			
735
 
736
			#設置執行不正常
736
			#設置執行不正常
737
			$result["status"]="false";
737
			$result["status"]="false";
738
			
738
 
739
			#設置錯誤訊息
739
			#設置錯誤訊息
740
			$result["error"]=$checkResult;
740
			$result["error"]=$checkResult;
741
			
741
 
742
			#回傳結果
742
			#回傳結果
743
			return $result;
743
			return $result;
744
			
744
 
745
			}#if end			
745
			}#if end
746
		
746
 
747
		#如果檢查不通過
747
		#如果檢查不通過
748
		if($checkResult["passed"]=="false"){
748
		if($checkResult["passed"]=="false"){
749
 
749
 
750
			#設置執行不正常
750
			#設置執行不正常
751
			$result["status"]="false";
751
			$result["status"]="false";
752
			
752
 
753
			#設置錯誤訊息
753
			#設置錯誤訊息
754
			$result["error"]=$checkResult;
754
			$result["error"]=$checkResult;
755
			
755
 
756
			#回傳結果
756
			#回傳結果
757
			return $result;
757
			return $result;
758
 
758
 
759
			}#if end
759
			}#if end
760
		
760
 
761
		#如果 $conf["fileDisplayName"] 不存在
761
		#如果 $conf["fileDisplayName"] 不存在
762
		if(!isset($conf["fileDisplayName"])){
762
		if(!isset($conf["fileDisplayName"])){
763
 
763
 
764
			#回傳西元的目前時間,格式為2010年07月24日15時30分33秒
764
			#回傳西元的目前時間,格式為2010年07月24日15時30分33秒
765
			#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
765
			#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
Line 768... Line 768...
768
			#$result["content"],西元的目前時間.
768
			#$result["content"],西元的目前時間.
769
			#必填參數:
769
			#必填參數:
770
			$conf["time"]["getFullDateAndTime"]["timeZone"]="Asia/Taipei";#時區代號,可以設定的時區列表:http:#www.php.net/manual/en/timezones.php
770
			$conf["time"]["getFullDateAndTime"]["timeZone"]="Asia/Taipei";#時區代號,可以設定的時區列表:http:#www.php.net/manual/en/timezones.php
771
				#ex:"Asia/Taipei"
771
				#ex:"Asia/Taipei"
772
			#可省略的參數:
772
			#可省略的參數:
773
			$conf["time"]["getFullDateAndTime"]["showSecond"]="true";#若爲"true"則會顯示秒數	
773
			$conf["time"]["getFullDateAndTime"]["showSecond"]="true";#若爲"true"則會顯示秒數
774
			$systemTime=time::getFullDateAndTime($conf["time"]["getFullDateAndTime"]);
774
			$systemTime=time::getFullDateAndTime($conf["time"]["getFullDateAndTime"]);
775
			unset($conf["time"]["getFullDateAndTime"]);
775
			unset($conf["time"]["getFullDateAndTime"]);
776
 
776
 
777
			#如果取得系統時間失敗
777
			#如果取得系統時間失敗
778
			if($systemTime["status"]=="false"){
778
			if($systemTime["status"]=="false"){
779
				
779
 
780
				#設置執行不正常
780
				#設置執行不正常
781
				$result["status"]="false";
781
				$result["status"]="false";
782
				
782
 
783
				#設置錯誤訊息
783
				#設置錯誤訊息
784
				$result["error"]=$systemTime;
784
				$result["error"]=$systemTime;
785
				
785
 
786
				#回傳結果
786
				#回傳結果
787
				return $result;
787
				return $result;
788
				
788
 
789
				}#if end
789
				}#if end
790
 
790
 
791
			#函式說明:
791
			#函式說明:
792
			#將固定格式的字串分開,並回傳分開的結果。
792
			#將固定格式的字串分開,並回傳分開的結果。
793
			#回傳的參數:
793
			#回傳的參數:
Line 799... Line 799...
799
			#$result["dataCounts"],爲總共分成幾段
799
			#$result["dataCounts"],爲總共分成幾段
800
			#必填參數:
800
			#必填參數:
801
			$conf["stringPross"]["spiltString"]["stringIn"]=basename($conf["filePositionAndName"]);#要處理的字串。
801
			$conf["stringPross"]["spiltString"]["stringIn"]=basename($conf["filePositionAndName"]);#要處理的字串。
802
			$conf["stringPross"]["spiltString"]["spiltSymbol"]=".";#爲以哪個符號作爲分割
802
			$conf["stringPross"]["spiltString"]["spiltSymbol"]=".";#爲以哪個符號作爲分割
803
			$fileNameString=stringProcess::spiltString($conf["stringPross"]["spiltString"]);
803
			$fileNameString=stringProcess::spiltString($conf["stringPross"]["spiltString"]);
804
			unset($conf["stringPross"]["spiltString"]);	
804
			unset($conf["stringPross"]["spiltString"]);
805
 
805
 
806
			#如果分割字串失敗
806
			#如果分割字串失敗
807
			if($fileNameString["status"]=="false"){
807
			if($fileNameString["status"]=="false"){
808
				
808
 
809
				#設置錯誤識別
809
				#設置錯誤識別
810
				$result["status"]="false";
810
				$result["status"]="false";
811
				
811
 
812
				#設置錯誤訊息
812
				#設置錯誤訊息
813
				$result["error"]=$fileNameString;
813
				$result["error"]=$fileNameString;
814
				
814
 
815
				#回傳結果
815
				#回傳結果
816
				return $result;
816
				return $result;
817
				
817
 
818
				}#if end
818
				}#if end
819
 
819
 
820
			#檔案名稱為 / 後面的內容
820
			#檔案名稱為 / 後面的內容
821
			$conf["fileDisplayName"]="(".$fileNameString["dataArray"][0]." date:".$systemTime["content"].")";
821
			$conf["fileDisplayName"]="(".$fileNameString["dataArray"][0]." date:".$systemTime["content"].")";
822
 
822
 
823
			#若原始檔案名稱有副檔名
823
			#若原始檔案名稱有副檔名
824
			for($i=1;$i<$fileNameString["dataCounts"];$i++){
824
			for($i=1;$i<$fileNameString["dataCounts"];$i++){
825
				
825
 
826
				#組合副檔名
826
				#組合副檔名
827
				$conf["fileDisplayName"]=$conf["fileDisplayName"].".".$fileNameString["dataArray"][$i];
827
				$conf["fileDisplayName"]=$conf["fileDisplayName"].".".$fileNameString["dataArray"][$i];
828
				
828
 
829
				}#for end
829
				}#for end
830
 
830
 
831
			}#if end
831
			}#if end
832
 
832
 
833
		#如果檔案存在
833
		#如果檔案存在
Line 842... Line 842...
842
			header("Pragma: public");
842
			header("Pragma: public");
843
			header("Content-Length:".filesize($conf["filePositionAndName"]));#headr的大小等於檔案的大小
843
			header("Content-Length:".filesize($conf["filePositionAndName"]));#headr的大小等於檔案的大小
844
			ob_clean();#清除物件
844
			ob_clean();#清除物件
845
			flush();#清除記憶題
845
			flush();#清除記憶題
846
			readfile($conf["filePositionAndName"]);#讀取檔案
846
			readfile($conf["filePositionAndName"]);#讀取檔案
847
			
847
 
848
			#設置執行正常
848
			#設置執行正常
849
			$result["status"]="true";
849
			$result["status"]="true";
850
 
850
 
851
			#回傳結果
851
			#回傳結果
852
			return $result;
852
			return $result;
Line 856... Line 856...
856
		#如果檔案不存在則回傳錯誤訊息
856
		#如果檔案不存在則回傳錯誤訊息
857
		else{
857
		else{
858
 
858
 
859
			#設置錯誤識別
859
			#設置錯誤識別
860
			$result["status"]="false";
860
			$result["status"]="false";
861
			
861
 
862
			#設置錯誤訊息
862
			#設置錯誤訊息
863
			$result["error"][]="要下載的檔案不存在";
863
			$result["error"][]="要下載的檔案不存在";
864
			
864
 
865
			#回傳結果
865
			#回傳結果
866
			return $result;
866
			return $result;
867
 
867
 
868
			}#else end
868
			}#else end
869
			
869
 
870
		#照理說不應該執行到這邊	
870
		#照理說不應該執行到這邊
871
			
871
 
872
		#設置錯誤識別
872
		#設置錯誤識別
873
		$result["status"]="false";
873
		$result["status"]="false";
874
		
874
 
875
		#設置錯誤訊息
875
		#設置錯誤訊息
876
		$result["error"][]="下載檔案失敗";
876
		$result["error"][]="下載檔案失敗";
877
		
877
 
878
		#回傳結果
878
		#回傳結果
879
		return $result;
879
		return $result;
880
 
880
 
881
		}#function end
881
		}#function end
882
 
882
 
Line 901... Line 901...
901
	*/
901
	*/
902
	public static function setPageInfo($conf){
902
	public static function setPageInfo($conf){
903
 
903
 
904
		#初始化要回傳的變數
904
		#初始化要回傳的變數
905
		$result=array();
905
		$result=array();
906
		
906
 
907
		#初始化當前執行的函數名稱
907
		#初始化當前執行的函數名稱
908
		$result["funciton"]=__FUNCTION__;
908
		$result["funciton"]=__FUNCTION__;
909
		
909
 
910
		#如果 $conf 不為陣列
910
		#如果 $conf 不為陣列
911
		if(gettype($conf)!="array"){
911
		if(gettype($conf)!="array"){
912
			
912
 
913
			#設置執行失敗
913
			#設置執行失敗
914
			$result["status"]="false";
914
			$result["status"]="false";
915
			
915
 
916
			#設置執行錯誤訊息
916
			#設置執行錯誤訊息
917
			$result["error"][]="\$conf變數須為陣列形態";
917
			$result["error"][]="\$conf變數須為陣列形態";
918
 
918
 
919
			#如果傳入的參數為 null
919
			#如果傳入的參數為 null
920
			if($conf==null){
920
			if($conf==null){
921
				
921
 
922
				#設置執行錯誤訊息
922
				#設置執行錯誤訊息
923
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
923
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
924
				
924
 
925
				}#if end
925
				}#if end
926
 
926
 
927
			#回傳結果
927
			#回傳結果
928
			return $result;
928
			return $result;
929
			
929
 
930
			}#if end
930
			}#if end
931
		
931
 
932
		#檢查參數
932
		#檢查參數
933
		#函式說明:
933
		#函式說明:
934
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
934
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
935
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
935
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
936
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
936
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
Line 945... Line 945...
945
		#必填寫的參數:
945
		#必填寫的參數:
946
		#$conf["variableCheck::checkArguments"]["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
946
		#$conf["variableCheck::checkArguments"]["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
947
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
947
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
948
		#$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
948
		#$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
949
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("title");
949
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("title");
950
		#$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double"); 
950
		#$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double");
951
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string");
951
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string");
952
		#$conf["variableCheck::checkArguments"]["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
952
		#$conf["variableCheck::checkArguments"]["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
953
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
953
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
954
		#可以省略的參數:
954
		#可以省略的參數:
955
		#$conf["variableCheck::checkArguments"]["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
955
		#$conf["variableCheck::checkArguments"]["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
956
		$conf["variableCheck::checkArguments"]["canBeEmptyString"]="false";
956
		$conf["variableCheck::checkArguments"]["canBeEmptyString"]="false";
957
		#$conf["variableCheck::checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
957
		#$conf["variableCheck::checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
958
		$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("desc");
958
		$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("desc");
959
		#$conf["variableCheck::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
959
		#$conf["variableCheck::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
960
		$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string");
960
		$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string");
961
		#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是必填參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
961
		#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是必填參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
962
		$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array("\$conf[\"title\"]");
962
		$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array("\$conf[\"title\"]");
963
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
963
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
964
		#$conf["arrayCountEqualCheck"][]=array();
964
		#$conf["arrayCountEqualCheck"][]=array();
965
		#參考資料來源:
965
		#參考資料來源:
966
		#array_keys=>http://php.net/manual/en/function.array-keys.php
966
		#array_keys=>http://php.net/manual/en/function.array-keys.php
967
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
967
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
968
		unset($conf["variableCheck::checkArguments"]);
968
		unset($conf["variableCheck::checkArguments"]);
969
		
969
 
970
		#如果檢查失敗
970
		#如果檢查失敗
971
		if($checkResult["status"]=="false"){
971
		if($checkResult["status"]=="false"){
972
			
972
 
973
			#設置執行不正常
973
			#設置執行不正常
974
			$result["status"]="false";
974
			$result["status"]="false";
975
			
975
 
976
			#設置錯誤訊息
976
			#設置錯誤訊息
977
			$result["error"]=$checkResult;
977
			$result["error"]=$checkResult;
978
			
978
 
979
			#回傳結果
979
			#回傳結果
980
			return $result;
980
			return $result;
981
			
981
 
982
			}#if end			
982
			}#if end
983
		
983
 
984
		#如果檢查不通過
984
		#如果檢查不通過
985
		if($checkResult["passed"]=="false"){
985
		if($checkResult["passed"]=="false"){
986
 
986
 
987
			#設置執行不正常
987
			#設置執行不正常
988
			$result["status"]="false";
988
			$result["status"]="false";
989
			
989
 
990
			#設置錯誤訊息
990
			#設置錯誤訊息
991
			$result["error"]=$checkResult;
991
			$result["error"]=$checkResult;
992
			
992
 
993
			#回傳結果
993
			#回傳結果
994
			return $result;
994
			return $result;
995
 
995
 
996
			}#if end
996
			}#if end
997
 
997
 
998
		#設置 title
998
		#設置 title
999
		$title="<title>".$conf["title"]."</title>";
999
		$title="<title>".$conf["title"]."</title>";
1000
 
1000
 
1001
		#設置 meta desc
1001
		#設置 meta desc
1002
		$meta="<meta name=\"description\" content=\"".$conf["desc"]."\" ></meta>";
1002
		$meta="<meta name=\"description\" content=\"".$conf["desc"]."\" ></meta>";
1003
				
1003
 
1004
		#設定資訊字串
1004
		#設定資訊字串
1005
		$result["content"]="<head>".$title.$meta."</head>";
1005
		$result["content"]="<head>".$title.$meta."</head>";
1006
	
1006
 
1007
		#設置執行正常
1007
		#設置執行正常
1008
		$result["status"]="true";
1008
		$result["status"]="true";
1009
	
1009
 
1010
		#回傳設定資訊
1010
		#回傳設定資訊
1011
		return $result;
1011
		return $result;
1012
 
1012
 
1013
		}#function setPageInfo end
1013
		}#function setPageInfo end
1014
		
1014
 
1015
	/*
1015
	/*
1016
	#函式說明:
1016
	#函式說明:
1017
	#用彈出式視窗顯示訊息,接著設置seesion變數,最後進行轉址.
1017
	#用彈出式視窗顯示訊息,接著設置seesion變數,最後進行轉址.
1018
	#回傳的結果:
1018
	#回傳的結果:
1019
	#$result["status"],執行是否成功,"true"代表成功,"false"代表不成功.
1019
	#$result["status"],執行是否成功,"true"代表成功,"false"代表不成功.
Line 1031... Line 1031...
1031
	#$conf["sessionValue"]=array("");
1031
	#$conf["sessionValue"]=array("");
1032
	#參考資料:
1032
	#參考資料:
1033
	#http://php.net/manual/en/reserved.variables.server.php
1033
	#http://php.net/manual/en/reserved.variables.server.php
1034
	#備註:
1034
	#備註:
1035
	#無.
1035
	#無.
1036
	*/	
1036
	*/
1037
	public static function redirectionAfterAlertWindows(&$conf){
1037
	public static function redirectionAfterAlertWindows(&$conf){
1038
		
1038
 
1039
		#初始話要回傳的變數
1039
		#初始話要回傳的變數
1040
		$result=array();
1040
		$result=array();
1041
		
1041
 
1042
		#記錄當前執行的函數
1042
		#記錄當前執行的函數
1043
		$result["function"]=__FUNCTION__;
1043
		$result["function"]=__FUNCTION__;
1044
		
1044
 
1045
		#如果 $conf 不為陣列
1045
		#如果 $conf 不為陣列
1046
		if(gettype($conf)!="array"){
1046
		if(gettype($conf)!="array"){
1047
			
1047
 
1048
			#設置執行失敗
1048
			#設置執行失敗
1049
			$result["status"]="false";
1049
			$result["status"]="false";
1050
			
1050
 
1051
			#設置執行錯誤訊息
1051
			#設置執行錯誤訊息
1052
			$result["error"][]="\$conf變數須為陣列形態";
1052
			$result["error"][]="\$conf變數須為陣列形態";
1053
 
1053
 
1054
			#如果傳入的參數為 null
1054
			#如果傳入的參數為 null
1055
			if($conf==null){
1055
			if($conf==null){
1056
				
1056
 
1057
				#設置執行錯誤訊息
1057
				#設置執行錯誤訊息
1058
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
1058
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
1059
				
1059
 
1060
				}#if end
1060
				}#if end
1061
 
1061
 
1062
			#回傳結果
1062
			#回傳結果
1063
			return $result;
1063
			return $result;
1064
			
1064
 
1065
			}#if end
1065
			}#if end
1066
		
1066
 
1067
		#檢查參數
1067
		#檢查參數
1068
		#函式說明:
1068
		#函式說明:
1069
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
1069
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
1070
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
1070
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
1071
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
1071
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
Line 1080... Line 1080...
1080
		#必填寫的參數:
1080
		#必填寫的參數:
1081
		#$conf["variableCheck::checkArguments"]["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
1081
		#$conf["variableCheck::checkArguments"]["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
1082
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
1082
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
1083
		#$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
1083
		#$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
1084
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("headerLocation","alertMessage");
1084
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("headerLocation","alertMessage");
1085
		#$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object"); 
1085
		#$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object");
1086
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","array");
1086
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","array");
1087
		#$conf["variableCheck::checkArguments"]["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
1087
		#$conf["variableCheck::checkArguments"]["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
1088
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
1088
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
1089
		#可以省略的參數:
1089
		#可以省略的參數:
1090
		#$conf["variableCheck::checkArguments"]["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
1090
		#$conf["variableCheck::checkArguments"]["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
1091
		#$conf["variableCheck::checkArguments"]["canBeEmptyString"]="false";
1091
		#$conf["variableCheck::checkArguments"]["canBeEmptyString"]="false";
1092
		#$conf["variableCheck::checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
1092
		#$conf["variableCheck::checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
1093
		$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("sessionName","sessionValue");
1093
		$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("sessionName","sessionValue");
1094
		#$conf["variableCheck::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
1094
		#$conf["variableCheck::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
1095
		$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("array","array");
1095
		$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("array","array");
1096
		#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
1096
		#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
1097
		$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null);
1097
		$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null);
1098
		#$conf["variableCheck::checkArguments"]["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
1098
		#$conf["variableCheck::checkArguments"]["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
1099
		$conf["variableCheck::checkArguments"]["arrayCountEqualCheck"][]=array("sessionName","sessionValue");
1099
		$conf["variableCheck::checkArguments"]["arrayCountEqualCheck"][]=array("sessionName","sessionValue");
1100
		#參考資料來源:
1100
		#參考資料來源:
1101
		#array_keys=>http://php.net/manual/en/function.array-keys.php
1101
		#array_keys=>http://php.net/manual/en/function.array-keys.php
1102
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
1102
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
1103
		unset($conf["variableCheck::checkArguments"]);
1103
		unset($conf["variableCheck::checkArguments"]);
1104
					
1104
 
1105
		#如果 檢查出錯
1105
		#如果 檢查出錯
1106
		if($checkResult["status"]=="false"){
1106
		if($checkResult["status"]=="false"){
1107
			
1107
 
1108
			#設置執行失敗
1108
			#設置執行失敗
1109
			$result["status"]="false";
1109
			$result["status"]="false";
1110
			
1110
 
1111
			#設置錯誤訊息
1111
			#設置錯誤訊息
1112
			$result["error"]=$checkResult;
1112
			$result["error"]=$checkResult;
1113
			
1113
 
1114
			#回傳結果
1114
			#回傳結果
1115
			return $result;
1115
			return $result;
1116
			
1116
 
1117
			}#if end
1117
			}#if end
1118
			
1118
 
1119
		#如果 檢查 不通過
1119
		#如果 檢查 不通過
1120
		if($checkResult["passed"]=="false"){
1120
		if($checkResult["passed"]=="false"){
1121
			
1121
 
1122
			#設置執行失敗
1122
			#設置執行失敗
1123
			$result["status"]="false";
1123
			$result["status"]="false";
1124
			
1124
 
1125
			#設置錯誤訊息
1125
			#設置錯誤訊息
1126
			$result["error"]=$checkResult;
1126
			$result["error"]=$checkResult;
1127
			
1127
 
1128
			#回傳結果
1128
			#回傳結果
1129
			return $result;
1129
			return $result;
1130
			
1130
 
1131
			}#if end
1131
			}#if end
1132
					
1132
 
1133
		#初始化要顯示的彈出式視窗內容
1133
		#初始化要顯示的彈出式視窗內容
1134
		$msg="";
1134
		$msg="";
1135
				
1135
 
1136
		#將 $conf["alertMessage"] 中 每個元素視為 $lineContent
1136
		#將 $conf["alertMessage"] 中 每個元素視為 $lineContent
1137
		foreach($conf["alertMessage"] as $lineContent){
1137
		foreach($conf["alertMessage"] as $lineContent){
1138
			
1138
 
1139
			#結尾加換行符號
1139
			#結尾加換行符號
1140
			$msg=$msg.$lineContent."\\n";
1140
			$msg=$msg.$lineContent."\\n";
1141
			
1141
 
1142
			}#foreach end 
1142
			}#foreach end
1143
						
1143
 
1144
		#函式說明:
1144
		#函式說明:
1145
		#彈出視窗
1145
		#彈出視窗
1146
		#回傳的結果:
1146
		#回傳的結果:
1147
		#$result["status"],執行正確與否,"true"為執行正確,"false"為執行失敗.
1147
		#$result["status"],執行正確與否,"true"為執行正確,"false"為執行失敗.
1148
		#$result["error"],錯誤訊息陣列.
1148
		#$result["error"],錯誤訊息陣列.
1149
		#$result["content"],avaScript語法.
1149
		#$result["content"],avaScript語法.
1150
		#必填的參數
1150
		#必填的參數
1151
		$conf["javaScript"]["alertWindow"]["alertSentence"]=$msg;#爲要彈出式視窗的內容。
1151
		$conf["javaScript"]["alertWindow"]["alertSentence"]=$msg;#爲要彈出式視窗的內容。
1152
		$javaScript=javaScript::alertWindow($conf["javaScript"]["alertWindow"]);
1152
		$javaScript=javaScript::alertWindow($conf["javaScript"]["alertWindow"]);
1153
		unset($conf["javaScript"]);
1153
		unset($conf["javaScript"]);
1154
		
1154
 
1155
		#如果 $javaScript["status"] 等於 "false"
1155
		#如果 $javaScript["status"] 等於 "false"
1156
		if($javaScript["status"]=="false"){
1156
		if($javaScript["status"]=="false"){
1157
			
1157
 
1158
			#設置執行失敗
1158
			#設置執行失敗
1159
			$result["status"]="false";
1159
			$result["status"]="false";
1160
			
1160
 
1161
			#設置錯誤訊息
1161
			#設置錯誤訊息
1162
			$result["error"]=$javaScript;
1162
			$result["error"]=$javaScript;
1163
			
1163
 
1164
			#回傳結果
1164
			#回傳結果
1165
			return $result;
1165
			return $result;
1166
			
1166
 
1167
			}#if end
1167
			}#if end
1168
		
1168
 
1169
		#印出javaScript
1169
		#印出javaScript
1170
		echo $javaScript["content"];
1170
		echo $javaScript["content"];
1171
	
1171
 
1172
		#如果 $conf["sessionName"] 參數存在 
1172
		#如果 $conf["sessionName"] 參數存在
1173
		if(isset($conf["sessionName"])){
1173
		if(isset($conf["sessionName"])){
1174
			
1174
 
1175
			#$conf["sessionName"]有幾個元素就執行幾次
1175
			#$conf["sessionName"]有幾個元素就執行幾次
1176
			for($i=0;$i<count($conf["sessionName"]);$i++){
1176
			for($i=0;$i<count($conf["sessionName"]);$i++){
1177
				
1177
 
1178
				#設置session變數
1178
				#設置session變數
1179
				#函式說明:
1179
				#函式說明:
1180
				#建立session變數,並指派其內容
1180
				#建立session變數,並指派其內容
1181
				#回傳的結果:
1181
				#回傳的結果:
1182
				#$result["status"],執行狀態,"true"代表執行成功;"false"代表執行失敗。
1182
				#$result["status"],執行狀態,"true"代表執行成功;"false"代表執行失敗。
1183
				#$result["error"],錯誤訊息陣列
1183
				#$result["error"],錯誤訊息陣列
1184
				#必填參數:
1184
				#必填參數:
1185
				$conf["session"]["create"]["sessionName"]=$conf["sessionName"][$i];#要建立的session變數名稱,建議可採用name1.name2.name3的格式。
1185
				$conf["session"]["create"]["sessionName"]=$conf["sessionName"][$i];#要建立的session變數名稱,建議可採用name1.name2.name3的格式。
1186
				#可省略的參數: 
1186
				#可省略的參數:
1187
				$conf["session"]["create"]["sessionValue"]=$conf["sessionValue"][$i];#session變數的內容要存放什麼呢? 
1187
				$conf["session"]["create"]["sessionValue"]=$conf["sessionValue"][$i];#session變數的內容要存放什麼呢?
1188
				$createSessionResult=session::create($conf["session"]["create"]);
1188
				$createSessionResult=session::create($conf["session"]["create"]);
1189
				unset($conf["session"]);
1189
				unset($conf["session"]);
1190
				
1190
 
1191
				#如果 $createSessionResult["status"] 等於 "false"
1191
				#如果 $createSessionResult["status"] 等於 "false"
1192
				if($createSessionResult["status"]=="false"){
1192
				if($createSessionResult["status"]=="false"){
1193
					
1193
 
1194
					#設置執行失敗
1194
					#設置執行失敗
1195
					$result["status"]="false";
1195
					$result["status"]="false";
1196
					
1196
 
1197
					#設置錯誤訊息
1197
					#設置錯誤訊息
1198
					$result["error"]=$createSessionResult;
1198
					$result["error"]=$createSessionResult;
1199
					
1199
 
1200
					#回傳結果
1200
					#回傳結果
1201
					return $result;
1201
					return $result;
1202
					
1202
 
1203
					}#if end
1203
					}#if end
1204
				
1204
 
1205
				}#for end
1205
				}#for end
1206
			
1206
 
1207
			}#if end
1207
			}#if end
1208
		
1208
 
1209
		#函式說明:
1209
		#函式說明:
1210
		#設定網頁n秒後轉址
1210
		#設定網頁n秒後轉址
1211
		#必填參數:
1211
		#必填參數:
1212
		$conf["header"]["redirection"]["redirctionLocation"]=$conf["headerLocation"];#為要轉址到的地方
1212
		$conf["header"]["redirection"]["redirctionLocation"]=$conf["headerLocation"];#為要轉址到的地方
1213
			#若爲 $SERVER["PHP_SELF"],則爲回到目前頁面。
1213
			#若爲 $SERVER["PHP_SELF"],則爲回到目前頁面。
1214
		$conf["header"]["redirection"]["interval"]="0";#幾秒後轉向,"0"為等待javacript程式執行完後再立即轉址。
1214
		$conf["header"]["redirection"]["interval"]="0";#幾秒後轉向,"0"為等待javacript程式執行完後再立即轉址。
1215
		header::redirection($conf["header"]["redirection"]);
1215
		header::redirection($conf["header"]["redirection"]);
1216
		unset($conf["header"]);
1216
		unset($conf["header"]);
1217
					
1217
 
1218
		#執行到這邊代表不正常
1218
		#執行到這邊代表不正常
1219
		
1219
 
1220
		#設置執行失敗
1220
		#設置執行失敗
1221
		$result["status"]="false";
1221
		$result["status"]="false";
1222
					
1222
 
1223
		#設置錯誤訊息
1223
		#設置錯誤訊息
1224
		$result["error"][]="非預期的錯誤";
1224
		$result["error"][]="非預期的錯誤";
1225
					
1225
 
1226
		#回傳結果
1226
		#回傳結果
1227
		return $result;			
1227
		return $result;
1228
					
1228
 
1229
		}#function redirectionAfterAlertWindows end 
1229
		}#function redirectionAfterAlertWindows end
1230
 
1230
 
1231
	/*
1231
	/*
1232
	#函式說明:
1232
	#函式說明:
1233
	#接收表單變數後,轉存成session變數後,立即轉址.
1233
	#接收表單變數後,轉存成session變數後,立即轉址.
1234
	#回傳的結果:
1234
	#回傳的結果:
Line 1246... Line 1246...
1246
	$conf["redirectionTo"]="";
1246
	$conf["redirectionTo"]="";
1247
	#可省略參數:
1247
	#可省略參數:
1248
	#$conf["receiveFormMethod"],字串,傳送過來的資料是用"post/POST"還是"get/GET",預設為"post"
1248
	#$conf["receiveFormMethod"],字串,傳送過來的資料是用"post/POST"還是"get/GET",預設為"post"
1249
	#$conf["receiveFormMethod"]="post";
1249
	#$conf["receiveFormMethod"]="post";
1250
	#$conf["additionSessionName"]字串陣列,額外指派的session變數名稱.
1250
	#$conf["additionSessionName"]字串陣列,額外指派的session變數名稱.
1251
	#$conf["additionSessionName"]=array(""); 
1251
	#$conf["additionSessionName"]=array("");
1252
	#$conf["additionSessionValue"]字串陣列,可額外指派的session變數的內容.
1252
	#$conf["additionSessionValue"]字串陣列,可額外指派的session變數的內容.
1253
	#$conf["additionSessionValue"]=array("");
1253
	#$conf["additionSessionValue"]=array("");
1254
	#參考資料:
1254
	#參考資料:
1255
	#無.
1255
	#無.
1256
	#備註:
1256
	#備註:
1257
	#無.
1257
	#無.
1258
	*/
1258
	*/
1259
	public static function formVarToSessionThenRedirection(&$conf){
1259
	public static function formVarToSessionThenRedirection(&$conf){
1260
		
1260
 
1261
		#設置要回傳的結果
1261
		#設置要回傳的結果
1262
		$result=array();
1262
		$result=array();
1263
		
1263
 
1264
		#設置當前執行的函數
1264
		#設置當前執行的函數
1265
		$result["function"]=__FUNCTION__;
1265
		$result["function"]=__FUNCTION__;
1266
		
1266
 
1267
		#如果 $conf 不為陣列
1267
		#如果 $conf 不為陣列
1268
		if(gettype($conf)!="array"){
1268
		if(gettype($conf)!="array"){
1269
			
1269
 
1270
			#設置執行失敗
1270
			#設置執行失敗
1271
			$result["status"]="false";
1271
			$result["status"]="false";
1272
			
1272
 
1273
			#設置執行錯誤訊息
1273
			#設置執行錯誤訊息
1274
			$result["error"][]="\$conf變數須為陣列形態";
1274
			$result["error"][]="\$conf變數須為陣列形態";
1275
 
1275
 
1276
			#如果傳入的參數為 null
1276
			#如果傳入的參數為 null
1277
			if($conf==null){
1277
			if($conf==null){
1278
				
1278
 
1279
				#設置執行錯誤訊息
1279
				#設置執行錯誤訊息
1280
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
1280
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
1281
				
1281
 
1282
				}#if end
1282
				}#if end
1283
 
1283
 
1284
			#回傳結果
1284
			#回傳結果
1285
			return $result;
1285
			return $result;
1286
			
1286
 
1287
			}#if end
1287
			}#if end
1288
			
1288
 
1289
		#設置要回傳的語法
1289
		#設置要回傳的語法
1290
		$result["content"]="";
1290
		$result["content"]="";
1291
		
1291
 
1292
		#檢查參數
1292
		#檢查參數
1293
		#函式說明:
1293
		#函式說明:
1294
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
1294
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
1295
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
1295
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
1296
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
1296
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
Line 1305... Line 1305...
1305
		#必填寫的參數:
1305
		#必填寫的參數:
1306
		#$conf["variableCheck::checkArguments"]["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
1306
		#$conf["variableCheck::checkArguments"]["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
1307
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
1307
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
1308
		#$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
1308
		#$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
1309
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("receivedVarName","limitPrePage","sessionName","redirectionTo");
1309
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("receivedVarName","limitPrePage","sessionName","redirectionTo");
1310
		#$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object"); 
1310
		#$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object");
1311
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("array","array","array","string",);
1311
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("array","array","array","string",);
1312
		#$conf["variableCheck::checkArguments"]["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
1312
		#$conf["variableCheck::checkArguments"]["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
1313
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
1313
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
1314
		#可以省略的參數:
1314
		#可以省略的參數:
1315
		#$conf["variableCheck::checkArguments"]["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
1315
		#$conf["variableCheck::checkArguments"]["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
1316
		#$conf["variableCheck::checkArguments"]["canBeEmptyString"]="false";
1316
		#$conf["variableCheck::checkArguments"]["canBeEmptyString"]="false";
1317
		#$conf["variableCheck::checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
1317
		#$conf["variableCheck::checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
1318
		$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("receiveFormMethod","additionSessionName","additionSessionValue");
1318
		$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("receiveFormMethod","additionSessionName","additionSessionValue");
1319
		#$conf["variableCheck::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
1319
		#$conf["variableCheck::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
1320
		$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","array","array");
1320
		$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","array","array");
1321
		#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
1321
		#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
1322
		$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array("post",null,null);
1322
		$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array("post",null,null);
1323
		#$conf["variableCheck::checkArguments"]["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
1323
		#$conf["variableCheck::checkArguments"]["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
1324
		$conf["variableCheck::checkArguments"]["arrayCountEqualCheck"][]=array("sessionName","sessionValue");
1324
		$conf["variableCheck::checkArguments"]["arrayCountEqualCheck"][]=array("sessionName","sessionValue");
1325
		$conf["variableCheck::checkArguments"]["arrayCountEqualCheck"][]=array("additionSessionName","additionSessionValue");
1325
		$conf["variableCheck::checkArguments"]["arrayCountEqualCheck"][]=array("additionSessionName","additionSessionValue");
1326
		#參考資料來源:
1326
		#參考資料來源:
1327
		#array_keys=>http://php.net/manual/en/function.array-keys.php
1327
		#array_keys=>http://php.net/manual/en/function.array-keys.php
1328
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
1328
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
1329
		unset($conf["variableCheck::checkArguments"]);
1329
		unset($conf["variableCheck::checkArguments"]);
1330
					
1330
 
1331
		#如果 檢查出錯
1331
		#如果 檢查出錯
1332
		if($checkResult["status"]=="false"){
1332
		if($checkResult["status"]=="false"){
1333
			
1333
 
1334
			#設置執行失敗
1334
			#設置執行失敗
1335
			$result["status"]="false";
1335
			$result["status"]="false";
1336
			
1336
 
1337
			#設置錯誤訊息
1337
			#設置錯誤訊息
1338
			$result["error"]=$checkResult;
1338
			$result["error"]=$checkResult;
1339
			
1339
 
1340
			#回傳結果
1340
			#回傳結果
1341
			return $result;
1341
			return $result;
1342
			
1342
 
1343
			}#if end
1343
			}#if end
1344
			
1344
 
1345
		#如果 檢查 不通過
1345
		#如果 檢查 不通過
1346
		if($checkResult["passed"]=="false"){
1346
		if($checkResult["passed"]=="false"){
1347
			
1347
 
1348
			#設置執行失敗
1348
			#設置執行失敗
1349
			$result["status"]="false";
1349
			$result["status"]="false";
1350
			
1350
 
1351
			#設置錯誤訊息
1351
			#設置錯誤訊息
1352
			$result["error"]=$checkResult;
1352
			$result["error"]=$checkResult;
1353
			
1353
 
1354
			#回傳結果
1354
			#回傳結果
1355
			return $result;
1355
			return $result;
1356
			
1356
 
1357
			}#if end
1357
			}#if end
1358
		
1358
 
1359
		#函式說明:
1359
		#函式說明:
1360
		#可以處理多個透過GET、POST而來的資訊,儲存成變數,同時限定傳送的方法、來源,來增加安全性,檢查有沒有皆收到必須要接收到的變數
1360
		#可以處理多個透過GET、POST而來的資訊,儲存成變數,同時限定傳送的方法、來源,來增加安全性,檢查有沒有皆收到必須要接收到的變數
1361
		#回傳的結果:
1361
		#回傳的結果:
1362
		#$result["status"],執行是否成功,"true"代表執行成功;"false"代表執行失敗.
1362
		#$result["status"],執行是否成功,"true"代表執行成功;"false"代表執行失敗.
1363
		#$result["function"],當前執行的函數.
1363
		#$result["function"],當前執行的函數.
Line 1388... Line 1388...
1388
		#伺服器端的變數 -> http://php.net/manual/en/reserved.variables.server.php
1388
		#伺服器端的變數 -> http://php.net/manual/en/reserved.variables.server.php
1389
		#備註:
1389
		#備註:
1390
		#表單變數的名稱若含有「.」,則會變成「-」。
1390
		#表單變數的名稱若含有「.」,則會變成「-」。
1391
		$receiveVar=form::responseMultiInputDataSecurityEnhance($conf["form.responseMultiInputDataSecurityEnhance"]);
1391
		$receiveVar=form::responseMultiInputDataSecurityEnhance($conf["form.responseMultiInputDataSecurityEnhance"]);
1392
		unset($conf["form.responseMultiInputDataSecurityEnhance"]);
1392
		unset($conf["form.responseMultiInputDataSecurityEnhance"]);
1393
		
1393
 
1394
		#如果接收變數失敗
1394
		#如果接收變數失敗
1395
		if($receiveVar["status"]=="false"){
1395
		if($receiveVar["status"]=="false"){
1396
			
1396
 
1397
			#設置錯誤
1397
			#設置錯誤
1398
			$result["status"]="false";
1398
			$result["status"]="false";
1399
			
1399
 
1400
			#設置錯誤訊息
1400
			#設置錯誤訊息
1401
			$result["error"]=$receiveVar;
1401
			$result["error"]=$receiveVar;
1402
			
1402
 
1403
			#回傳結果
1403
			#回傳結果
1404
			return $result;
1404
			return $result;
1405
			
1405
 
1406
			}#if end
1406
			}#if end
1407
		
1407
 
1408
		#如果變數有缺
1408
		#如果變數有缺
1409
		if($receiveVar["passed"]=="false"){
1409
		if($receiveVar["passed"]=="false"){
1410
			
1410
 
1411
			#設置錯誤
1411
			#設置錯誤
1412
			$result["status"]="false";
1412
			$result["status"]="false";
1413
			
1413
 
1414
			#設置錯誤訊息
1414
			#設置錯誤訊息
1415
			$result["error"]=$receiveVar;
1415
			$result["error"]=$receiveVar;
1416
			
1416
 
1417
			#回傳結果
1417
			#回傳結果
1418
			return $result;
1418
			return $result;
1419
			
1419
 
1420
			}#if end
1420
			}#if end
1421
			
1421
 
1422
		#$conf["additionSessionName"]字串陣列,額外指派的session變數名稱.
1422
		#$conf["additionSessionName"]字串陣列,額外指派的session變數名稱.
1423
		#$conf["additionsessionName"]=array(""); 
1423
		#$conf["additionsessionName"]=array("");
1424
		#$conf["additionSessionValue"]字串陣列,可額外指派的session變數的內容.
1424
		#$conf["additionSessionValue"]字串陣列,可額外指派的session變數的內容.
1425
		#$conf["additionSessionValue"]=array("");	
1425
		#$conf["additionSessionValue"]=array("");
1426
			
1426
 
1427
		#如果有設置要另外設置的seesion變數
1427
		#如果有設置要另外設置的seesion變數
1428
		if(isset($conf["additionSessionName"]) && isset($conf["additionSessionValue"])){
1428
		if(isset($conf["additionSessionName"]) && isset($conf["additionSessionValue"])){
1429
			
1429
 
1430
			#函式說明:
1430
			#函式說明:
1431
			#建立多個session變數
1431
			#建立多個session變數
1432
			#回傳結果:
1432
			#回傳結果:
1433
			#$result["status"],執行狀態,"true"代表執行成功;"false"代表執行失敗.
1433
			#$result["status"],執行狀態,"true"代表執行成功;"false"代表執行失敗.
1434
			#$reuslt["function"],當前執行的函數.
1434
			#$reuslt["function"],當前執行的函數.
Line 1440... Line 1440...
1440
			$conf["session.createMulti"]["sessionArrayValue"]=$conf["additionSessionValue"];
1440
			$conf["session.createMulti"]["sessionArrayValue"]=$conf["additionSessionValue"];
1441
			#可省略參數:
1441
			#可省略參數:
1442
			#無
1442
			#無
1443
			$additionSessionCreateResult=session::createMulti($conf["session.createMulti"]);
1443
			$additionSessionCreateResult=session::createMulti($conf["session.createMulti"]);
1444
			unset($conf["session.createMulti"]);
1444
			unset($conf["session.createMulti"]);
1445
			
1445
 
1446
			#如果建立session變數失敗
1446
			#如果建立session變數失敗
1447
			if($additionSessionCreateResult["status"]=="false"){
1447
			if($additionSessionCreateResult["status"]=="false"){
1448
				
1448
 
1449
				#設置錯誤
1449
				#設置錯誤
1450
				$result["status"]="false";
1450
				$result["status"]="false";
1451
				
1451
 
1452
				#設置錯誤訊息
1452
				#設置錯誤訊息
1453
				$result["error"]=$additionSessionCreateResult;
1453
				$result["error"]=$additionSessionCreateResult;
1454
				
1454
 
1455
				#回傳結果
1455
				#回傳結果
1456
				return $result;
1456
				return $result;
1457
				
1457
 
1458
				}#if end
1458
				}#if end
1459
			
1459
 
1460
			}#if end	
1460
			}#if end
1461
			
1461
 
1462
		#初始化要轉存成session的表單變數內容
1462
		#初始化要轉存成session的表單變數內容
1463
		$formToSessionVarValue=array();
1463
		$formToSessionVarValue=array();
1464
		
1464
 
1465
		#針對每個要接收的變數
1465
		#針對每個要接收的變數
1466
		for($i=0;$i<count($conf["receivedVarName"]);$i++){
1466
		for($i=0;$i<count($conf["receivedVarName"]);$i++){
1467
			
1467
 
1468
			#取得要轉存成session變數的數值
1468
			#取得要轉存成session變數的數值
1469
			$formToSessionVarValue[]=$receiveVar["inputDataContent"][$conf["receivedVarName"][$i]];
1469
			$formToSessionVarValue[]=$receiveVar["inputDataContent"][$conf["receivedVarName"][$i]];
1470
			
1470
 
1471
			}#for end
1471
			}#for end
1472
			
1472
 
1473
		#設置session變數並轉址
1473
		#設置session變數並轉址
1474
		#函式說明:
1474
		#函式說明:
1475
		#設定session變數後,立即轉址.
1475
		#設定session變數後,立即轉址.
1476
		#回傳的結果:
1476
		#回傳的結果:
1477
		#$result["status"],執行是否成功,"true"代表成功,"false"代表不成功.
1477
		#$result["status"],執行是否成功,"true"代表成功,"false"代表不成功.
Line 1486... Line 1486...
1486
		$conf["header.redirectionNow"]["sessionValue"]=$formToSessionVarValue;
1486
		$conf["header.redirectionNow"]["sessionValue"]=$formToSessionVarValue;
1487
		#參靠資料來源:
1487
		#參靠資料來源:
1488
		#http://php.net/manual/en/reserved.variables.server.php
1488
		#http://php.net/manual/en/reserved.variables.server.php
1489
		$redirectionResult=header::redirectionNow($conf["header.redirectionNow"]);
1489
		$redirectionResult=header::redirectionNow($conf["header.redirectionNow"]);
1490
		unset($conf["header.redirectionNow"]);
1490
		unset($conf["header.redirectionNow"]);
1491
		
1491
 
1492
		#如果轉址失敗
1492
		#如果轉址失敗
1493
		if($redirectionResult["status"]=="false"){
1493
		if($redirectionResult["status"]=="false"){
1494
			
1494
 
1495
			#設置錯誤
1495
			#設置錯誤
1496
			$result["status"]="false";
1496
			$result["status"]="false";
1497
			
1497
 
1498
			#設置錯誤訊息
1498
			#設置錯誤訊息
1499
			$result["error"]=$redirectionResult;
1499
			$result["error"]=$redirectionResult;
1500
			
1500
 
1501
			#回傳結果
1501
			#回傳結果
1502
			return $result;
1502
			return $result;
1503
			
1503
 
1504
			}#if end
1504
			}#if end
1505
			
1505
 
1506
		#執行到這邊代表執行不正常
1506
		#執行到這邊代表執行不正常
1507
		$result["status"]="false";
1507
		$result["status"]="false";
1508
		
1508
 
1509
		#設置錯誤訊息
1509
		#設置錯誤訊息
1510
		$result["error"][]="不可預期的錯誤";
1510
		$result["error"][]="不可預期的錯誤";
1511
		
1511
 
1512
		#回傳結果
1512
		#回傳結果
1513
		return $result;
1513
		return $result;
1514
		
1514
 
1515
		}#function formVarToSessionThenRedirection end
1515
		}#function formVarToSessionThenRedirection end
1516
	
1516
 
1517
	/*
1517
	/*
1518
	#函式說明:
1518
	#函式說明:
1519
	#取得apache接收到的header
1519
	#取得apache接收到的header
1520
	#回傳結果:
1520
	#回傳結果:
1521
	#$result["status"],執行成功與否,"true"代表成功,"false"代表失敗.
1521
	#$result["status"],執行成功與否,"true"代表成功,"false"代表失敗.
1522
	#$result["content"],取得的header陣列.
1522
	#$result["content"],取得的header陣列.
1523
	#$result["function"],當前執行的函數名稱.
1523
	#$result["function"],當前執行的函數名稱.
1524
	#必填參數:
1524
	#必填參數:
1525
	#無
1525
	#無
1526
	#可省略參數:
1526
	#可省略參數:
1527
	#無 
1527
	#無
1528
	#參考資料:
1528
	#參考資料:
1529
	#無.
1529
	#無.
1530
	#備註:
1530
	#備註:
1531
	#無.
1531
	#無.
1532
	*/
1532
	*/
1533
	public static function getReceivedHeaders(){
1533
	public static function getReceivedHeaders(){
1534
		
1534
 
1535
		#設置要回傳的結果
1535
		#設置要回傳的結果
1536
		$result=array();
1536
		$result=array();
1537
		
1537
 
1538
		#設置當前執行的函數
1538
		#設置當前執行的函數
1539
		$result["function"]=__FUNCTION__;
1539
		$result["function"]=__FUNCTION__;
1540
		
1540
 
1541
		#存放 header 的變數
1541
		#存放 header 的變數
1542
		$result["content"]=array();
1542
		$result["content"]=array();
1543
		
1543
 
1544
		#fix centos8 stream with php56
1544
		#fix centos8 stream with php56
1545
		#如果沒有 apache_request_headers 函式
1545
		#如果沒有 apache_request_headers 函式
1546
		if(!function_exists("apache_request_headers"))
1546
		if(!function_exists("apache_request_headers"))
1547
		{
1547
		{
1548
			#針對每個 $_SERVER 變數
1548
			#針對每個 $_SERVER 變數
1549
			foreach($_SERVER as $name => $val)
1549
			foreach($_SERVER as $name => $val)
1550
			{
1550
			{
1551
				#設置關鍵字
1551
				#設置關鍵字
1552
				$keyWord="HTTP";
1552
				$keyWord="HTTP";
1553
			
1553
 
1554
				#如果 key 是 HTTP 開頭
1554
				#如果 key 是 HTTP 開頭
1555
				if(strpos($name,$keyWord)===0)
1555
				if(strpos($name,$keyWord)===0)
1556
				{				
1556
				{
1557
					#將 HTTP 開頭字串剔除
1557
					#將 HTTP 開頭字串剔除
1558
					#函式說明:
1558
					#函式說明:
1559
					#將字串特定關鍵字與其前面的內容剔除
1559
					#將字串特定關鍵字與其前面的內容剔除
1560
					#回傳結果:
1560
					#回傳結果:
1561
					#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
1561
					#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
1562
					#$result["error"],錯誤訊息陣列.
1562
					#$result["error"],錯誤訊息陣列.
1563
					#$result["warning"],警告訊息鎮列.
1563
					#$result["warning"],警告訊息鎮列.
1564
					#$result["founded"],有無找到定字串"true"代表有,"false"代表沒有.
1564
					#$result["founded"],有無找到定字串"true"代表有,"false"代表沒有.
1565
					#$result["function"],當前執行的函數名稱.
1565
					#$result["function"],當前執行的函數名稱.
1566
					#$result["oriStr"],要處理的原始字串內容.
1566
					#$result["oriStr"],要處理的原始字串內容.
1567
					#$result["content"],處理好的的字串內容.	
1567
					#$result["content"],處理好的的字串內容.
1568
					#必填參數:
1568
					#必填參數:
1569
					#$conf["stringIn"],字串,要處理的字串.
1569
					#$conf["stringIn"],字串,要處理的字串.
1570
					$conf["stringProcess::delStrBeforeKeyWord"]["stringIn"]=$name;
1570
					$conf["stringProcess::delStrBeforeKeyWord"]["stringIn"]=$name;
1571
					#$conf["keyWord"],字串,特定字串.
1571
					#$conf["keyWord"],字串,特定字串.
1572
					$conf["stringProcess::delStrBeforeKeyWord"]["keyWord"]=$keyWord;
1572
					$conf["stringProcess::delStrBeforeKeyWord"]["keyWord"]=$keyWord;
1573
					$delStrBeforeKeyWord=stringProcess::delStrBeforeKeyWord($conf["stringProcess::delStrBeforeKeyWord"]);
1573
					$delStrBeforeKeyWord=stringProcess::delStrBeforeKeyWord($conf["stringProcess::delStrBeforeKeyWord"]);
1574
					unset($conf["stringProcess::delStrBeforeKeyWord"]);
1574
					unset($conf["stringProcess::delStrBeforeKeyWord"]);
1575
				
1575
 
1576
					#如果處理失敗
1576
					#如果處理失敗
1577
					if($delStrBeforeKeyWord["status"]==="false")
1577
					if($delStrBeforeKeyWord["status"]==="false")
1578
					{
1578
					{
1579
					
1579
 
1580
						#執行到這邊代表執行不正常
1580
						#執行到這邊代表執行不正常
1581
						$result["status"]="false";
1581
						$result["status"]="false";
1582
						
1582
 
1583
						#設置錯誤訊息
1583
						#設置錯誤訊息
1584
						$result["error"]=$delStrBeforeKeyWord;
1584
						$result["error"]=$delStrBeforeKeyWord;
1585
						
1585
 
1586
						#回傳結果
1586
						#回傳結果
1587
						return $result;
1587
						return $result;
1588
					
1588
 
1589
					}#if end
1589
					}#if end
1590
					
1590
 
1591
					#取得 header
1591
					#取得 header
1592
					$result["content"][$delStrBeforeKeyWord["content"]]=$val;
1592
					$result["content"][$delStrBeforeKeyWord["content"]]=$val;
1593
				
1593
 
1594
				}#if end
1594
				}#if end
1595
			
1595
 
1596
			}#foreach end
1596
			}#foreach end
1597
		
1597
 
1598
		}#if end
1598
		}#if end
1599
		
1599
 
1600
		else
1600
		else
1601
		{
1601
		{
1602
		
1602
 
1603
			#取得 header
1603
			#取得 header
1604
			$result["content"]=@apache_request_headers();
1604
			$result["content"]=@apache_request_headers();
1605
		
1605
 
1606
		}#else end
1606
		}#else end
1607
		
1607
 
1608
		#如果取得 header 失敗
1608
		#如果取得 header 失敗
1609
		if($result["content"]===FALSE){
1609
		if($result["content"]===FALSE){
1610
			
1610
 
1611
			#執行到這邊代表執行不正常
1611
			#執行到這邊代表執行不正常
1612
			$result["status"]="false";
1612
			$result["status"]="false";
1613
			
1613
 
1614
			#設置錯誤訊息
1614
			#設置錯誤訊息
1615
			$result["error"][]="不可預期的錯誤";
1615
			$result["error"][]="不可預期的錯誤";
1616
			
1616
 
1617
			#回傳結果
1617
			#回傳結果
1618
			return $result;
1618
			return $result;
1619
			
1619
 
1620
			}#if end
1620
			}#if end
1621
			
1621
 
1622
		#執行到這邊代表執行正常
1622
		#執行到這邊代表執行正常
1623
		$result["status"]="true";
1623
		$result["status"]="true";
1624
		
1624
 
1625
		#回傳結果
1625
		#回傳結果
1626
		return $result;
1626
		return $result;
1627
		
1627
 
1628
		}#function getReceivedHeaders end
1628
		}#function getReceivedHeaders end
1629
		
1629
 
1630
	/*
1630
	/*
1631
	#函式說明:
1631
	#函式說明:
1632
	#依根接收到的表單變數內容,轉址到特定地方.
1632
	#依根接收到的表單變數內容,轉址到特定地方.
1633
	#回傳結果:
1633
	#回傳結果:
1634
	#$result["status"],執行是否成功,"true"代表成功,"false"代表不成功.
1634
	#$result["status"],執行是否成功,"true"代表成功,"false"代表不成功.
Line 1648... Line 1648...
1648
	#無.
1648
	#無.
1649
	#備註:
1649
	#備註:
1650
	#無.
1650
	#無.
1651
	*/
1651
	*/
1652
	public static function transferByFormVar(&$conf=array()){
1652
	public static function transferByFormVar(&$conf=array()){
1653
		
1653
 
1654
		#初始化要回傳的結果
1654
		#初始化要回傳的結果
1655
		$result=array();
1655
		$result=array();
1656
 
1656
 
1657
		#取得當前執行的函數名稱
1657
		#取得當前執行的函數名稱
1658
		$result["function"]=__FUNCTION__;
1658
		$result["function"]=__FUNCTION__;
1659
 
1659
 
1660
		#如果沒有參數
1660
		#如果沒有參數
1661
		if(func_num_args()==0){
1661
		if(func_num_args()==0){
1662
			
1662
 
1663
			#設置執行失敗
1663
			#設置執行失敗
1664
			$result["status"]="false";
1664
			$result["status"]="false";
1665
			
1665
 
1666
			#設置執行錯誤訊息
1666
			#設置執行錯誤訊息
1667
			$result["error"]="函數".$result["function"]."需要參數";
1667
			$result["error"]="函數".$result["function"]."需要參數";
1668
			
1668
 
1669
			#回傳結果
1669
			#回傳結果
1670
			return $result;
1670
			return $result;
1671
			
1671
 
1672
			}#if end
1672
			}#if end
1673
 
1673
 
1674
		#取得參數
1674
		#取得參數
1675
		$result["argu"]=$conf;
1675
		$result["argu"]=$conf;
1676
 
1676
 
1677
		#如果 $conf 不為陣列
1677
		#如果 $conf 不為陣列
1678
		if(gettype($conf)!=="array"){
1678
		if(gettype($conf)!=="array"){
1679
			
1679
 
1680
			#設置執行失敗
1680
			#設置執行失敗
1681
			$result["status"]="false";
1681
			$result["status"]="false";
1682
			
1682
 
1683
			#設置執行錯誤訊息
1683
			#設置執行錯誤訊息
1684
			$result["error"][]="\$conf變數須為陣列形態";
1684
			$result["error"][]="\$conf變數須為陣列形態";
1685
			
1685
 
1686
			#如果傳入的參數為 null
1686
			#如果傳入的參數為 null
1687
			if($conf===null){
1687
			if($conf===null){
1688
				
1688
 
1689
				#設置執行錯誤訊息
1689
				#設置執行錯誤訊息
1690
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
1690
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
1691
				
1691
 
1692
				}#if end
1692
				}#if end
1693
 
1693
 
1694
			#回傳結果
1694
			#回傳結果
1695
			return $result;
1695
			return $result;
1696
			
1696
 
1697
			}#if end
1697
			}#if end
1698
		
1698
 
1699
		#檢查參數
1699
		#檢查參數
1700
		#函式說明:
1700
		#函式說明:
1701
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
1701
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
1702
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
1702
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
1703
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
1703
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
Line 1709... Line 1709...
1709
		#必填寫的參數:
1709
		#必填寫的參數:
1710
		#$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
1710
		#$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
1711
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
1711
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
1712
		#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
1712
		#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
1713
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("varName","condition","headerLocation");
1713
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("varName","condition","headerLocation");
1714
		#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double"); 
1714
		#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double");
1715
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","array","array");
1715
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","array","array");
1716
		#$conf["variableCheck::checkArguments"]["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
1716
		#$conf["variableCheck::checkArguments"]["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
1717
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
1717
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
1718
		#可以省略的參數:
1718
		#可以省略的參數:
1719
		#$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
1719
		#$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
1720
		#$conf["variableCheck::checkArguments"]["canBeEmptyString"]="true";
1720
		#$conf["variableCheck::checkArguments"]["canBeEmptyString"]="true";
1721
		#$conf["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
1721
		#$conf["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
1722
		$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("limitPrePage");
1722
		$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("limitPrePage");
1723
		#$conf["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
1723
		#$conf["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
1724
		$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("array");
1724
		$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("array");
1725
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null代表不指定,若預設值是必填參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
1725
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null代表不指定,若預設值是必填參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
1726
		$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null);
1726
		$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null);
1727
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
1727
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
1728
		#$conf["variableCheck::checkArguments"]["arrayCountEqualCheck"][]=array();
1728
		#$conf["variableCheck::checkArguments"]["arrayCountEqualCheck"][]=array();
1729
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
1729
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
1730
		unset($conf["variableCheck::checkArguments"]);
1730
		unset($conf["variableCheck::checkArguments"]);
1731
		
1731
 
1732
		#如果檢查失敗
1732
		#如果檢查失敗
1733
		if($checkResult["status"]=="false"){
1733
		if($checkResult["status"]=="false"){
1734
			
1734
 
1735
			#設置執行不正常
1735
			#設置執行不正常
1736
			$result["status"]="false";
1736
			$result["status"]="false";
1737
			
1737
 
1738
			#設置錯誤訊息
1738
			#設置錯誤訊息
1739
			$result["error"]=$checkResult;
1739
			$result["error"]=$checkResult;
1740
			
1740
 
1741
			#回傳結果
1741
			#回傳結果
1742
			return $result;
1742
			return $result;
1743
			
1743
 
1744
			}#if end
1744
			}#if end
1745
			
1745
 
1746
		#如果檢查不通過
1746
		#如果檢查不通過
1747
		if($checkResult["passed"]=="false"){
1747
		if($checkResult["passed"]=="false"){
1748
			
1748
 
1749
			#設置執行不正常
1749
			#設置執行不正常
1750
			$result["status"]="false";
1750
			$result["status"]="false";
1751
			
1751
 
1752
			#設置錯誤訊息
1752
			#設置錯誤訊息
1753
			$result["error"]=$checkResult;
1753
			$result["error"]=$checkResult;
1754
			
1754
 
1755
			#回傳結果
1755
			#回傳結果
1756
			return $result;
1756
			return $result;
1757
			
1757
 
1758
			}#if end
1758
			}#if end
1759
		
1759
 
1760
		#函式說明:
1760
		#函式說明:
1761
		#可以處理多個透過GET、POST而來的資訊,儲存成變數,同時限定傳送的方法、來源,來增加安全性,檢查有沒有皆收到必須要接收到的變數,沒有接收到的變數可以指定從session變數中取得.
1761
		#可以處理多個透過GET、POST而來的資訊,儲存成變數,同時限定傳送的方法、來源,來增加安全性,檢查有沒有皆收到必須要接收到的變數,沒有接收到的變數可以指定從session變數中取得.
1762
		#回傳的結果:
1762
		#回傳的結果:
1763
		#$result["status"],執行正常與否,"true"代表正常,"false"代表不正常.
1763
		#$result["status"],執行正常與否,"true"代表正常,"false"代表不正常.
1764
		#$result["error"],錯誤訊息陣列.
1764
		#$result["error"],錯誤訊息陣列.
Line 1774... Line 1774...
1774
		#$conf["method"],字串,傳送過來的資料是用"post/POST"還是"get/GET"?
1774
		#$conf["method"],字串,傳送過來的資料是用"post/POST"還是"get/GET"?
1775
		$conf["form::responseMultiInputDataSecurityEnhance"]["method"]="post";
1775
		$conf["form::responseMultiInputDataSecurityEnhance"]["method"]="post";
1776
		#可省略的參數:
1776
		#可省略的參數:
1777
		#$conf["allowGet"],字串,是否要允許 get 傳值,"true",代表允許;"false" ,代表不允許,預設爲不允許.
1777
		#$conf["allowGet"],字串,是否要允許 get 傳值,"true",代表允許;"false" ,代表不允許,預設爲不允許.
1778
		#$conf["allowGet"]="true";
1778
		#$conf["allowGet"]="true";
1779
		
1779
 
1780
		#如果有設置 limitPrePage
1780
		#如果有設置 limitPrePage
1781
		if(isset($conf["limitPrePage"])){
1781
		if(isset($conf["limitPrePage"])){
1782
			
1782
 
1783
			#$conf["limitPrePage"],字串陣列,是否要限定前一頁的網址為哪些,才能接收內容,不符合則轉址.
1783
			#$conf["limitPrePage"],字串陣列,是否要限定前一頁的網址為哪些,才能接收內容,不符合則轉址.
1784
			$conf["form::responseMultiInputDataSecurityEnhance"]["limitPrePage"]=$conf["limitPrePage"];
1784
			$conf["form::responseMultiInputDataSecurityEnhance"]["limitPrePage"]=$conf["limitPrePage"];
1785
			
1785
 
1786
			}#if end
1786
			}#if end
1787
		
1787
 
1788
		#$conf["transferLocation"],字串,遇到get傳值,或前一個頁面不符合要求時要轉址到的頁面,預設爲資安素養網"https://isafe.moe.edu.tw/"
1788
		#$conf["transferLocation"],字串,遇到get傳值,或前一個頁面不符合要求時要轉址到的頁面,預設爲資安素養網"https://isafe.moe.edu.tw/"
1789
		#$conf["transferLocation"]="";
1789
		#$conf["transferLocation"]="";
1790
		#$conf["ignore"]=字串陣列,如果要接收的變數名稱與該陣列其一元素一樣,則不放進要回傳的變數裏面.
1790
		#$conf["ignore"]=字串陣列,如果要接收的變數名稱與該陣列其一元素一樣,則不放進要回傳的變數裏面.
1791
		#$conf["ignore"]=array();
1791
		#$conf["ignore"]=array();
1792
		#$conf["correctCharacter"]=,字串,如果爲"false",則不處理可能導致網頁出問題的字串,預設爲要進行處理.
1792
		#$conf["correctCharacter"]=,字串,如果爲"false",則不處理可能導致網頁出問題的字串,預設爲要進行處理.
1793
		#$conf["correctCharacter"]="false";
1793
		#$conf["correctCharacter"]="false";
1794
		#$conf["checkedVarName"],字串陣列,為檢查是否有接收到哪些變數.
1794
		#$conf["checkedVarName"],字串陣列,為檢查是否有接收到哪些變數.
1795
		$conf["form::responseMultiInputDataSecurityEnhance"]["checkedVarName"]=array($conf["varName"]); 
1795
		$conf["form::responseMultiInputDataSecurityEnhance"]["checkedVarName"]=array($conf["varName"]);
1796
		#$conf["canBeEmptyString"],字串,用$conf["checkedVarName"]指定接收的變數名稱陣列,若接收到的內容為空字串是否算有接收到內容,預設為"false","true"代表接收到的內容可以為空字串,"false"代表接收到的內容不可以為空字串.	
1796
		#$conf["canBeEmptyString"],字串,用$conf["checkedVarName"]指定接收的變數名稱陣列,若接收到的內容為空字串是否算有接收到內容,預設為"false","true"代表接收到的內容可以為空字串,"false"代表接收到的內容不可以為空字串.
1797
		#$conf["canBeEmptyString"]="false";
1797
		#$conf["canBeEmptyString"]="false";
1798
		#$conf["sessionNameArray"],陣列,若存在則代表若沒有從表單取得變數,則從session變數中取得內容,每個元素代表每個表單變數對應的session名稱,若不是要改用session方式取得變數內容的變數,請輸入null,數量請跟$conf["checkedVarName"]參數一致.
1798
		#$conf["sessionNameArray"],陣列,若存在則代表若沒有從表單取得變數,則從session變數中取得內容,每個元素代表每個表單變數對應的session名稱,若不是要改用session方式取得變數內容的變數,請輸入null,數量請跟$conf["checkedVarName"]參數一致.
1799
		#$conf["sessionNameArray"]=array();
1799
		#$conf["sessionNameArray"]=array();
1800
		#$conf["unsetSessionArray"],陣列,與$conf["sessionNameArray"]對應的元素,是否要接收到變數後就卸除,"true"代表要卸除,"false"代表不要卸除.
1800
		#$conf["unsetSessionArray"],陣列,與$conf["sessionNameArray"]對應的元素,是否要接收到變數後就卸除,"true"代表要卸除,"false"代表不要卸除.
1801
		#$conf["unsetSessionArray"]=array();
1801
		#$conf["unsetSessionArray"]=array();
Line 1804... Line 1804...
1804
		#伺服器端的變數 -> http://php.net/manual/en/reserved.variables.server.php
1804
		#伺服器端的變數 -> http://php.net/manual/en/reserved.variables.server.php
1805
		#備註:
1805
		#備註:
1806
		#表單變數的名稱若含有「.」,則會變成「-」。
1806
		#表單變數的名稱若含有「.」,則會變成「-」。
1807
		$responseMultiInputDataSecurityEnhance=form::responseMultiInputDataSecurityEnhance($conf["form::responseMultiInputDataSecurityEnhance"]);
1807
		$responseMultiInputDataSecurityEnhance=form::responseMultiInputDataSecurityEnhance($conf["form::responseMultiInputDataSecurityEnhance"]);
1808
		unset($conf["form::responseMultiInputDataSecurityEnhance"]);
1808
		unset($conf["form::responseMultiInputDataSecurityEnhance"]);
1809
		
1809
 
1810
		#如果接收表單變數失敗
1810
		#如果接收表單變數失敗
1811
		if($responseMultiInputDataSecurityEnhance["status"]==="false"){
1811
		if($responseMultiInputDataSecurityEnhance["status"]==="false"){
1812
			
1812
 
1813
			#執行到這邊代表執行不正常
1813
			#執行到這邊代表執行不正常
1814
			$result["status"]="false";
1814
			$result["status"]="false";
1815
			
1815
 
1816
			#設置錯誤訊息
1816
			#設置錯誤訊息
1817
			$result["error"]=$responseMultiInputDataSecurityEnhance;
1817
			$result["error"]=$responseMultiInputDataSecurityEnhance;
1818
			
1818
 
1819
			#回傳結果
1819
			#回傳結果
1820
			return $result;
1820
			return $result;
1821
			
1821
 
1822
			}#if end
1822
			}#if end
1823
			
1823
 
1824
		#如果接收表單變數不通過
1824
		#如果接收表單變數不通過
1825
		if($responseMultiInputDataSecurityEnhance["passed"]==="false"){
1825
		if($responseMultiInputDataSecurityEnhance["passed"]==="false"){
1826
			
1826
 
1827
			#執行到這邊代表執行不正常
1827
			#執行到這邊代表執行不正常
1828
			$result["status"]="false";
1828
			$result["status"]="false";
1829
			
1829
 
1830
			#設置錯誤訊息
1830
			#設置錯誤訊息
1831
			$result["error"]=$responseMultiInputDataSecurityEnhance;
1831
			$result["error"]=$responseMultiInputDataSecurityEnhance;
1832
			
1832
 
1833
			#回傳結果
1833
			#回傳結果
1834
			return $result;
1834
			return $result;
1835
			
1835
 
1836
			}#if end
1836
			}#if end
1837
			
1837
 
1838
		#依照每個 condition
1838
		#依照每個 condition
1839
		for($i=0;$i<count($conf["condition"]);$i++){
1839
		for($i=0;$i<count($conf["condition"]);$i++){
1840
			
1840
 
1841
			#如果接收到的表單變數對應到 condition 元素
1841
			#如果接收到的表單變數對應到 condition 元素
1842
			if($responseMultiInputDataSecurityEnhance["inputDataContent"][$conf["varName"]]===$conf["condition"][$i]){
1842
			if($responseMultiInputDataSecurityEnhance["inputDataContent"][$conf["varName"]]===$conf["condition"][$i]){
1843
				
1843
 
1844
				#轉址到對應的地方
1844
				#轉址到對應的地方
1845
				#函式說明:
1845
				#函式說明:
1846
				#設定session變數後,立即轉址.
1846
				#設定session變數後,立即轉址.
1847
				#回傳的結果:
1847
				#回傳的結果:
1848
				#$result["status"],執行是否成功,"true"代表成功,"false"代表不成功.
1848
				#$result["status"],執行是否成功,"true"代表成功,"false"代表不成功.
Line 1858... Line 1858...
1858
				#$conf["sessionValue"]=array("");
1858
				#$conf["sessionValue"]=array("");
1859
				#參靠資料來源:
1859
				#參靠資料來源:
1860
				#http://php.net/manual/en/reserved.variables.server.php
1860
				#http://php.net/manual/en/reserved.variables.server.php
1861
				$redirectionNow=header::redirectionNow($conf["header::redirectionNow"]);
1861
				$redirectionNow=header::redirectionNow($conf["header::redirectionNow"]);
1862
				unset($conf["header::redirectionNow"]);
1862
				unset($conf["header::redirectionNow"]);
1863
				
1863
 
1864
				#如果轉址失敗
1864
				#如果轉址失敗
1865
				if($redirectionNow["status"]==="false"){
1865
				if($redirectionNow["status"]==="false"){
1866
					
1866
 
1867
					#執行到這邊代表執行不正常
1867
					#執行到這邊代表執行不正常
1868
					$result["status"]="false";
1868
					$result["status"]="false";
1869
					
1869
 
1870
					#設置錯誤訊息
1870
					#設置錯誤訊息
1871
					$result["error"]=$redirectionNow;
1871
					$result["error"]=$redirectionNow;
1872
					
1872
 
1873
					#回傳結果
1873
					#回傳結果
1874
					return $result;
1874
					return $result;
1875
					
1875
 
1876
					}#if end
1876
					}#if end
1877
					
1877
 
1878
				#設置執行正常
1878
				#設置執行正常
1879
				$result["status"]="true";
1879
				$result["status"]="true";
1880
				
1880
 
1881
				#回傳結果
1881
				#回傳結果
1882
				return $result;
1882
				return $result;
1883
				
1883
 
1884
				}#if end
1884
				}#if end
1885
			
1885
 
1886
			}#for end
1886
			}#for end
1887
		
1887
 
1888
		#停止執行
1888
		#停止執行
1889
		exit;		
1889
		exit;
1890
		
1890
 
1891
		}#function transferByFormVar end
1891
		}#function transferByFormVar end
1892
	
1892
 
1893
	/*
1893
	/*
1894
	#函式說明:
1894
	#函式說明:
1895
	#設置header的函式
1895
	#設置header的函式
1896
	#回傳結果:
1896
	#回傳結果:
1897
	#$result["status"],執行是否成功,"true"代表成功,"false"代表不成功.
1897
	#$result["status"],執行是否成功,"true"代表成功,"false"代表不成功.
Line 1922... Line 1922...
1922
		#取得當前執行的函數名稱
1922
		#取得當前執行的函數名稱
1923
		$result["function"]=__FUNCTION__;
1923
		$result["function"]=__FUNCTION__;
1924
 
1924
 
1925
		#如果沒有參數
1925
		#如果沒有參數
1926
		if(func_num_args()==0){
1926
		if(func_num_args()==0){
1927
			
1927
 
1928
			#設置執行失敗
1928
			#設置執行失敗
1929
			$result["status"]="false";
1929
			$result["status"]="false";
1930
			
1930
 
1931
			#設置執行錯誤訊息
1931
			#設置執行錯誤訊息
1932
			$result["error"]="函數".$result["function"]."需要參數";
1932
			$result["error"]="函數".$result["function"]."需要參數";
1933
			
1933
 
1934
			#回傳結果
1934
			#回傳結果
1935
			return $result;
1935
			return $result;
1936
			
1936
 
1937
			}#if end
1937
			}#if end
1938
 
1938
 
1939
		#取得參數
1939
		#取得參數
1940
		$result["argu"]=$conf;
1940
		$result["argu"]=$conf;
1941
 
1941
 
1942
		#如果 $conf 不為陣列
1942
		#如果 $conf 不為陣列
1943
		if(gettype($conf)!=="array"){
1943
		if(gettype($conf)!=="array"){
1944
			
1944
 
1945
			#設置執行失敗
1945
			#設置執行失敗
1946
			$result["status"]="false";
1946
			$result["status"]="false";
1947
			
1947
 
1948
			#設置執行錯誤訊息
1948
			#設置執行錯誤訊息
1949
			$result["error"][]="\$conf變數須為陣列形態";
1949
			$result["error"][]="\$conf變數須為陣列形態";
1950
			
1950
 
1951
			#如果傳入的參數為 null
1951
			#如果傳入的參數為 null
1952
			if($conf===null){
1952
			if($conf===null){
1953
				
1953
 
1954
				#設置執行錯誤訊息
1954
				#設置執行錯誤訊息
1955
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
1955
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
1956
				
1956
 
1957
				}#if end
1957
				}#if end
1958
 
1958
 
1959
			#回傳結果
1959
			#回傳結果
1960
			return $result;
1960
			return $result;
1961
			
1961
 
1962
			}#if end
1962
			}#if end
1963
		
1963
 
1964
		#檢查參數
1964
		#檢查參數
1965
		#函式說明:
1965
		#函式說明:
1966
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
1966
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
1967
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
1967
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
1968
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
1968
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
Line 2008... Line 2008...
2008
		#$conf["arrayCountEqualCheck"][]=array();
2008
		#$conf["arrayCountEqualCheck"][]=array();
2009
		#參考資料來源:
2009
		#參考資料來源:
2010
		#array_keys=>http://php.net/manual/en/function.array-keys.php
2010
		#array_keys=>http://php.net/manual/en/function.array-keys.php
2011
		$checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
2011
		$checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
2012
		unset($conf["variableCheck::checkArguments"]);
2012
		unset($conf["variableCheck::checkArguments"]);
2013
	
2013
 
2014
		#如果檢查失敗
2014
		#如果檢查失敗
2015
		if($checkArguments["status"]=="false"){
2015
		if($checkArguments["status"]=="false"){
2016
			
2016
 
2017
			#設置執行不正常
2017
			#設置執行不正常
2018
			$result["status"]="false";
2018
			$result["status"]="false";
2019
			
2019
 
2020
			#設置錯誤訊息
2020
			#設置錯誤訊息
2021
			$result["error"]=$checkArguments;
2021
			$result["error"]=$checkArguments;
2022
			
2022
 
2023
			#回傳結果
2023
			#回傳結果
2024
			return $result;
2024
			return $result;
2025
			
2025
 
2026
			}#if end
2026
			}#if end
2027
			
2027
 
2028
		#如果檢查不通過
2028
		#如果檢查不通過
2029
		if($checkArguments["passed"]=="false"){
2029
		if($checkArguments["passed"]=="false"){
2030
			
2030
 
2031
			#設置執行不正常
2031
			#設置執行不正常
2032
			$result["status"]="false";
2032
			$result["status"]="false";
2033
			
2033
 
2034
			#設置錯誤訊息
2034
			#設置錯誤訊息
2035
			$result["error"]=$checkArguments;
2035
			$result["error"]=$checkArguments;
2036
			
2036
 
2037
			#回傳結果
2037
			#回傳結果
2038
			return $result;
2038
			return $result;
2039
			
2039
 
2040
			}#if end
2040
			}#if end
2041
		
2041
 
2042
		#如果要先清除掉 header
2042
		#如果要先清除掉 header
2043
		if($conf["clearFirst"]==="true"){
2043
		if($conf["clearFirst"]==="true"){
2044
		
2044
 
2045
			#移除所有 header
2045
			#移除所有 header
2046
			header_remove();
2046
			header_remove();
2047
		
2047
 
2048
			}#if end
2048
			}#if end
2049
		
2049
 
2050
		#針對每個要設置的 header
2050
		#針對每個要設置的 header
2051
		foreach($conf["header"] as $name => $value){
2051
		foreach($conf["header"] as $name => $value){
2052
		
2052
 
2053
			#將 $name 中的空格變更為 "-"
2053
			#將 $name 中的空格變更為 "-"
2054
			#函式說明:
2054
			#函式說明:
2055
			#處理字串避免網頁出錯
2055
			#處理字串避免網頁出錯
2056
			#回傳的結果:
2056
			#回傳的結果:
2057
			#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
2057
			#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
2058
			#$result["function"],當前執行的函數.
2058
			#$result["function"],當前執行的函數.
2059
			#$result["content"],爲處理好的字串.
2059
			#$result["content"],爲處理好的字串.
2060
			#$result["error"],錯誤訊息陣列.
2060
			#$result["error"],錯誤訊息陣列.
2061
			#$result["argu"],使用的參數. 
2061
			#$result["argu"],使用的參數.
2062
			#必填參數:
2062
			#必填參數:
2063
			$conf["stringProcess::correctCharacter"]["stringIn"]=$name;#爲要處理的字串
2063
			$conf["stringProcess::correctCharacter"]["stringIn"]=$name;#爲要處理的字串
2064
			#可省略參數:
2064
			#可省略參數:
2065
			#$conf["selectedCharacter"]=array("");#爲被選擇要處理的字串/字元,須爲陣列值。
2065
			#$conf["selectedCharacter"]=array("");#爲被選擇要處理的字串/字元,須爲陣列值。
2066
				#若不設定則預設爲要將這些字串作替換 ("<",">","=","//","'","$","%","&","|","/*","*","#","\"").
2066
				#若不設定則預設爲要將這些字串作替換 ("<",">","=","//","'","$","%","&","|","/*","*","#","\"").
Line 2068... Line 2068...
2068
			#$conf["changeTo"]=array();#爲被選擇的字元要換成什麼字串/字元,須爲陣列值。若不設定,則預設爲更換成""(空字串).
2068
			#$conf["changeTo"]=array();#爲被選擇的字元要換成什麼字串/字元,須爲陣列值。若不設定,則預設爲更換成""(空字串).
2069
			#備註:
2069
			#備註:
2070
			#無.
2070
			#無.
2071
			$correctCharacter=stringProcess::correctCharacter($conf["stringProcess::correctCharacter"]);
2071
			$correctCharacter=stringProcess::correctCharacter($conf["stringProcess::correctCharacter"]);
2072
			unset($conf["stringProcess::correctCharacter"]);
2072
			unset($conf["stringProcess::correctCharacter"]);
2073
		
2073
 
2074
			#如果檢查失敗
2074
			#如果檢查失敗
2075
			if($correctCharacter["status"]=="false"){
2075
			if($correctCharacter["status"]=="false"){
2076
				
2076
 
2077
				#設置執行不正常
2077
				#設置執行不正常
2078
				$result["status"]="false";
2078
				$result["status"]="false";
2079
				
2079
 
2080
				#設置錯誤訊息
2080
				#設置錯誤訊息
2081
				$result["error"]=$correctCharacter;
2081
				$result["error"]=$correctCharacter;
2082
				
2082
 
2083
				#回傳結果
2083
				#回傳結果
2084
				return $result;
2084
				return $result;
2085
				
2085
 
2086
				}#if end
2086
				}#if end
2087
		
2087
 
2088
			#取得處理好的name
2088
			#取得處理好的name
2089
			$name=$correctCharacter["content"];
2089
			$name=$correctCharacter["content"];
2090
		
2090
 
2091
			#設置header
2091
			#設置header
2092
			header($name.": ".$value);
2092
			header($name.": ".$value);
2093
		
2093
 
2094
			}#foreach end
2094
			}#foreach end
2095
	
2095
 
2096
		#設置 staus code
2096
		#設置 staus code
2097
		http_response_code($conf["statusCode"]);
2097
		http_response_code($conf["statusCode"]);
2098
	
2098
 
2099
		#設置執行正常
2099
		#設置執行正常
2100
		$result["status"]="true";
2100
		$result["status"]="true";
2101
		
2101
 
2102
		#初始化執行回應
2102
		#初始化執行回應
2103
		$result["content"]=array();
2103
		$result["content"]=array();
2104
		
2104
 
2105
		#取得設置好的header清單
2105
		#取得設置好的header清單
2106
		$result["content"]["header"]=headers_list();
2106
		$result["content"]["header"]=headers_list();
2107
		
2107
 
2108
		#設置回應的http response code humber
2108
		#設置回應的http response code humber
2109
		$result["content"]["http_response_code"]=http_response_code();
2109
		$result["content"]["http_response_code"]=http_response_code();
2110
	
2110
 
2111
		#回傳結果
2111
		#回傳結果
2112
		return $result;
2112
		return $result;
2113
	
2113
 
2114
		}#function set end
2114
		}#function set end
2115
	
2115
 
2116
	/*
2116
	/*
2117
	#函式說明:
2117
	#函式說明:
2118
	#依照OPTIONS的要求,判斷條件,給予允許呼叫的header,預設是全允許.
2118
	#依照OPTIONS的要求,判斷條件,給予允許呼叫的header,預設是全允許.
2119
	#回傳結果:
2119
	#回傳結果:
2120
	#$result["status"],執行是否成功,"true"代表成功,"false"代表不成功.
2120
	#$result["status"],執行是否成功,"true"代表成功,"false"代表不成功.
Line 2137... Line 2137...
2137
	#https://www.php.net/manual/en/function.http-response-code.php
2137
	#https://www.php.net/manual/en/function.http-response-code.php
2138
	#備註:
2138
	#備註:
2139
	#無.
2139
	#無.
2140
	*/
2140
	*/
2141
	public static function accessControl(&$conf){
2141
	public static function accessControl(&$conf){
2142
		
2142
 
2143
		#初始化要回傳的結果
2143
		#初始化要回傳的結果
2144
		$result=array();
2144
		$result=array();
2145
 
2145
 
2146
		#取得當前執行的函數名稱
2146
		#取得當前執行的函數名稱
2147
		$result["function"]=__FUNCTION__;
2147
		$result["function"]=__FUNCTION__;
Line 2168... Line 2168...
2168
 
2168
 
2169
			#回傳結果
2169
			#回傳結果
2170
			return $result;
2170
			return $result;
2171
 
2171
 
2172
			}#if end
2172
			}#if end
2173
		
2173
 
2174
		#檢查參數
2174
		#檢查參數
2175
		#函式說明:
2175
		#函式說明:
2176
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
2176
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
2177
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
2177
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
2178
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
2178
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
Line 2218... Line 2218...
2218
		#$conf["arrayCountEqualCheck"][]=array();
2218
		#$conf["arrayCountEqualCheck"][]=array();
2219
		#參考資料來源:
2219
		#參考資料來源:
2220
		#array_keys=>http://php.net/manual/en/function.array-keys.php
2220
		#array_keys=>http://php.net/manual/en/function.array-keys.php
2221
		$checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
2221
		$checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
2222
		unset($conf["variableCheck::checkArguments"]);
2222
		unset($conf["variableCheck::checkArguments"]);
2223
		
2223
 
2224
		#如果檢查參數失敗
2224
		#如果檢查參數失敗
2225
		if($checkArguments["status"]==="false"){
2225
		if($checkArguments["status"]==="false"){
2226
		
2226
 
2227
			#初始化結果
2227
			#初始化結果
2228
			$result=array();
2228
			$result=array();
2229
			
2229
 
2230
			#設置執行正常
2230
			#設置執行正常
2231
			$result["status"]="false";
2231
			$result["status"]="false";
2232
			
2232
 
2233
			#設置未執行的結果
2233
			#設置未執行的結果
2234
			$result["error"]=$checkArguments;
2234
			$result["error"]=$checkArguments;
2235
			
2235
 
2236
			#回傳結果
2236
			#回傳結果
2237
			return $result;
2237
			return $result;
2238
		
2238
 
2239
			}#if end
2239
			}#if end
2240
			
2240
 
2241
		#如果檢查參數不通過
2241
		#如果檢查參數不通過
2242
		if($checkArguments["passed"]==="false"){
2242
		if($checkArguments["passed"]==="false"){
2243
		
2243
 
2244
			#初始化結果
2244
			#初始化結果
2245
			$result=array();
2245
			$result=array();
2246
			
2246
 
2247
			#設置執行正常
2247
			#設置執行正常
2248
			$result["status"]="false";
2248
			$result["status"]="false";
2249
			
2249
 
2250
			#設置未執行的結果
2250
			#設置未執行的結果
2251
			$result["error"]=$checkArguments;
2251
			$result["error"]=$checkArguments;
2252
			
2252
 
2253
			#回傳結果
2253
			#回傳結果
2254
			return $result;
2254
			return $result;
2255
		
2255
 
2256
			}#if end
2256
			}#if end
2257
		
2257
 
2258
		/*
2258
		/*
2259
		#函式說明:
2259
		#函式說明:
2260
		#取得apache接收到的header
2260
		#取得apache接收到的header
2261
		#回傳結果:
2261
		#回傳結果:
2262
		#$result["status"],執行成功與否,"true"代表成功,"false"代表失敗.
2262
		#$result["status"],執行成功與否,"true"代表成功,"false"代表失敗.
2263
		#$result["content"],取得的header陣列.
2263
		#$result["content"],取得的header陣列.
2264
		#$result["function"],當前執行的函數名稱.
2264
		#$result["function"],當前執行的函數名稱.
2265
		#必填參數:
2265
		#必填參數:
2266
		#無
2266
		#無
2267
		#可省略參數:
2267
		#可省略參數:
2268
		#無 
2268
		#無
2269
		*/
2269
		*/
2270
		$getReceivedHeaders=header::getReceivedHeaders();
2270
		$getReceivedHeaders=header::getReceivedHeaders();
2271
 
2271
 
2272
		#如果取得Header失敗
2272
		#如果取得Header失敗
2273
		if($getReceivedHeaders["status"]==="false"){
2273
		if($getReceivedHeaders["status"]==="false"){
2274
		
2274
 
2275
			#初始化結果
2275
			#初始化結果
2276
			$result=array();
2276
			$result=array();
2277
			
2277
 
2278
			#設置執行正常
2278
			#設置執行正常
2279
			$result["status"]="false";
2279
			$result["status"]="false";
2280
			
2280
 
2281
			#設置未執行的結果
2281
			#設置未執行的結果
2282
			$result["error"]=$getReceivedHeaders;
2282
			$result["error"]=$getReceivedHeaders;
2283
			
2283
 
2284
			#回傳結果
2284
			#回傳結果
2285
			return $result;
2285
			return $result;
2286
		
2286
 
2287
			}#if end
2287
			}#if end
2288
			
2288
 
2289
		#取得接收到header
2289
		#取得接收到header
2290
		$result["content"]["receivedHeader"]=$getReceivedHeaders["content"];
2290
		$result["content"]["receivedHeader"]=$getReceivedHeaders["content"];
2291
		
2291
 
2292
		#如果沒有必備的 Origin header
2292
		#如果沒有必備的 Origin header
2293
		if(!isset($getReceivedHeaders["content"]["Origin"])){
2293
		if(!isset($getReceivedHeaders["content"]["Origin"])){
2294
		
2294
 
2295
			#設置允許所有Origin
2295
			#設置允許所有Origin
2296
			$conf["allowDomain"]=array("*");
2296
			$conf["allowDomain"]=array("*");
2297
		
2297
 
2298
			}#if end
2298
			}#if end
2299
		
2299
 
2300
		#如果不是允許所有Origin
2300
		#如果不是允許所有Origin
2301
		if($conf["allowDomain"]!==array("*")){
2301
		if($conf["allowDomain"]!==array("*")){
2302
		
2302
 
2303
			#涵式說明:
2303
			#涵式說明:
2304
			#檢查一個數值是否與陣列裏面的元素相同,找到一個相符合的元素後就會停止搜尋.
2304
			#檢查一個數值是否與陣列裏面的元素相同,找到一個相符合的元素後就會停止搜尋.
2305
			#回傳的結果:
2305
			#回傳的結果:
2306
			#$result["status"],"true"表示執行正確,"false"表示執行錯誤.
2306
			#$result["status"],"true"表示執行正確,"false"表示執行錯誤.
2307
			#$result["founded"],"true"表示有找到相同的,"false"表示沒有找到相同的.
2307
			#$result["founded"],"true"表示有找到相同的,"false"表示沒有找到相同的.
Line 2316... Line 2316...
2316
			$getEqualVar=search::getEqualVar($conf["search::getEqualVar"]);
2316
			$getEqualVar=search::getEqualVar($conf["search::getEqualVar"]);
2317
			unset($conf["search::getEqualVar"]);
2317
			unset($conf["search::getEqualVar"]);
2318
 
2318
 
2319
			#如果檢查失敗
2319
			#如果檢查失敗
2320
			if($getEqualVar["status"]==="false"){
2320
			if($getEqualVar["status"]==="false"){
2321
			
2321
 
2322
				#初始化結果
2322
				#初始化結果
2323
				$result=array();
2323
				$result=array();
2324
				
2324
 
2325
				#設置執行正常
2325
				#設置執行正常
2326
				$result["status"]="false";
2326
				$result["status"]="false";
2327
				
2327
 
2328
				#設置未執行的結果
2328
				#設置未執行的結果
2329
				$result["error"]=$getEqualVar;
2329
				$result["error"]=$getEqualVar;
2330
				
2330
 
2331
				#回傳結果
2331
				#回傳結果
2332
				return $result;
2332
				return $result;
2333
			
2333
 
2334
				}#if end
2334
				}#if end
2335
 
2335
 
2336
			#如果沒有符合的項目
2336
			#如果沒有符合的項目
2337
			if($getEqualVar["founded"]==="false"){
2337
			if($getEqualVar["founded"]==="false"){
2338
			
2338
 
2339
				#初始化結果
2339
				#初始化結果
2340
				$result=array();
2340
				$result=array();
2341
				
2341
 
2342
				#設置執行正常
2342
				#設置執行正常
2343
				$result["status"]="false";
2343
				$result["status"]="false";
2344
				
2344
 
2345
				#設置未執行的結果
2345
				#設置未執行的結果
2346
				$result["error"]=$getEqualVar;
2346
				$result["error"]=$getEqualVar;
2347
				
2347
 
2348
				#回傳結果
2348
				#回傳結果
2349
				return $result;
2349
				return $result;
2350
			
2350
 
2351
				}#if end
2351
				}#if end
2352
 
2352
 
2353
			#設置要允許的Origin
2353
			#設置要允許的Origin
2354
			$allowDomainString=$getEqualVar["equalVarValue"];
2354
			$allowDomainString=$getEqualVar["equalVarValue"];
2355
		
2355
 
2356
		}#if end
2356
		}#if end
2357
 
2357
 
2358
		#反之
2358
		#反之
2359
		else{
2359
		else{
2360
			#設置為 "*"
2360
			#設置為 "*"
2361
			$allowDomainString=$conf["allowDomain"][0];
2361
			$allowDomainString=$conf["allowDomain"][0];
2362
		
2362
 
2363
			}
2363
			}
2364
		
2364
 
2365
		#將陣列轉變成字串
2365
		#將陣列轉變成字串
2366
		#函式說明:
2366
		#函式說明:
2367
		#將一維陣列轉換為用特定符號間隔的字串,ex:array("1","2","3") to "a;b;c;".
2367
		#將一維陣列轉換為用特定符號間隔的字串,ex:array("1","2","3") to "a;b;c;".
2368
		#回傳的結果:
2368
		#回傳的結果:
2369
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
2369
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
Line 2384... Line 2384...
2384
		$arrayToString=arrays::arrayToString($conf["arrays::arrayToString"]);
2384
		$arrayToString=arrays::arrayToString($conf["arrays::arrayToString"]);
2385
		unset($conf["arrays::arrayToString"]);
2385
		unset($conf["arrays::arrayToString"]);
2386
 
2386
 
2387
		#如果取得Header失敗
2387
		#如果取得Header失敗
2388
		if($arrayToString["status"]==="false"){
2388
		if($arrayToString["status"]==="false"){
2389
		
2389
 
2390
			#初始化結果
2390
			#初始化結果
2391
			$result=array();
2391
			$result=array();
2392
			
2392
 
2393
			#設置執行正常
2393
			#設置執行正常
2394
			$result["status"]="false";
2394
			$result["status"]="false";
2395
			
2395
 
2396
			#設置未執行的結果
2396
			#設置未執行的結果
2397
			$result["error"]=$arrayToString;
2397
			$result["error"]=$arrayToString;
2398
			
2398
 
2399
			#回傳結果
2399
			#回傳結果
2400
			return $result;
2400
			return $result;
2401
		
2401
 
2402
			}#if end
2402
			}#if end
2403
		
2403
 
2404
		#取得允許的domain name字串
2404
		#取得允許的domain name字串
2405
		$allowMethodString=$arrayToString["content"];
2405
		$allowMethodString=$arrayToString["content"];
2406
 
2406
 
2407
		#將陣列轉變成字串
2407
		#將陣列轉變成字串
2408
		#函式說明:
2408
		#函式說明:
Line 2426... Line 2426...
2426
		$arrayToString=arrays::arrayToString($conf["arrays::arrayToString"]);
2426
		$arrayToString=arrays::arrayToString($conf["arrays::arrayToString"]);
2427
		unset($conf["arrays::arrayToString"]);
2427
		unset($conf["arrays::arrayToString"]);
2428
 
2428
 
2429
		#如果取得Header失敗
2429
		#如果取得Header失敗
2430
		if($arrayToString["status"]==="false"){
2430
		if($arrayToString["status"]==="false"){
2431
		
2431
 
2432
			#初始化結果
2432
			#初始化結果
2433
			$result=array();
2433
			$result=array();
2434
			
2434
 
2435
			#設置執行正常
2435
			#設置執行正常
2436
			$result["status"]="false";
2436
			$result["status"]="false";
2437
			
2437
 
2438
			#設置未執行的結果
2438
			#設置未執行的結果
2439
			$result["error"]=$arrayToString;
2439
			$result["error"]=$arrayToString;
2440
			
2440
 
2441
			#回傳結果
2441
			#回傳結果
2442
			return $result;
2442
			return $result;
2443
		
2443
 
2444
			}#if end
2444
			}#if end
2445
		
2445
 
2446
		#取得允許的domain name字串
2446
		#取得允許的domain name字串
2447
		$allowHeaderString=$arrayToString["content"];
2447
		$allowHeaderString=$arrayToString["content"];
2448
 
2448
 
2449
		#設置header
2449
		#設置header
2450
		#函式說明:
2450
		#函式說明:
Line 2474... Line 2474...
2474
		$set=header::set($conf["header::set"]);
2474
		$set=header::set($conf["header::set"]);
2475
		unset($conf["header::set"]);
2475
		unset($conf["header::set"]);
2476
 
2476
 
2477
		#如果設置Header失敗
2477
		#如果設置Header失敗
2478
		if($set["status"]==="false"){
2478
		if($set["status"]==="false"){
2479
		
2479
 
2480
			#初始化結果
2480
			#初始化結果
2481
			$result=array();
2481
			$result=array();
2482
			
2482
 
2483
			#設置執行正常
2483
			#設置執行正常
2484
			$result["status"]="false";
2484
			$result["status"]="false";
2485
			
2485
 
2486
			#設置未執行的結果
2486
			#設置未執行的結果
2487
			$result["error"]=$set;
2487
			$result["error"]=$set;
2488
			
2488
 
2489
			#回傳結果
2489
			#回傳結果
2490
			return $result;
2490
			return $result;
2491
		
2491
 
2492
			}#if end
2492
			}#if end
2493
		
2493
 
2494
		#函式說明:
2494
		#函式說明:
2495
		#撰寫log
2495
		#撰寫log
2496
		#回傳結果:
2496
		#回傳結果:
2497
		#$result["status"],狀態,"true"或"false".
2497
		#$result["status"],狀態,"true"或"false".
2498
		#$result["error"],錯誤訊息陣列.
2498
		#$result["error"],錯誤訊息陣列.
Line 2508... Line 2508...
2508
		#可省略參數:
2508
		#可省略參數:
2509
		#$conf["rewrite"],預設為"false",接續寫入;反之"true"代表重新寫入.
2509
		#$conf["rewrite"],預設為"false",接續寫入;反之"true"代表重新寫入.
2510
		#$conf["rewrite"]="true";
2510
		#$conf["rewrite"]="true";
2511
		$record=logs::record($conf["logs::record"]);
2511
		$record=logs::record($conf["logs::record"]);
2512
		unset($conf["logs::record"]);
2512
		unset($conf["logs::record"]);
2513
		
2513
 
2514
		#取得要傳送的header	
2514
		#取得要傳送的header
2515
		$result["content"]["sendedHeader"]=$set["content"]["header"];
2515
		$result["content"]["sendedHeader"]=$set["content"]["header"];
2516
 
2516
 
2517
		#設置執行正常
2517
		#設置執行正常
2518
		$result["status"]="true";
2518
		$result["status"]="true";
2519
		
2519
 
2520
		#回傳結果
2520
		#回傳結果
2521
		return $result;
2521
		return $result;
2522
 
2522
 
2523
		}#function accessControl end
2523
		}#function accessControl end
2524
	
2524
 
2525
	}#clsss header end
2525
	}#clsss header end
2526
 
2526
 
2527
?>
2527
?>