/* 過濾變數,設定預設值 */
$op = system_CleanVars($_REQUEST, 'op', 'opList', 'string');
$sn = system_CleanVars($_REQUEST, 'sn', '', 'int');
```
二、在switch增加一個流程
每一個流程,代表處理一個事件,這裡檢查表單送來的變數是否符合需求,
如是,那麼則將表單資料寫入資料庫
如不是,那麼則跳轉至適合頁面
signup()是一個自訂函數,有回傳值(),用$msg接收
redirect\_header("index.php", 3000, $msg); 則是執行跳轉至 index.php 畫面顯示 3 秒,秀出回傳值
因為已經跳轉,所以程式就此結束(exit)。
```
case "signup" :
$msg = signup();
redirect_header("index.php", 3000, $msg);
exit;
```
三、自訂函數 signup()
print\_r($\_POST);die();
```
#################################################
# 註冊
#################################################
function signup(){
global $db;
#過濾
$_POST['name'] = db_CleanVars($_POST['name'], "姓名");
$_POST['email'] = db_CleanVars($_POST['email'], "email", FILTER_VALIDATE_EMAIL);
$_POST['pass'] = db_CleanVars($_POST['pass'], "密碼");
$_POST['confirmPass'] = db_CleanVars($_POST['confirmPass'], "確認密碼");
#檢查email是否存在
if(!checkEmail($_POST['email']))redirect_header(WEB_URL, 3000, "這個email已經有人使用了");
#檢查密碼是否一致
if($_POST['pass'] != $_POST['confirmPass'])redirect_header(WEB_URL, 3000, "密碼不一致");
#密碼加密
$_POST['pass'] = password_hash($_POST['pass'], PASSWORD_DEFAULT);
#寫進資料庫
$sql = "insert into `users`
(`email`,`pass`,`name`) values
('{$_POST['email']}','{$_POST['pass']}','{$_POST['name']}')"; //die($sql);
if(!$db->query($sql)){
redirect_header(WEB_URL, 3000, "(".$db->connect_errno.")".$db->connect_error);
}
return "註冊成功!!";
}
```