
完整程式檔案請參考 encryptor_function.php 。
我們替 Encode 設計的 encode_button() 如下
79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 | function encode_button( $input ) { global $e , $data ; $f = fopen ( $data , "r" ); if ( filesize ( $data ) == 0) { fclose ( $f ); return "encode denied" ; } else { $s = fread ( $f , filesize ( $data )); $e ->setcArray( $s ); $output = $e ->toEncode( $input ); fclose ( $f ); return "encode: " . $output ; } } |
encode_button() 需要一個參數 $input ,這就是 $_POST["input"] 囉!到函數處理就以參數傳遞。同樣的要先檢查是否有密碼表,如果沒有密碼表就顯示 "encode denied" ,有密碼表就進行編碼工作並顯示編碼結果。
有一種可能的奇怪結果,也就是使用者並沒有輸入文字就按下 Encode ,這時候 $input 會得到空字串,因此回傳 "encode: " 後面空空如也。這不會是個很理想的情況,我們倒是可以增加一組 if-else 檢查,如果 $input 是空字串就提供另外的提示訊息。
伺服端的主要工作在接收資料、處理資料,因為如果資料要寫進資料庫, $input 為空字串會造成沒意義的資料,相對浪費資料庫空間,其實這個設計交給用戶端的 JavaScript 會比較好,由用戶端進行檢查,確保送進伺服器的都是有意義的資料。
這裡我們保持簡單的設計就好。
至於替 Decode 設計的 decode_button() 如下
99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 | function decode_button( $input ) { global $e , $data ; $f = fopen ( $data , "r" ); if ( filesize ( $data ) == 0) { fclose ( $f ); return "decode denied" ; } else { $s = fread ( $f , filesize ( $data )); $e ->setcArray( $s ); $output = $e ->toDecode( $input ); fclose ( $f ); return "decode: " . $output ; } } |
decode_button() 幾乎與 encode_button() 一樣,只有將 $e->toEncode() 換成 $e->toDecode(); 。
encryptor04.php 修改如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | <?php // include include "encryptor_function.php" ; // switch switch ( $_REQUEST [ "op" ]) { case "New" : $main = input_form(); $display = new_button(); break ; case "Load" : $main = input_form(); $display = load_button(); break ; case "Encode" : $main = input_form(); $display = encode_button( $_POST [ 'input' ]); break ; case "Decode" : $main = input_form(); $display = decode_button( $_POST [ 'input' ]); break ; case "Clean" : $main = input_form(); $display = clean_button(); break ; case "record" : $main = "This is record page.." ; $display = "This is record page.." ; break ; case "about" : $main = "This is about page.." ; $display = "This is about page.." ; break ; default : $main = input_form(); $display = "something happened" ; } // make page echo make_page( $main , $display ); /* 《程式語言教學誌》的範例程式 檔名:encryptor05.php 功能:示範 PHP 程式 作者:張凱慶 時間:西元 2012 年 11 月 */ ?> |
結果如下

好了,主要功能大都完成了。凡走過必留下痕跡,接下來我們要用資料庫 (database) 記錄使用者操作的記錄,先來認識 MySQL 資料庫吧!
中英文術語對照 | |
---|---|
物件 | object |
編碼 | encode |
解碼 | decode |
資料庫 | database |
您可以繼續參考
網站篇
相關目錄
回 PHP 入門指南
回 PHP 教材
回首頁
參考資料
http://www.php.net/manual/en/tutorial.firstpage.php
http://www.php.net/manual/en/tutorial.useful.php
http://www.php.net/manual/en/functions.user-defined.php
http://www.php.net/manual/en/functions.arguments.php
http://www.php.net/manual/en/functions.returning-values.php
沒有留言:
張貼留言