完整程式檔案請參考 encryptor_function.php 。
我們替 Encode 設計的 encode_button() 如下
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() 如下
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 修改如下
<?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); /* 《程式語言教學誌》的範例程式 http://pydoing.blogspot.com/ 檔名: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
沒有留言:
張貼留言