setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $pdo->exec("SET NAMES $charset"); } catch (PDOException $e) { die("DB Error: " . $e->getMessage()); } // -------------------- AJAX Requests -------------------- if (isset($_GET['action'])) { header('Content-Type: application/json'); try { if ($_GET['action'] == 'get_provinces') { $stmt = $pdo->query("SELECT schoolID, firstname FROM school WHERE user_type_id = 1"); echo json_encode(array('status' => 'success', 'data' => $stmt->fetchAll(PDO::FETCH_ASSOC))); } elseif ($_GET['action'] == 'get_amphurs' && isset($_GET['province_id'])) { $stmt = $pdo->prepare("SELECT schoolID, firstname FROM school WHERE leader = ? AND user_type_id = 2"); $stmt->execute(array($_GET['province_id'])); echo json_encode(array('status' => 'success', 'data' => $stmt->fetchAll(PDO::FETCH_ASSOC))); } elseif ($_GET['action'] == 'get_tambons' && isset($_GET['amp_id'])) { $stmt = $pdo->prepare("SELECT schoolID, firstname FROM school WHERE leader = ? AND user_type_id = 4"); $stmt->execute(array($_GET['amp_id'])); echo json_encode(array('status' => 'success', 'data' => $stmt->fetchAll(PDO::FETCH_ASSOC))); } else { echo json_encode(array('status' => 'error', 'message' => 'Invalid request')); } } catch (PDOException $e) { echo json_encode(array('status' => 'error', 'message' => $e->getMessage())); } exit; } // -------------------- Form Submit -------------------- if ($_SERVER['REQUEST_METHOD'] === 'POST') { $prefixID = trim($_POST['prefixID']); $firstName = trim($_POST['firstName']); $lastName = trim($_POST['lastName']); $position = trim($_POST['position']); $username = trim($_POST['username']); $password = trim($_POST['password']); $confirm = trim($_POST['confirm_password']); $amp = trim($_POST['amp_id']); $tambon = trim($_POST['tambon_id']); $mobile = trim($_POST['mobile']); header('Content-Type: application/json'); // -------------------- Validation -------------------- if ($firstName == "" || $lastName == "" || $username == "" || $password == "" || $confirm == "") { echo json_encode(array("status" => "error", "message" => "กรุณากรอกข้อมูลให้ครบถ้วน")); exit; } if (!filter_var($username, FILTER_VALIDATE_EMAIL)) { echo json_encode(array("status" => "error", "message" => "รูปแบบอีเมลไม่ถูกต้อง")); exit; } if ($password !== $confirm) { echo json_encode(array("status" => "error", "message" => "รหัสผ่านไม่ตรงกัน")); exit; } $stmt = $pdo->prepare("SELECT id FROM users WHERE username = ?"); $stmt->execute(array($username)); if ($stmt->fetch()) { echo json_encode(array("status" => "error", "message" => "อีเมลนี้ถูกใช้งานแล้ว")); exit; } $password_md5 = md5($password); try { $sql = "INSERT INTO users (prefixID,firstName,lastName,position,username,password,mobile,leader,schoolID) VALUES (?,?,?,?,?,?,?,?,?)"; $stmt = $pdo->prepare($sql); $stmt->execute(array($prefixID, $firstName, $lastName, $position, $username, $password_md5, $mobile, $amp, $tambon)); echo json_encode(array("status" => "success", "message" => "สมัครสมาชิกเรียบร้อย\n\nอยู่ระหว่างการรออนุมัติให้เข้าใช้งานจาก สกร.ระดับอำเภอ")); } catch (PDOException $e) { echo json_encode(array("status" => "error", "message" => $e->getMessage())); } exit; } ?>