
完整程式檔案請參考 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
沒有留言:
張貼留言