線上書籍

Home

PHP SMARTY 樣板引擎

一、過濾變數

/* 過濾變數,設定預設值 */ $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 "註冊成功!!"; }