11.
重新調整流程
一、調整流程
- 首先,先更新一下 index.php 的流程,在 default 的地方,我們根據 $action_id 來判斷是要讀出指定的活動,還是取得所有活動列表。
$action_id = isset($_REQUEST['action_id']) ? intval($_REQUEST['action_id']) : '';
switch ($op) {
case 'regist':
break;
case 'login':
login();
header("location:{$_SERVER['PHP_SELF']}");
exit;
case "logout":
logout();
header("location:{$_SERVER['PHP_SELF']}");
exit;
case "save_regist":
save_regist();
header("location:{$_SERVER['PHP_SELF']}");
exit;
default:
if ($action_id) {
$op = 'show_action';
show_action($action_id);
} else {
$op = 'list_action';
list_action();
}
break;
}
-
由於流程中會用到 $action_id,我們確定 $action_id 是個編號,所以,利用 intval() 去過濾之,並且接收來自任何方法的 $action_id,故用 $_REQUEST['action_id']。
-
由於頁尾檔有送 $op 直到樣板,因此,目前在進行的任何一個動作最好都有一個 op 值,故,我們在 default 中,針對那兩個函數各給一個 $op 值,以便樣板可以辨識目前要出現的內容為何。
-
show_action($action_id) 及 list_action() 為什麼沒有傳回 $content?因為我們打算直接把內容,用樣板變數分別直接傳給樣板,所以,在此就不同一做出結果再傳回,而是直接送給樣板來處理,這樣會版面設計會更彈性。
-
此外,原本還有一個 op 是 regist,用來註冊用,在此,也要多一組設定。因為若沒有設定,switch會自動跑去 default,由於沒有編號,所以 op 會變成 list_action,如此,使用者將永遠看不到註冊表單。