Title1

Title2

Title3

6-3-3 按收表單,寫入資料庫

一、過濾變數


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